関数を使用してRで決定木をモデル化しようとしていmlogit
ます。モデルの目的は、チャネル諸島での船乗りの選択を説明することです。モデルを設定する方法は、2 つの意思決定層を使用することです。まず、個人がアクティビティ (スキューバ、シュノーケリング、カヤックなど) を選択します。第二に、その活動に基づいて、彼らはその活動に有利なその場所の属性(昆布の覆い、無脊椎動物、魚など)に基づいて、訪問する島の場所を選択します。これはネストされた構造であり、最初にアクティビティを選択し、次にサイトを選択すると考えています。このモデルには、4 つの異なるアクティビティと 31 の異なるサイトから選択できる、合計 124 の固有の「アクティビティ選択」オプションがあります。さまざまなサイトの属性に基づいて、それぞれが特定の決定を下した 111 人の個人からのデータがあります。
R コードでは、まずネストについて説明します。次に、mlogit.data 関数を使用してデータを読み込んで準備し、最後に mlogit 関数を使用してモデルを実行します。ただし、コードを実行すると、次のようになります。
error: "Error in model.matrix.default(formula, data: allocMatrix: too many elements specified".
これはRAMの問題ですか?問題を設定するためのより効率的な方法はありますか? それとも、これは完全に間違っていますか?
これが私たちのコードです。
library(mlogit)
data.raw = read.csv("final_R_rum.csv",header=T)
underwater = c(1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1,11.1,12.1,13.1,14.1,15.1,16.1,17.1,18.1,19.1,20.1,21.1,22.1,23.1,24.1,25.1,26.1,27.1,28.1,29.1,30.1,31.1)
surface = c(1.2,2.2,3.2,4.2,5.2,6.2,7.2,8.2,9.2,10.2,11.2,12.2,13.2,14.2,15.2,16.2,17.2,18.2,19.2,20.2,21.2,22.2,23.2,24.2,25.2,26.2,27.2,28.2,29.2,30.2,31.2)
consumptive = c(1.3,2.3,3.3,4.3,5.3,6.3,7.3,8.3,9.3,10.3,11.3,12.3,13.3,14.3,15.3,16.3,17.3,18.3,19.3,20.3,21.3,22.3,23.3,24.3,25.3,26.3,27.3,28.3,29.3,30.3,31.3)
land = c(1.4,2.4,3.4,4.4,5.4,6.4,7.4,8.4,9.4,10.4,11.4,12.4,13.4,14.4,15.4,16.4,17.4,18.4,19.4,20.4,21.4,22.4,23.4,24.4,25.4,26.4,27.4,28.4,29.4,30.4,31.4)
data.logit = mlogit.data(data.raw,shape="long",choice="choice",alt.var="site_activity")
results=mlogit(formula=choice~fish_abun|total_TC_water_land,nests = list(underwater, surface, consumptive, land), data=data.logit)
summary(results)