我试图基于离散选择实验来估计R中的潜在类模型。我选择的属性集是“ COST”,“ NUCL”,“ REN”,“ FOSS”和“ OUTAGE”。我还问了一些背景问题,这些问题为我提供了变量“ MALE”,“ NL”,“ Y25”,“ Y50”,“ INC4000”等(约40个变量)。 我使用的代码是:
df01 <- mlogit.data(data,
id = "ID",
choice = "Choice",
varying = 3:17,
shape = "wide",
sep = "",
alt.levels = c("FOSS","REN","NUCL","COST","OUTAGE"))
lc <- gmnl(Choice ~ COST + REN + NUCL + OUTAGE | MALE + NL + Y25 + Y50 + EDSEC + EDMAS + INC4000 + INC8000 + CDV + WINZ + NSGR + NVA + SPA| 0 | 0 | 1 ,
data = df01,
model = 'lc',
Q = 3,
panel = TRUE,
method = "bhhh")
summary(lc)
到目前为止,它有效。但是,我需要添加更多的个人特征(因为我大约有40个)。在“ SPA”之后再添加一个变量时,该模型不再起作用。然后,我得到了错误:
“ solve.default(-H)错误: 系统是计算奇异的:倒数条件数= 2.58564e-109“
也许因为我指定了“ varying = 3:17”,所以该模型仅接受17个变量?但是,“ df01”文件包含更多列。如果我尝试将“ 3:17”更改为“ 3:18”,出现错误:
“ reshapeLong(数据,idvar = idvar,timevar = timevar,variable =变异,错误: “可变”参数的长度必须相同”
我在做什么错?我希望有人能提供一些好的建议。感谢您的帮助!