Examples for 'emmeans::emtrends'


Estimated marginal means of linear trends

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

[Package emmeans version 1.7.4-1 Index]