我使用包 support.CEs 设计了一个 CE 实验。我生成了一个带有 3 个属性的 CE 设计,每个属性有 4 个级别。问卷有 4 个备选方案和 4 个块
des1 <- rotation.design(attribute.names = list(
Qualitat = c("Aigua potable", "Cosetes.blanques.flotant", "Aigua.pou", "Aigua.marro"),
Disponibilitat.acces = c("Aixeta.24h", "Aixeta.10h", "Diposit.comunitari", "Pou.a.20"),
Preu = c("No.problemes.€", "Esforç.economic", "No.pagues.acces", "No.pagues.no.acces")),
nalternatives = 4, nblocks = 4, row.renames = FALSE,
randomize = TRUE, seed = 987)
问卷由 15 人(ID 1-15)回答,因此有 60 个输出(每 4 个区块有 15 人回答:
ID BLOCK q1 q2 q3 q4
1 1 1 1 2 3 3
2 1 2 1 3 3 4
3 1 3 5 1 3 5
4 1 4 5 2 2 5
5 2 1 1 2 4 3
6 2 2 1 4 3 4
7 2 3 3 1 3 2
8 2 4 1 2 2 2
9 3 1 1 2 2 2
10 3 2 1 4 3 4
11 3 3 3 1 3 4
12 3 4 3 2 1 4
13 4 1 1 5 4 3
14 4 2 1 4 5 4
15 4 3 5 5 3 2
16 4 4 5 2 5 5
17 5 1 1 2 4 2
18 5 2 3 2 3 2
19 5 3 3 1 3 4
20 5 4 3 2 1 4
21 6 1 1 5 5 5
22 6 2 1 3 3 4
23 6 3 3 1 3 4
24 6 4 1 2 2 2
25 7 1 1 2 4 3
26 7 2 4 2 3 4
27 7 3 3 1 3 3
28 7 4 3 4 5 5
29 8 1 1 3 2 3
30 8 2 1 4 3 4
31 8 3 3 1 3 4
32 8 4 1 2 2 1
33 9 1 1 2 3 3
34 9 2 1 3 3 4
35 9 3 5 1 3 5
36 9 4 5 2 2 5
37 15 1 1 5 5 5
38 15 2 4 4 5 4
39 15 3 5 5 3 5
40 15 4 4 3 5 5
41 11 1 1 5 5 5
42 11 2 4 4 5 4
43 11 3 5 5 3 5
44 11 4 5 3 5 5
45 12 1 1 2 4 3
46 12 2 4 2 3 4
47 12 3 3 1 3 3
48 12 4 3 4 5 5
49 13 1 1 2 2 2
50 13 2 1 4 3 4
51 13 3 3 1 3 2
52 13 4 1 2 2 2
53 14 1 1 1 3 3
54 14 2 1 4 1 4
55 14 3 4 1 3 2
56 14 4 3 2 1 2
57 15 1 1 1 3 2
58 15 2 5 2 1 4
59 15 3 4 4 3 1
60 15 4 3 4 1 4
问题是,当我将问题和答案矩阵与公式合并时
dataset1 <- make.dataset(respondent.dataset = res1,
choice.indicators = c("q1","q2","q3","q4"),
design.matrix = desmat1)
R 显示警告消息: In fitter(X, Y, strats, offset, init, control, weights = weights, : Ran out of iterations and didn't convergence
我应该期望生成的矩阵 desmat1 有 4800 个观察值(80 个可能的组合和 60 个输出)。相反,我只有 1200 次观察。矩阵数据集 1 仅显示 1 组备选方案的组合,而不是 4 组。
例如,对于 ID 1,块 1,问题 1 仅出现替代 1。它与该人选择的答案匹配,但在其他情况下不匹配,并且该信息在 R 中丢失,因此 clogit 时的结果是应用是错误的。
我确实希望这些问题得到理解。问候,
版:
我发现了我的问题。当我从我以 .csv 格式生成的 respondent.dataset 制作数据集时,r 只检测到 q1 响应而不是 q1-q4。数据集1
dataset1 <- make.dataset(respondent.dataset = res1,
choice.indicators = c("q1","q2","q3","q4"),
design.matrix = desmat1)
将 q1-q4 检测为新列。但关键是 q1-q4 必须填充 dataset1 中的 QES 列。我之前用 1 个块做了另一个 CE,并且数据集在读取 respondant.dataset 时正确完成。所以关键是现在我使用了 4 个块,但我不知道如何让 R 解释 q1-q4 是每个块的列 QUES。
res1 矩阵(repondant.dataset)(完整的矩阵有 60 行 = 15 名受访者(ID 1-15)* 4 个问题(make.dataset 中的 QES 列)
亲切的问候,