在 stargazer 输出中包含 vif 信息
Include vif information in stargazer output
我有一个 lm 函数的输出,我应用了 car
包中的 vif 函数。我想将 vif 包含在由 stargazer 包生成的回归 table 中,但我无法添加额外的列。
这可能吗?我也愿意听取有关使用其他软件包的建议。
谢谢,如果您需要更多信息,请告诉我。
正如 所建议的,使用 stargazer 自定义输出的可能性是有限的。一种方法是利用 summary=FALSE
选项,它只打印您插入的数据框。
library(stargazer)
library(car)
library(broom)
library(tidyverse)
#generate dummy data with correlated regressors
set.seed(123)
x <- runif(1000)
z <- x^0.5
y <- x + z + rnorm(1000, sd=.05)
model <- lm(y ~ x + z)
# create a new tibble with vifs
vif(model) %>% tibble(.) %>% mutate(term = names(vif(model)) %>% rename('vif'='.') -> vifs
#merge summary stats of model with vifs
tidy_sum <- tidy(summary(model))
left_join(tidy_sum, vifs) -> summary_with_vif
stargazer(summary_with_vif, type='html', summary=FALSE)
输出如下所示:
<table style="text-align:center"><tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td>term</td><td>estimate</td><td>std.error</td><td>statistic</td><td>p.value</td><td>vif</td></tr>
<tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">1</td><td>(Intercept)</td><td>0.0004</td><td>0.009</td><td>0.041</td><td>0.968</td><td></td></tr>
<tr><td style="text-align:left">2</td><td>x</td><td>0.992</td><td>0.027</td><td>36.180</td><td>0</td><td>24.716</td></tr>
<tr><td style="text-align:left">3</td><td>z</td><td>1.006</td><td>0.034</td><td>30.003</td><td>0</td><td>24.716</td></tr>
<tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr></table>
很遗憾,您需要重命名您的列,并自行选择位数。
我有一个 lm 函数的输出,我应用了 car
包中的 vif 函数。我想将 vif 包含在由 stargazer 包生成的回归 table 中,但我无法添加额外的列。
这可能吗?我也愿意听取有关使用其他软件包的建议。
谢谢,如果您需要更多信息,请告诉我。
正如 summary=FALSE
选项,它只打印您插入的数据框。
library(stargazer)
library(car)
library(broom)
library(tidyverse)
#generate dummy data with correlated regressors
set.seed(123)
x <- runif(1000)
z <- x^0.5
y <- x + z + rnorm(1000, sd=.05)
model <- lm(y ~ x + z)
# create a new tibble with vifs
vif(model) %>% tibble(.) %>% mutate(term = names(vif(model)) %>% rename('vif'='.') -> vifs
#merge summary stats of model with vifs
tidy_sum <- tidy(summary(model))
left_join(tidy_sum, vifs) -> summary_with_vif
stargazer(summary_with_vif, type='html', summary=FALSE)
输出如下所示:
<table style="text-align:center"><tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td>term</td><td>estimate</td><td>std.error</td><td>statistic</td><td>p.value</td><td>vif</td></tr>
<tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">1</td><td>(Intercept)</td><td>0.0004</td><td>0.009</td><td>0.041</td><td>0.968</td><td></td></tr>
<tr><td style="text-align:left">2</td><td>x</td><td>0.992</td><td>0.027</td><td>36.180</td><td>0</td><td>24.716</td></tr>
<tr><td style="text-align:left">3</td><td>z</td><td>1.006</td><td>0.034</td><td>30.003</td><td>0</td><td>24.716</td></tr>
<tr><td colspan="7" style="border-bottom: 1px solid black"></td></tr></table>
很遗憾,您需要重命名您的列,并自行选择位数。