如何将汇总插补回归结果添加到 stargazer 表

问题描述 投票:0回答:1

我在我的数据中估算了一些 NA,计算了一个回归模型,并希望在 HTML 表格中显示结果。我知道如何为常规模型执行此操作。

library(stargazer)

mydf <- iris

mydf_nonmice_model <- lm(
  Petal.Length ~ Petal.Width + Sepal.Length + Sepal.Width,
  data = mydf)

stargazer(mydf_nonmice_model, type = "html", out = "mice_reg.html")

但是,当我尝试对从 MICE 插补获得的模型结果做同样的事情时,我做不到。

library(mice)
library(stargazer)
mydf <- iris

# create some NAs
l <- nrow(mydf)
set.seed(1)
indeces <- sample(1:l, l/3)
mydf$Sepal.Length[indeces] <- NA

# impute data with 30 variations
m <- 30
mydf_mice <- mice::mice(data=mydf, m=m, maxit=10, seed=1, print=F)

# create models for imputed data
# (I know that you can also do this using 'with()', but the code below works ok for me)
mydf_mice_models <- lapply(1:m, function(i) {
  lm(Petal.Length ~ Petal.Width + Sepal.Length + Sepal.Width,
     data = mice::complete(data = mydf_mice, i))
})

# look at the results
mice::pool(mydf_mice_models)

# creating a stargazer table gives an error
stargazer(
  mice::pool(mydf_mice_models),
  type = "html",
  out = "mice_reg.html")

观星者命令给我一个错误:

Error in start.lines[table.number]:length(all.latex.code) : 
  argument of length 0

那么,有没有办法让 MICE 推算回归的模型结果显示与使用 stargazer 的常规模型结果相同?非常感谢您提供的所有提示!

r regression imputation stargazer r-mice
1个回答
1
投票

我认为最简单的方法是在单个估算数据集(例如

stargazer()
)中的一个模型上调用
mydf_mice_models[[1]]
,您可以将系数、标准误差、t 统计量和 p 值替换为从合并模型。

library(mice)
library(stargazer)
project.org/package=stargazer
mydf <- iris

# create some NAs
l <- nrow(mydf)
set.seed(1)
indeces <- sample(1:l, l/3)
mydf$Sepal.Length[indeces] <- NA

# impute data with 30 variations
m <- 30
mydf_mice <- mice::mice(data=mydf, m=m, maxit=10, seed=1, print=F)

# create models for imputed data
# (I know that you can also do this using 'with()', but the code below works ok for me)
mydf_mice_models <- lapply(1:m, function(i) {
  lm(Petal.Length ~ Petal.Width + Sepal.Length + Sepal.Width,
     data = mice::complete(data = mydf_mice, i))
})

mydf_mice_models2 <- lapply(1:m, function(i) {
  lm(Petal.Length ~ Petal.Width + Sepal.Width,
     data = mice::complete(data = mydf_mice, i))
})



# look at the results
pool.mod <- mice::pool(mydf_mice_models)
smry <- summary(pool.mod)
pool.mod2 <- mice::pool(mydf_mice_models2)
smry2 <- summary(pool.mod2)

b <- smry$estimate
names(b) <- smry$term
se <- smry$std.error
t_stat = smry$statistic
p_val <- smry$p.value

b2 <- smry2$estimate
names(b2) <- smry2$term
se2 <- smry2$std.error
t_stat2 = smry2$statistic
p_val2 <- smry2$p.value

回答评论中的最后一个问题,您可以使用

add.lines()
添加到表格中,只需传入您将为合并模型AIC和LL计算的值即可。

stargazer(mydf_mice_models[[1]],
         mydf_mice_models2[[1]], 
         coef = list(b, b2), 
         se = list(se, se2),
         t = list(t_stat, t_stat2), 
         p = list(p_val, p_val2),
         add.lines = list(c("AIC", 1.234, 3.456), 
                          c("log likelihood", 5.678, 6.789)),
         keep.stat = "n", 
         type = "text")
#> 
#> ===========================================
#>                    Dependent variable:     
#>                ----------------------------
#>                        Petal.Length        
#>                     (1)            (2)     
#> -------------------------------------------
#> Petal.Width       1.507***      2.156***   
#>                   (0.068)        (0.053)   
#>                                            
#> Sepal.Length      0.715***                 
#>                   (0.058)                  
#>                                            
#> Sepal.Width      -0.634***      -0.355***  
#>                   (0.072)        (0.092)   
#>                                            
#> Constant           -0.287       2.258***   
#>                   (0.298)        (0.314)   
#>                                            
#> -------------------------------------------
#> AIC                1.234          3.456    
#> log likelihood     5.678          6.789    
#> Observations        150            150     
#> ===========================================
#> Note:           *p<0.1; **p<0.05; ***p<0.01

创建于 2023-05-07 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.