0

我想在 R 中进行一个简单的两个样本 t 检验,以比较由 ggpredict(或 ggeffect)生成的边际效应。

ggpredict 和 ggeffect 都提供了不错的输出:(1)表(pred prob / std error / CIs)和(2)图。但是,它不提供用于评估边际效应的统计显着性的 p 值(即,两个预测概率之间的差异是否与零相差?)。此外,由于我正在使用交互效应,我还对第一个差异(两个边际效应之间)和第二个差异的两个样本 t 检验感兴趣。

有没有一种简单的方法可以使用 ggpredict/ggeffect 输出运行相关的 t 检验?其他选择?

附:. 带有虚构数据的代表代码。具体来说:我想测试以下“第一个差异”:

--> .67 - .33=.34(与零的差异?)

--> .5 - .5 = 0(与零的差异?)

...以及以下第二个区别:

--> 0.0 - .34 = .34(与零的差异?)

另见 Mize 2019 中的图 12/表 3(非线性模型中的交互作用)

谢谢斯科特


  library(mlogit)
#> Loading required package: dfidx
#> 
#> Attaching package: 'dfidx'
#> The following object is masked from 'package:stats':
#> 
#>     filter
  library(sjPlot)
  library(ggeffects)
  
  # create ex. data set.  1 row per respondent (dataset shows 2 resp). Each resp answers 3 choice sets, w/ 2 alternatives in each set. 
  cedata.1 <- data.frame( id    =  c(1,1,1,1,1,1,2,2,2,2,2,2),    # respondent ID. 
                          QES    = c(1,1,2,2,3,3,1,1,2,2,3,3),   # Choice set (with 2 alternatives)    
                          Alt    = c(1,2,1,2,1,2,1,2,1,2,1,2),   # Alt 1 or Alt 2 in  choice set 
                          LOC    = c(0,0,1,1,0,1,0,1,1,0,0,1),   # attribute describing alternative. binary categorical variable
                          SIZE   = c(1,1,1,0,0,1,0,0,1,1,0,1),   # attribute describing alternative. binary categorical variable
                          Choice = c(0,1,1,0,1,0,0,1,0,1,0,1),   # if alternative is Chosen (1) or not (0)
                          gender = c(1,1,1,1,1,1,0,0,0,0,0,0)   # male or female (repeats for each indivdual) 
  )
  
  # convert dep var Choice to factor as required by sjPlot
  cedata.1$Choice <- as.factor(cedata.1$Choice)
  cedata.1$LOC <- as.factor(cedata.1$LOC)
  cedata.1$SIZE <- as.factor(cedata.1$SIZE)
  
  # estimate model. 
glm.model <- glm(Choice ~  LOC*SIZE, data=cedata.1, family = binomial(link = "logit"))

  # estimate MEs for use in IE assessment
LOC.SIZE <- ggpredict(glm.model, terms = c("LOC", "SIZE")) 
LOC.SIZE
#> 
#> # Predicted probabilities of Choice
#> # x = LOC
#> 
#> # SIZE = 0
#> 
#> x | Predicted |   SE |       95% CI
#> -----------------------------------
#> 0 |      0.33 | 1.22 | [0.04, 0.85]
#> 1 |      0.50 | 1.41 | [0.06, 0.94]
#> 
#> # SIZE = 1
#> 
#> x | Predicted |   SE |       95% CI
#> -----------------------------------
#> 0 |      0.67 | 1.22 | [0.15, 0.96]
#> 1 |      0.50 | 1.00 | [0.12, 0.88]
#> Standard errors are on the link-scale (untransformed).

  # plot 
  # plot(LOC.SIZE, connect.lines = TRUE)
4

0 回答 0