最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Use marginaleffects to recover all the pairwise comparison that emmeans reports - Stack Overflow

programmeradmin5浏览0评论

I can't get marginaleffects to return all the pairwise comparisons of a three level variable.

Consider this model

library(tidyverse)
library(palmerpenguins)
library(marginaleffects)
library(emmeans)

lm1 <- lm(
 bill_length_mm ~ species,
 data = penguins
 ) 

If you want the pairwise contrasts of species from emmeans you write

lm1 %>% 
  emmeans(
    pairwise ~ species
  )

which returns

$emmeans
 species   emmean    SE  df lower.CL upper.CL
 Adelie      38.8 0.241 339     38.3     39.3
 Chinstrap   48.8 0.359 339     48.1     49.5
 Gentoo      47.5 0.267 339     47.0     48.0

Confidence level used: 0.95 

$contrasts
 contrast           estimate    SE  df t.ratio p.value
 Adelie - Chinstrap   -10.04 0.432 339 -23.232  <.0001
 Adelie - Gentoo       -8.71 0.360 339 -24.237  <.0001
 Chinstrap - Gentoo     1.33 0.447 339   2.971  0.0089

P value adjustment: tukey method for comparing a family of 3 estimates 

However, this, from marginaleffects::avg_comparisons()

avg_comparisons(
  lm1, 
  variables = "species" 
  ) 

only reports the first two contrasts:

           Contrast Estimate Std. Error    z Pr(>|z|)     S 2.5 % 97.5 %
 Chinstrap - Adelie    10.04      0.432 23.2   <0.001 394.2  9.20  10.89
 Gentoo - Adelie        8.71      0.360 24.2   <0.001 428.7  8.01   9.42

Term: species
Type:  response 

How do I get marginaleffects to report all three contrasts, for all pairwise comparisons of the three levels of species?

I can't get marginaleffects to return all the pairwise comparisons of a three level variable.

Consider this model

library(tidyverse)
library(palmerpenguins)
library(marginaleffects)
library(emmeans)

lm1 <- lm(
 bill_length_mm ~ species,
 data = penguins
 ) 

If you want the pairwise contrasts of species from emmeans you write

lm1 %>% 
  emmeans(
    pairwise ~ species
  )

which returns

$emmeans
 species   emmean    SE  df lower.CL upper.CL
 Adelie      38.8 0.241 339     38.3     39.3
 Chinstrap   48.8 0.359 339     48.1     49.5
 Gentoo      47.5 0.267 339     47.0     48.0

Confidence level used: 0.95 

$contrasts
 contrast           estimate    SE  df t.ratio p.value
 Adelie - Chinstrap   -10.04 0.432 339 -23.232  <.0001
 Adelie - Gentoo       -8.71 0.360 339 -24.237  <.0001
 Chinstrap - Gentoo     1.33 0.447 339   2.971  0.0089

P value adjustment: tukey method for comparing a family of 3 estimates 

However, this, from marginaleffects::avg_comparisons()

avg_comparisons(
  lm1, 
  variables = "species" 
  ) 

only reports the first two contrasts:

           Contrast Estimate Std. Error    z Pr(>|z|)     S 2.5 % 97.5 %
 Chinstrap - Adelie    10.04      0.432 23.2   <0.001 394.2  9.20  10.89
 Gentoo - Adelie        8.71      0.360 24.2   <0.001 428.7  8.01   9.42

Term: species
Type:  response 

How do I get marginaleffects to report all three contrasts, for all pairwise comparisons of the three levels of species?

Share Improve this question asked yesterday tomwtomw 3,1604 gold badges33 silver badges53 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

If you type ?avg_comparisons or visit the marginaleffects website, you will see that this option is clearly documented under the variables argument:

library(palmerpenguins)
library(marginaleffects)

lm1 <- lm(
  bill_length_mm ~ species,
  data = penguins
)

avg_comparisons(
  lm1,
  variables = list("species" = "pairwise")
)
#> 
#>            Contrast Estimate Std. Error     z Pr(>|z|)     S 2.5 % 97.5 %
#>  Chinstrap - Adelie    10.04      0.432 23.23  < 0.001 394.2  9.20 10.890
#>  Gentoo - Adelie        8.71      0.360 24.24  < 0.001 428.7  8.01  9.418
#>  Gentoo - Chinstrap    -1.33      0.447 -2.97  0.00297   8.4 -2.21 -0.452
#> 
#> Term: species
#> Type:  response
发布评论

评论列表(0)

  1. 暂无评论