[R-sig-ME] significance of slope (different than zero) in triple interaction
Ben Bolker
bbolker @ending from gm@il@com
Wed Sep 5 18:50:58 CEST 2018
Even more confusing, your slope CI for après2 seem to (mostly) include
-1, not 1 (except for S5). Maybe use `null = -1.0` ?
On 2018-09-05 12:38 PM, Lenth, Russell V wrote:
> I’m confused. Do you want to test the slopes against zero, or against 1? I ask because you note that most of the confidence intervals include 1. To test against 1, add `null = 1.0` to the summary() call. To perform an equivalence test that the slopes do not differ from 1 by more than a specified threshold, also add `delta = (desired threshold)` to the call. See help(“summary.emmGrid”) for details.
>
> Russ
>
> From: Guillaume Adeux <guillaumesimon.a2 using gmail.com>
> Sent: Wednesday, September 5, 2018 10:13 AM
> To: Lenth, Russell V <russell-lenth using uiowa.edu>
> Cc: R-mixed models mailing list <r-sig-mixed-models using r-project.org>
> Subject: Re: [R-sig-ME] significance of slope (different than zero) in triple interaction
>
> Hi Russell,
> Thank you very much for your answer. It's very nice of you.
> I ran what you recommended and it produced the following output:
>
>> em=emtrends(mod1,~syst|timing,var="year")
>> summary(em,infer=c(TRUE,TRUE))
> timing = après2:
> syst year.trend SE df asymp.LCL asymp.UCL z.ratio p.value
> S1 -0.9946823 0.05952514 Inf -1.1113495 -0.8780152 -16.710 <.0001
> S2 -0.8997828 0.07019881 Inf -1.0373699 -0.7621956 -12.818 <.0001
> S3 -0.8885606 0.06511346 Inf -1.0161806 -0.7609405 -13.646 <.0001
> S4 -0.9976324 0.06288404 Inf -1.1208828 -0.8743819 -15.865 <.0001
> S5 -0.7435081 0.06728649 Inf -0.8753872 -0.6116291 -11.050 <.0001
>
> timing = avant1:
> syst year.trend SE df asymp.LCL asymp.UCL z.ratio p.value
> S1 -0.9758510 0.05696640 Inf -1.0875031 -0.8641990 -17.130 <.0001
> S2 -0.9170666 0.06973012 Inf -1.0537351 -0.7803980 -13.152 <.0001
> S3 -0.8793391 0.06482135 Inf -1.0063867 -0.7522916 -13.566 <.0001
> S4 -1.0951932 0.06253345 Inf -1.2177565 -0.9726298 -17.514 <.0001
> S5 -0.8061455 0.06589310 Inf -0.9352936 -0.6769974 -12.234 <.0001
>
> However, I find this highly surprising because I know the slopes are not different than 0 for at least 4 of my systems at level "après2" (which means after). We can actually see that the confidence interval for all levels of syst at "timing=après2" embrace 1.
> Do you have any explanation to this?
> Thanks again for your interest.
> Guillaume ADEUX
>
> =========================
> Le mer. 5 sept. 2018 à 16:25, Lenth, Russell V <mailto:russell-lenth using uiowa.edu> a écrit :
> I'm a little confused because you refer to predictors by different names in different places, and 'year' seems to be used as both a covariate and a grouping factor. But try something like this:
>
> library(emmeans)
> emt <- emtrends(mod, ~ syst:timing, var = "year")
> summary(emt, infer = c(TRUE, TRUE))
>
> This will estimate the slope for year at each combination of the two factors syst and timing. (You may need to re-fit the model after creating an additional variable, say WEED$syear <- scale(WEED$year), and with syear in place of scale(year) in the model formula and the emtrends call. You may follow-up with call(s) to emmeans::contrast(emt, ...) to compare or contrast these slopes.
>
> Hope that helps.
> -- Russ
>
> Russell V. Lenth - Professor Emeritus
> Department of Statistics and Actuarial Science
> The University of Iowa - Iowa City, IA 52242 USA
> Voice (319)335-0712 (Dept. office) - FAX (319)335-3017
>
>
>
> -----Original Message-----
> Date: Wed, 5 Sep 2018 10:43:39 +0200
> From: Guillaume Adeux <mailto:guillaumesimon.a2 using gmail.com>
> To: R-mixed models mailing list <mailto:r-sig-mixed-models using r-project.org>
> Subject: [R-sig-ME] significance of slope (different than zero) in
> triple interaction
>
>
> Hi mixmoders,
>
> I have the following model:
>
> mod=glmer(Weed_density~block+scale(year)*syst*timing+(1|year)+(1|plot)+(1|plot:year)+(1|ID_quadrat)+(1|OLRE)+offset(log(size_quadrat)),family=poisson(link="log"),dat=WEED)
>
> I have a significant triple interaction between time : treatment : season.
>
> Time is continuous, syst(=treatment) has 5 levels and season(=sampling
> session) has two levels.
>
> Here is the model output:
>
> Generalized linear mixed model fit by maximum likelihood (Laplace
> Approximation) ['glmerMod']
> Family: poisson ( log )
> Formula: WDall ~ block + scale(year) * syst * timing + (1 | year) + (1
> | plot) + (1 | plot:year) + (1 | ID_quadrat) + (1 | OLRE) +
> offset(log(size_quadrat))
> Data: WEED_paired_2
> Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e+05))
>
> AIC BIC logLik deviance df.resid
> 21206.3 21371.9 -10577.2 21154.3 4286
>
> Scaled residuals:
> Min 1Q Median 3Q Max
> -1.6531 -0.4373 -0.1646 0.1426 2.6313
>
> Random effects:
> Groups Name Variance Std.Dev.
> OLRE (Intercept) 4.456e-01 6.675e-01
> ID_quadrat (Intercept) 1.011e+00 1.006e+00 plot:year (Intercept) 1.429e+00 1.195e+00
> year (Intercept) 5.635e-15 7.506e-08
> plot (Intercept) 0.000e+00 0.000e+00
> Number of obs: 4312, groups: OLRE, 4312; ID_quadrat, 2156; plot:year, 86; year, 17; plot, 10
>
> Fixed effects:
> Estimate Std. Error z value Pr(>|z|)
> (Intercept) -0.84765 0.33352 -2.542 0.011036 *
> blockD -0.28663 0.27596 -1.039 0.298971
> scale(year) 0.11385 0.25128 0.453 0.650500
> systS2 2.21797 0.43765 5.068 4.02e-07 ***
> systS3 2.97934 0.42857 6.952 3.61e-12 ***
> systS4 2.64787 0.43488 6.089 1.14e-09 ***
> systS5 0.55059 0.45565 1.208 0.226912
> timingavant1 1.87971 0.10286 18.275 < 2e-16 ***
> scale(year):systS2 0.40061 0.38882 1.030 0.302863
> scale(year):systS3 0.44798 0.37297 1.201 0.229698
> scale(year):systS4 -0.01245 0.36549 -0.034 0.972819
> scale(year):systS5 1.06031 0.37957 2.793 0.005215 **
> scale(year):timingavant1 0.07949 0.09954 0.799 0.424489
> systS2:timingavant1 -0.36039 0.12128 -2.972 0.002963 **
> systS3:timingavant1 -0.56704 0.11777 -4.815 1.47e-06 ***
> systS4:timingavant1 -0.39785 0.11984 -3.320 0.000901 ***
> systS5:timingavant1 -0.06724 0.14990 -0.449 0.653770
> scale(year):systS2:timingavant1 -0.15246 0.11992 -1.271 0.203628
> scale(year):systS3:timingavant1 -0.04057 0.11556 -0.351 0.725543
> scale(year):systS4:timingavant1 -0.49134 0.11614 -4.231 2.33e-05 ***
> scale(year):systS5:timingavant1 -0.34391 0.13427 -2.561 0.010429 *
> ---
> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
>
> I wish to set up constrats to test if the slopes for scale(year):syst differ from zero at level 1 of timing.
>
> It seems like we can do this with testInteractions but I'm not sure if my set up is correct:
>
> testInteractions(mod1,custom=list(syst=c(1,0,0,0,0),timing=c(1,0)),
> slope="scale(year)", adjustment="none")
>
> The preceding code yields the following:
>
> Adjusted slope for scale(year)
> Chisq Test:
> P-value adjustment method: none
> Value Df Chisq Pr(>Chisq)
> syst1 : timing1 -0.82831 1 0.6464 0.4214
>
> This doesn't seem correct because Value doesn't represent the slope for the first level of "syst" at the first level of "timing".
>
> Could anyone shed their light?
>
> Thank you very much!
>
> Guillaume ADEUX
>
> _______________________________________________
> R-sig-mixed-models using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
More information about the R-sig-mixed-models
mailing list