Aliases: emtrends
Keywords:
### ** Examples fiber.lm <- lm(strength ~ diameter*machine, data=fiber) # Obtain slopes for each machine ... ( fiber.emt <- emtrends(fiber.lm, "machine", var = "diameter") )
machine diameter.trend SE df lower.CL upper.CL A 1.104 0.194 9 0.666 1.54 B 0.857 0.224 9 0.351 1.36 C 0.864 0.208 9 0.394 1.33 Confidence level used: 0.95
# ... and pairwise comparisons thereof pairs(fiber.emt)
contrast estimate SE df t.ratio p.value A - B 0.24714 0.296 9 0.835 0.6919 A - C 0.24008 0.284 9 0.845 0.6863 B - C -0.00705 0.306 9 -0.023 0.9997 P value adjustment: tukey method for comparing a family of 3 estimates
# Suppose we want trends relative to sqrt(diameter)... emtrends(fiber.lm, ~ machine | diameter, var = "sqrt(diameter)", at = list(diameter = c(20, 30)))
diameter = 20: machine sqrt(diameter).trend SE df lower.CL upper.CL A 9.88 1.73 9 5.96 13.8 B 7.67 2.00 9 3.14 12.2 C 7.73 1.86 9 3.52 11.9 diameter = 30: machine sqrt(diameter).trend SE df lower.CL upper.CL A 12.10 2.12 9 7.30 16.9 B 9.39 2.45 9 3.84 14.9 C 9.47 2.28 9 4.31 14.6 Confidence level used: 0.95
# Obtaining a reference grid mtcars.lm <- lm(mpg ~ poly(disp, degree = 2) * (factor(cyl) + factor(am)), data = mtcars) # Center trends at mean disp for each no. of cylinders mtcTrends.rg <- emtrends(mtcars.lm, var = "disp", cov.reduce = disp ~ factor(cyl)) summary(mtcTrends.rg) # estimated trends at grid nodes
disp cyl am disp.trend SE df 105 4 0 -0.0949 0.0829 20 183 6 0 -0.0024 0.0496 20 353 8 0 -0.0106 0.0105 20 105 4 1 -0.1212 0.0338 20 183 6 1 -0.0217 0.0573 20 353 8 1 -0.0147 0.0645 20
emmeans(mtcTrends.rg, "am", weights = "prop")
am disp.trend SE df lower.CL upper.CL 0 -0.0378 0.0312 20 -0.103 0.02733 1 -0.0529 0.0260 20 -0.107 0.00145 Results are averaged over the levels of: cyl Confidence level used: 0.95
### Higher-degree trends ... pigs.poly <- lm(conc ~ poly(percent, degree = 3), data = pigs) emt <- emtrends(pigs.poly, ~ degree | percent, "percent", max.degree = 3, at = list(percent = c(9, 13.5, 18))) # note: 'degree' is an extra factor created by 'emtrends' summary(emt, infer = c(TRUE, TRUE))
percent = 9.0: degree percent.trend SE df lower.CL upper.CL t.ratio p.value linear 2.39923 3.6504 25 -5.119 9.917 0.657 0.5170 quadratic -0.22674 1.1026 25 -2.498 2.044 -0.206 0.8387 cubic 0.00548 0.0825 25 -0.164 0.175 0.066 0.9475 percent = 13.5: degree percent.trend SE df lower.CL upper.CL t.ratio p.value linear 0.69212 1.5636 25 -2.528 3.912 0.443 0.6618 quadratic -0.15277 0.1747 25 -0.513 0.207 -0.874 0.3903 cubic 0.00548 0.0825 25 -0.164 0.175 0.066 0.9475 percent = 18.0: degree percent.trend SE df lower.CL upper.CL t.ratio p.value linear -0.34928 4.1176 25 -8.830 8.131 -0.085 0.9331 quadratic -0.07880 1.1505 25 -2.448 2.291 -0.068 0.9459 cubic 0.00548 0.0825 25 -0.164 0.175 0.066 0.9475 Confidence level used: 0.95
# Compare above results with poly contrasts when 'percent' is modeled as a factor ... pigs.fact <- lm(conc ~ factor(percent), data = pigs) emm <- emmeans(pigs.fact, "percent") contrast(emm, "poly")
contrast estimate SE df t.ratio p.value linear 23.837 14.74 25 1.617 0.1184 quadratic -5.500 6.29 25 -0.874 0.3903 cubic 0.888 13.36 25 0.066 0.9475
# Some P values are comparable, some aren't! See Note in documentation