我发现了多项式 logit 模型的mlogit
-包,以搜索估计多项式混合 logit 模型。在阅读了优秀的小插图后,我发现我无法将我的数据应用于任何描述的示例。
我现在写信希望对我的问题有所帮助,并创建了一个最小的例子来说明我的情况。
问题如下:某处有辅音“Q”的单词。现在进行了一项实验,这些人的任务是听这些单词并说出他们是否听到了 Q、U 或其他辅音。这必须根据音节位置或真实/非真实单词等因素进行建模。
在最小的例子中,我用音节位置创建了 4 个人和他们的答案。
library(mlogit)
library(nnet)
set.seed(1234)
data <- data.frame(personID = as.factor(sample(1:4, 40, replace=TRUE)),
decision = as.factor(sample(c("Q","U", "other"), 40, replace=TRUE)),
syllable = as.factor(sample(1:4, 40, replace=TRUE)))
summary(data)
personID decision syllable
1:11 other:10 1:18
2:10 Q :18 2: 9
3:10 U :12 3: 5
4: 9 4: 8
据我所知nnet
的multinom
功能不包括混合模型。
modNnet1 <- multinom(decision ~ syllable, data=data)
首先,我使用mlogit.data
-function 来重塑文件。在与一位同事讨论后,我们得出的结论是没有替代的具体变量。
dataMod <- mlogit.data(data, shape="wide", choice="decision", id.var="personID")
mod1 <- mlogit(formula = decision ~ 0|syllable,
data = dataMod,
reflevel="Q", rpar=c(personID="n"), panel=TRUE)
Error in names(sup.coef) <- names.sup.coef :
'names' attribute [1] must be the same length as the vector [0]
mod2 <- mlogit(formula = decision ~ personID|syllable,
data = dataMod,
reflevel="Q", rpar=c(personID="n"), panel=TRUE)
Error in solve.default(H, g[!fixed]) :
Lapack routine dgesv: system is exactly singular: U[3,3] = 0
不,我不知道该怎么做,所以我在这里寻求帮助。但我相信这种问题可以解决,mlogit
我只是还没有看到;)