私は修士論文で減量を治療する架空の薬の属性の好みに関する離散選択実験を行っていますが、少し助けが必要です.
私の設計は一般的で、12 の選択肢セットと 3 つの選択肢 (製品 A、製品 B、オプション アウト) があります。
どういうわけか、別の特定の定数として option-out を含める必要がありますが、ここで何か間違ったことをしているようです。3 つの選択肢の 12 の選択セットに対して 197 の応答があるため、197*12*3 の選択肢の観察 = 7,092
> head(choice3, 12*3)
id choice_id mode.ids choice noadveff tab infreq_3 cost weightloss weightlosssq optout
1 x1 A 0 1 -1 -1 550 3.5 12.25 -1
1 x1 B 0 -1 1 1 90 6.0 36.00 -1
1 x1 C 1 0 0 0 0 0.0 0.00 1
1 x10 A 0 1 -1 1 50 6.0 36.00 -1
1 x10 B 0 -1 1 -1 165 3.5 12.25 -1
1 x10 C 1 0 0 0 0 0.0 0.00 1
1 x11 A 0 -1 -1 1 165 2.0 4.00 -1
1 x11 B 1 1 1 -1 90 3.5 12.25 -1
1 x11 C 0 0 0 0 0 0.0 0.00 -1
1 x12 A 0 -1 -1 1 550 6.0 36.00 -1
1 x12 B 0 1 1 -1 1000 2.0 4.00 -1
1 x12 C 1 0 0 0 0 0.0 0.00 1
1 x13 A 0 -1 -1 -1 90 6.0 36.00 -1
1 x13 B 0 1 1 1 1000 6.0 36.00 -1
1 x13 C 1 0 0 0 0 0.0 0.00 1
1 x2 A 0 -1 -1 -1 1000 6.0 36.00 -1
1 x2 B 0 1 1 1 300 2.0 4.00 -1
1 x2 C 1 0 0 0 0 0.0 0.00 1
1 x3 A 0 -1 -1 1 1000 6.0 36.00 -1
1 x3 B 1 1 1 -1 50 6.0 36.00 -1
1 x3 C 0 0 0 0 0 0.0 0.00 -1
1 x4 A 0 1 -1 1 165 3.5 12.25 -1
1 x4 B 0 -1 1 -1 550 2.0 4.00 -1
1 x4 C 1 0 0 0 0 0.0 0.00 1
1 x5 A 0 -1 -1 -1 550 2.0 4.00 -1
1 x5 B 1 1 1 1 50 6.0 36.00 -1
1 x5 C 0 0 0 0 0 0.0 0.00 -1
1 x6 A 0 1 -1 -1 300 6.0 36.00 -1
1 x6 B 0 -1 1 1 50 3.5 12.25 -1
1 x6 C 1 0 0 0 0 0.0 0.00 1
1 x8 A 0 -1 -1 1 300 3.5 12.25 -1
1 x8 B 1 1 1 -1 165 6.0 36.00 -1
1 x8 C 0 0 0 0 0 0.0 0.00 -1
1 x9 A 0 -1 1 -1 300 6.0 36.00 -1
1 x9 B 0 1 -1 1 90 2.0 4.00 -1
1 x9 C 1 0 0 0 0 0.0 0.00 1
カテゴリ変数 (noadfeff、tab、infreq_3、および optout) にエフェクト コーディングを使用しています。
mode.ids は代替品、すなわち製品 A または B、またはオプションアウト (mode.ids == C) を示します。
optout-variable は、次のコマンドでコーディングされています。
choice2$optout <- ifelse(choice2$mode.ids == "C" & choice2$choice == 1, "1", "-1")
このデータセットを使用して、mlogit-package のデータをセットアップしました
mlogit.all <- mlogit.data(choice2,
choice = "choice",
shape = c("long"),
id.var = "id",
alt.var = "mode.ids",
varying = c("cost", "cost.square", "noadvef", "tab", "infreq_3", "weightloss", "optout", "costsq", "weightlosssq"),
)
次のモデルを実行します
model.all <- mlogit(formula = choice ~ noadveff + tab + infreq_3 + cost + weightloss | optout | 0 ,
data = mlogit.all,
rpar = c(noadveff = 'n', tab = 'n', infreq_3 = 'n', weightloss = 'n', optout = 'u'),
R = 100,
halton = NA,
print.level = 0,
panel = TRUE
)
次のエラーが発生します。
Error in solve.default(H, g[!fixed]) :
Lapack routine dgesv: system is exactly singular: U[8,8] = 0
オプトアウトなしの同様のモデルでは問題が発生しないため、オプトアウト変数で何か間違ったことをしているに違いありません。
問題がどこにあるのか見ていただければ幸いです。:)
ベスト、ヘンリック