ReplacementMlogitData

mlogit.dataがDeprecated(廃止))されてしまった

Rでチョイスモデルを動かすときに、データをワイドからロングに変換する。通常は、mlogit.dataを使えば一瞬でこの変換ができる。 が、mlogitのバージョンが上がり、1.1になって、mlogit.dataはサポートされなくなった。 正確には、dfidxという別のパッケージに切りだされた。 mlogit.data自体も1.1ではバックエンドがdfidxになっていて、以前のスクリプトがちゃんと動かない。

とても困る。 とはいえ、これ自体、そう複雑なパッケージではないはずなので、なんとかならないか、調べてみることにした。

分析モデル

とりあえず、価格と長さ、品質の組みあわせを調べることにしよう。 釣りざおとか?

id choice Price_1 Length_1 Price_2 Length_2 Q_1 Q_2
1 1 100 1.5 120 1.3 1 1
1
2
2
3
4
4
5
5
e6 %>% pivot_longer(cols=starts_with("Price_"), names_to="np", names_prefix="Price_", values_to="price") %>%
    pivot_longer(cols=starts_with("Brand_"), names_to="nb", names_prefix="Brand_", values_to="brand") %>%
    pivot_longer(cols=starts_with("Poverty_"), names_to="no", names_prefix="Poverty_", values_to="poverty") %>%
    pivot_longer(cols=starts_with("ASC_"), names_to="nasc", names_prefix="ASC_", values_to="ASC") %>%
    filter(np == nb & np == no & np == nasc) %>%
    mutate(choice=gsub(choice,pattern="choice",replacement = "", ignore.case = TRUE)) %>%
    mutate(ctf=(choice == np)) %>%
    select(-nb, -no, -nasc)

以下、書きかけだが、上記のスクリプトの変数を適宜変更すれば動くはず。

コメント

comments powered by Disqus