У меня возникли проблемы с использованием texreg
для создания вывода TeX
файлов для нескольких моделей multinom
.texreg-ing несколько многомодовых моделей
Давайте использовать версию this multionmial установки логит для конкретности:
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,])})
Я хочу создать две таблицы: один для коэффициентов, соответствующих «академической» и один соответствующий «призвание» (третий результат prog
, «общий», опущен).
В принципе, я не знаю, как отдельно получить доступ к уровням от объекта 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
, чтобы получить две таблицу, я хочу, что (скелет) выглядят как:
#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
Может быть, я не понимая ваш вопрос. Если вам нужна отдельная таблица для каждой регрессии, почему бы не просто texreg (model1), а затем texreg (model2)? – Alex
Сделано крупное редактирование с рабочим примером для конкретности. Надеюсь, теперь это ясно. – MichaelChirico