複数のモデルのtexreg
出力TeX
ファイルを作成するのに少し問題があります。multinom
具体性のために、この多項ロジット設定のバージョンを使用しましょう。
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,])})
「学問」に対応する係数と「職業」に対応する係数の 2 つのテーブルを作成したいと考えています ( prog
「一般」の 3 番目の結果は省略されています)。
基本的に、係数が格納されている場所がわからないため、 nnet
/オブジェクトからレベルに個別にアクセスする方法がわかりません。multinom
を実行するtexreg(mnl)
と、4 つの列を持つテーブルが得られます。
model1 & model2 & NA & NA \\
さらに悪いことに、これらの列のラベルは間違っています。実際の順序は
model1-academic, model1-vocation, model2-academic, model2-vocation
単純に男性の表と女性の係数の表が必要な場合は、 と を実行texreg(mnl["model1"])
しtexreg(mnl["model2"])
ますが、係数を のレベルで分割する方法が明確ではありませんprog
。
texreg
必要な 2 つのテーブルを取得するためにどのように使用すればよいでしょうか。
#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