0

我正在尝试基于离散选择实验来估计 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' 参数必须是相同的长度”

我究竟做错了什么?我希望有人有一些好的建议。感谢您的帮助!

4

0 回答 0