我正在尝试使用条件逻辑模型分析离散选择实验,使用 R 包 mclogit 中的 mclogit 函数对每个受试者产生随机效应。 .每个受试者 (ID) 对由 4 个备选方案组成的 4 个选择集进行评分。
我收到错误
Error in attributes(.Data) <- c(attributes(.Data), attrib) : cannot set attribute on a symbol
当我将其编码为
out2 <- mclogit(fm2, random=~1|ID, data=ds.pork)
我希望得到帮助正确编码。
library(support.CEs)
library(survival)
library(mclogit)
d.pork <- Lma.design(
attribute.names = list(
Price = c("100", "130", "160", "190")),
nalternatives = 3,
nblocks = 4,
row.renames = FALSE,
seed = 987)
data(pork)
dm.pork <- make.design.matrix(
choice.experiment.design = d.pork,
optout = TRUE,
continuous.attributes = c("Price"),
unlabeled = FALSE)
ds.pork <- make.dataset(
respondent.dataset = pork,
choice.indicators =
c("q1", "q2", "q3", "q4"),
design.matrix = dm.pork)
ds.pork$ID<-factor(ds.pork$ID)
fm1 <- RES ~ ASC1 + Price1 + ASC2 + Price2 + ASC3 + Price3 + strata(STR)
fm2<-cbind(RES, STR) ~ ASC1 + Price1 + ASC2 + Price2 + ASC3 + Price3
out1 <- clogit(fm1, data = ds.pork)
out2 <- mclogit(fm2, random=~1|ID, data=ds.pork)
请您参考如下方法:
错误来自使用 fm2而不是直接输入公式,如
out2 <- mclogit(cbind(RES, STR) ~ ASC1 + Price1 + ASC2 + Price2 + ASC3 + Price3, random = ~1|ID, data = ds.pork)
现在还有另一个错误,但现在它纯粹是关于模型规范。

