texreg-ing 多个多项式模型

texreg-ing multiple multinom models

我在使用 texreg 为多个 multinom 模型创建输出 TeX 文件时遇到了一些问题。

让我们使用 this multionmial logit 设置的一个版本来具体化:

library(foreign)
library(nnet)
library(data.table)
ml <- data.table(read.dta("http://www.ats.ucla.edu/stat/data/hsbdemo.dta"))

mnl<-lapply(c(model1="male",model2="female"),
            function(x){multinom(prog ~ ses + write,
                                 data = ml[female==x,])})

我想创建两个table:一个对应于"academic"的系数,一个对应于"vocation"([=17=的第三个结果],"general", 省略).

基本上,我不知道如何从 nnet/multinom 对象单独访问级别,因为我不知道系数存储在哪里。如果我们只是 运行 texreg(mnl),我们将得到一个包含 4 列的 table:

model1 & model2 & NA & NA \

更糟糕的是,这些列的标签有误——实际顺序是

model1-academic, model1-vocation, model2-academic, model2-vocation

如果我只是想要一个 table 的男性系数和一个 table 的女性系数,我会简单地 运行 texreg(mnl["model1"])texreg(mnl["model2"]),但它是不清楚如何按 prog.

的级别拆分系数

我怎样才能使用 texreg 得到我想要的两个 table,它们(骨架)看起来像:

#TABLE 1: ACADEMIC
> cbind(male=coef(mnl[["model1"]])[1,],
+       female=coef(mnl[["model2"]])[1,])
                   male      female
(Intercept) -3.23410968 -3.01401061
sesmiddle    1.15893835  0.17086744
seshigh      2.00007946  0.57690699
write        0.05464579  0.06598217

#TABLE 2: VOCATION
> cbind(male=coef(mnl[["model1"]])[2,],
+       female=coef(mnl[["model2"]])[2,])
                   male      female
(Intercept)  3.69215046  1.57234796
sesmiddle    1.15573930  0.69043245
seshigh      0.67476976 -0.16955825
write       -0.09640053 -0.03412729

联系了软件包开发人员 Philip Leifeld 教授,他非常慷慨地向 texreg 添加了处理此问题的功能,特别是添加了两个选项:levelsbeside .

我原来问题的答案是通过 levels:

texreg(mnl,levels="vocation")
texreg(mnl,levels="academic")

\begin{table}
\begin{center}
\begin{tabular}{l c c }
\hline
                & vocation & vocation \
\hline
(Intercept)     & .69^{*}$  & .57$   \
                & $(1.77)$    & $(1.84)$ \
sesmiddle       & .16$      & [=10=].69$   \
                & $(0.79)$    & $(0.65)$ \
seshigh         & [=10=].67$      & $-0.17$  \
                & $(0.99)$    & $(0.91)$ \
write           & $-0.10^{*}$ & $-0.03$  \
                & $(0.04)$    & $(0.04)$ \
\hline
AIC             & 167.56      & 218.73   \
BIC             & 187.65      & 240.26   \
Log\ Likelihood & -75.78      & -101.36  \
Deviance        & 151.56      & 202.73   \
Num.\ obs.      & 91          & 109      \
\hline
\multicolumn{3}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}

(我将抑制 "academic" 的输出以保存 space,但你明白了)。

beside 功能的工作方式略有不同,而不是堆叠系数,如果这符合您的喜好:

\begin{table}
\begin{center}
\begin{tabular}{l c c }
\hline
                      & model1 & model2 \
\hline
academic: (Intercept) & $-3.23$     & $-3.01$    \
                      & $(1.66)$    & $(1.82)$   \
academic: sesmiddle   & .16$      & [=11=].17$     \
                      & $(0.75)$    & $(0.58)$   \
academic: seshigh     & .00^{*}$  & [=11=].58$     \
                      & $(0.85)$    & $(0.69)$   \
academic: write       & [=11=].05$      & [=11=].07^{*}$ \
                      & $(0.03)$    & $(0.03)$   \
vocation: (Intercept) & .69^{*}$  & .57$     \
                      & $(1.77)$    & $(1.84)$   \
vocation: sesmiddle   & .16$      & [=11=].69$     \
                      & $(0.79)$    & $(0.65)$   \
vocation: seshigh     & [=11=].67$      & $-0.17$    \
                      & $(0.99)$    & $(0.91)$   \
vocation: write       & $-0.10^{*}$ & $-0.03$    \
                      & $(0.04)$    & $(0.04)$   \
\hline
AIC                   & 167.56      & 218.73     \
BIC                   & 187.65      & 240.26     \
Log\ Likelihood       & -75.78      & -101.36    \
Deviance              & 151.56      & 202.73     \
Num.\ obs.            & 91          & 109        \
\hline
\multicolumn{3}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
\end{tabular}
\caption{Statistical models}
\label{table:coefficients}
\end{center}
\end{table}