通过 texreg 输出广义线性模型
Generalized Linear Model output through texreg
我可以使用 texreg
获得漂亮的 glm 输出以用于 knitr
。有时我们需要使用逆 link 将 glm 的输出转换回响应。我想知道如何使用 texreg
获得反向 link 输出。类似于 texreg(exp(glm.D93))
。
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
library(texreg)
texreg(glm.D93)
产生
\begin{table}
\begin{center}
\begin{tabular}{l c }
\hline
& Model 1 \
\hline
(Intercept) & .04^{***}$ \
& $(0.17)$ \
outcome2 & $-0.45^{*}$ \
& $(0.20)$ \
outcome3 & $-0.29$ \
& $(0.19)$ \
treatment2 & [=11=].00$ \
& $(0.20)$ \
treatment3 & [=11=].00$ \
& $(0.20)$ \
\hline
AIC & 56.76 \
BIC & 57.75 \
Log Likelihood & -23.38 \
Deviance & 5.13 \
Num. obs. & 9 \
\hline
\multicolumn{2}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}
但是texreg(exp(glm.D93))
说
Error in exp(glm.D93) : non-numeric argument to mathematical function
已编辑
glm
使用一些 link
函数并提供 系数 、 标准误差 和 [=35= link 规模 的置信区间。但有时我们还需要系数、标准误差和置信区间响应规模。 texreg
在 上直接提供 系数 、 标准误差 和 置信区间 link scale,我想知道是否有可能得到 coefficients, standard errors and 置信区间 直接在 响应量表 上。
我找到了一种使用 stargazer
执行此操作的方法,但标准误差和置信区间仍然不正确。寻找解决方案。
library(stargazer)
stargazer(glm.D93, coef=list(exp(glm.D93$coefficients)), type="text")
=============================================
Dependent variable:
---------------------------
counts
---------------------------------------------
outcome2 0.635***
(0.202)
outcome3 0.746***
(0.193)
treatment2 1.000***
(0.200)
treatment3 1.000***
(0.200)
Constant 21.000***
(0.171)
---------------------------------------------
Observations 9
Log Likelihood -23.381
Akaike Inf. Crit. 56.761
=============================================
Note: *p<0.1; **p<0.05; ***p<0.01
要么使用覆盖参数来完成这个,要么操作一个中间 texreg 对象:
# solution 1
tr <- extract(glm.D93)
texreg(glm.D93, override.coef = exp(tr@coef), override.se = exp(tr@se))
# solution 2
tr <- extract(glm.D93)
tr@coef <- exp(tr@coef)
tr@se <- exp(tr@se)
texreg(tr)
或者直接从模型对象或其摘要中提取值(如果您不想使用 texreg 的提取函数)并将取幂的值交给覆盖参数。
任何这些解决方案都会产生以下输出(结合 screenreg):
==========================
Model 1
--------------------------
(Intercept) 21.00 ***
(1.19)
outcome2 0.63 *
(1.22)
outcome3 0.75
(1.21)
treatment2 1.00
(1.22)
treatment3 1.00
(1.22)
--------------------------
AIC 56.76
BIC 57.75
Log Likelihood -23.38
Deviance 5.13
Num. obs. 9
==========================
*** p < 0.001, ** p < 0.01, * p < 0.05
我可以使用 texreg
获得漂亮的 glm 输出以用于 knitr
。有时我们需要使用逆 link 将 glm 的输出转换回响应。我想知道如何使用 texreg
获得反向 link 输出。类似于 texreg(exp(glm.D93))
。
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
d.AD <- data.frame(treatment, outcome, counts)
glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
library(texreg)
texreg(glm.D93)
产生
\begin{table}
\begin{center}
\begin{tabular}{l c }
\hline
& Model 1 \
\hline
(Intercept) & .04^{***}$ \
& $(0.17)$ \
outcome2 & $-0.45^{*}$ \
& $(0.20)$ \
outcome3 & $-0.29$ \
& $(0.19)$ \
treatment2 & [=11=].00$ \
& $(0.20)$ \
treatment3 & [=11=].00$ \
& $(0.20)$ \
\hline
AIC & 56.76 \
BIC & 57.75 \
Log Likelihood & -23.38 \
Deviance & 5.13 \
Num. obs. & 9 \
\hline
\multicolumn{2}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}
但是texreg(exp(glm.D93))
说
Error in exp(glm.D93) : non-numeric argument to mathematical function
已编辑
glm
使用一些 link
函数并提供 系数 、 标准误差 和 [=35= link 规模 的置信区间。但有时我们还需要系数、标准误差和置信区间响应规模。 texreg
在 上直接提供 系数 、 标准误差 和 置信区间 link scale,我想知道是否有可能得到 coefficients, standard errors and 置信区间 直接在 响应量表 上。
我找到了一种使用 stargazer
执行此操作的方法,但标准误差和置信区间仍然不正确。寻找解决方案。
library(stargazer)
stargazer(glm.D93, coef=list(exp(glm.D93$coefficients)), type="text")
=============================================
Dependent variable:
---------------------------
counts
---------------------------------------------
outcome2 0.635***
(0.202)
outcome3 0.746***
(0.193)
treatment2 1.000***
(0.200)
treatment3 1.000***
(0.200)
Constant 21.000***
(0.171)
---------------------------------------------
Observations 9
Log Likelihood -23.381
Akaike Inf. Crit. 56.761
=============================================
Note: *p<0.1; **p<0.05; ***p<0.01
要么使用覆盖参数来完成这个,要么操作一个中间 texreg 对象:
# solution 1
tr <- extract(glm.D93)
texreg(glm.D93, override.coef = exp(tr@coef), override.se = exp(tr@se))
# solution 2
tr <- extract(glm.D93)
tr@coef <- exp(tr@coef)
tr@se <- exp(tr@se)
texreg(tr)
或者直接从模型对象或其摘要中提取值(如果您不想使用 texreg 的提取函数)并将取幂的值交给覆盖参数。
任何这些解决方案都会产生以下输出(结合 screenreg):
==========================
Model 1
--------------------------
(Intercept) 21.00 ***
(1.19)
outcome2 0.63 *
(1.22)
outcome3 0.75
(1.21)
treatment2 1.00
(1.22)
treatment3 1.00
(1.22)
--------------------------
AIC 56.76
BIC 57.75
Log Likelihood -23.38
Deviance 5.13
Num. obs. 9
==========================
*** p < 0.001, ** p < 0.01, * p < 0.05