我正在尝试基于离散选择实验来估计 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”
也许模型只接受 17 个变量,因为我指定了“variing = 3:17”?但是,“df01”文件包含更多列。如果我尝试将“3:17”更改为“3:18”,我会收到错误消息:
“reshapeLong 中的错误(数据,idvar = idvar,timevar = timevar,varying = varying,:'varying' 参数必须是相同的长度”
我究竟做错了什么?我希望有人有一些好的建议。感谢您的帮助!