7

私は離散選択実験 (DCE) からのデータを持っており、さまざまなセクターからの個人の雇用の好みを調べています。長い形式にフォーマットしたこと。mlogit を使用してモデル化したいと考えています。データをエクスポートし、asclogit コマンドを使用して Stata でモデルを正常に実行できますが、R で実行するのに問題があります。

データの最初の 25 行のスナップショットを次に示します。

> data[1:25,]
   userid    chid item sector outcome cul fit ind led prj rel
1   11275  211275    2      1       1   0   1   0   1   1   1
2   11275  211275    2      2       0   1   0   0   0   0   0
3   11275  211275    2      0       0   0   0   1   1   0   1
4   11275  311275    3      0       1   1   1   0   0   0   1
5   11275  311275    3      2       0   0   1   0   0   0   1
6   11275  311275    3      1       0   0   1   0   0   0   0
7   11275  411275    4      0       0   1   0   1   1   0   0
8   11275  411275    4      2       1   0   1   1   1   1   0
9   11275  411275    4      1       0   0   1   0   1   0   0
10  11275  511275    5      1       1   1   0   1   0   1   1
11  11275  511275    5      2       0   0   0   1   1   0   0
12  11275  511275    5      0       0   0   0   1   1   1   0
13  11275  611275    6      0       0   0   1   1   0   0   1
14  11275  611275    6      1       1   1   1   1   0   0   1
15  11275  611275    6      2       0   1   1   1   0   1   0
16  11275  711275    7      1       0   0   0   0   0   1   0
17  11275  711275    7      0       0   1   0   0   1   1   0
18  11275  711275    7      2       1   1   0   0   1   1   1
19  11275  811275    8      0       1   0   1   0   0   1   1
20  11275  811275    8      1       0   1   0   1   1   1   1
21  11275  811275    8      2       0   0   0   0   0   1   1
22  11275  911275    9      0       0   1   1   0   0   1   0
23  11275  911275    9      2       1   1   1   1   1   0   1
24  11275  911275    9      1       0   1   0   1   1   0   0
25  11275 1011275   10      0       0   0   0   0   0   0   0

userid と chid は因子変数で、残りは数値です。変数: Userid は一意の回答者 ID chid は一意の選択肢セット ID 回答者ごとの項目は選択肢セット ID (回答者間で繰り返されます) セクターは選択肢 (3 つの異なるセクター)は二項因子変数であり、実験計画に応じて選択肢間で変化する特定の選択肢です。

これが私のmlogit構文です:

mlogit(outcome~cul+fit+ind+led+prj+rel,shape="long",
       data=data,id.var=userid,chid.var="chid",
       choice=outcome,alt.var="sector")

これが私が得るエラーです:

Error in if (abs(x - oldx) < ftol) { : 
  missing value where TRUE/FALSE needed

欠落データがないこと、および各選択セットに選択された選択肢が 1 つだけあることを確認しました。モデルがまったく同じデータセットを使用して Stata で正常に実行されているのに、なぜこのエラーが発生するのかについてのアイデアはありますか? おそらくどこかで mlogit 構文を読み間違えたのでしょう。それが役立つ場合、私の Stata 構文は次のとおりです。

4

2 に答える 2

9

私がそれを理解したので、ここで私自身の質問に答えます。

R mlogit は、選択セット内の選択肢がどれも選択されていない場合、処理できません。また、R は適切に順序付けされたデータを必要とし、選択セット内の各選択肢は行内にある必要があります。一部のデータ管理のために、私はそれをしていませんでした。興味深いことに、Stata はこれらの条件の両方を処理できるので、私の Stata コマンドが機能したのはそのためです。

余談ですが、興味のある方のために説明すると、Stata の asclogit と R の mlogit はまったく同じ結果をもたらします。それが起こるときはいつもいいです。

于 2014-12-04T17:49:17.317 に答える
-3

mlogit.data()データを整形するために使用する必要がある場合があります。に例があり?mlogitます。それが役立つことを願っています。

于 2014-12-03T05:21:36.707 に答える