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
添加了处理此问题的功能,特别是添加了两个选项:levels
和 beside
.
我原来问题的答案是通过 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}
我在使用 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
添加了处理此问题的功能,特别是添加了两个选项:levels
和 beside
.
我原来问题的答案是通过 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}