1

複数のモデルの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
4

1 に答える 1