Multinomial logit
# まずはインストール install.packages("mlogit") # パッケージを読み込んで library(mlogit) # ヘルプ記事を見る help(mlogit) # ヘルプ記事のExamplesをまずはコピーペースト data("Fishing", package = "mlogit") Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode") summary(mlogit(mode ~ price + catch, data = Fish)) # "Fishing"というデータを使うようなので、それがどういう構成かを見る str(Fishing) # "Fishing"というデータについての説明記事を見る help(Fishing) # mlogit()関数が実際に処理しているのはFishというデータなので、それの構成をみる str(Fish) # Fishオブジェクトを作っている関数mlogit.data()のヘルプも見る help(mlogit.data) # これだけでは、今一つわかりにくいので、数行ずつ表示してみる Fishing[1:4,] Fishing[1,] Fishing[1:2,] Fish[1:8,]
- Fishingで1行に書かれている内容が、Fishで4行に展開されている。これがmlogit()を回すための要請らしいことがわかる
> Fishing[1,] mode price.beach price.pier price.boat price.charter catch.beach catch.pier catch.boat 1 charter 157.93 157.93 157.93 182.93 0.0678 0.0503 0.2601 catch.charter income 1 0.5391 7083.332 > Fishing[1:2,] mode price.beach price.pier price.boat price.charter catch.beach catch.pier catch.boat 1 charter 157.930 157.930 157.930 182.930 0.0678 0.0503 0.2601 2 charter 15.114 15.114 10.534 34.534 0.1049 0.0451 0.1574 catch.charter income 1 0.5391 7083.332 2 0.4671 1250.000 > Fish[1:8,] mode income alt price catch chid 1.beach FALSE 7083.332 beach 157.930 0.0678 1 1.boat FALSE 7083.332 boat 157.930 0.2601 1 1.charter TRUE 7083.332 charter 182.930 0.5391 1 1.pier FALSE 7083.332 pier 157.930 0.0503 1 2.beach FALSE 1250.000 beach 15.114 0.1049 2 2.boat FALSE 1250.000 boat 10.534 0.1574 2 2.charter TRUE 1250.000 charter 34.534 0.4671 2 2.pier FALSE 1250.000 pier 15.114 0.0451 2
- データの構成、その処理のための特有なハンドリングがわかったところで、mlogit()関数の処理結果を見る
summary(mlogit(mode ~ price + catch, data = Fish))
|