2017-09-08 4 views
0

私はで模倣することができるパネルデータセットを持っている:多項ロジットモデルのパネルデータを含むためのランダムなターム

set.seed(123) 
N = 1000 
X2 = runif(N, 0, 1) 
X1 = sample(0:6, N, replace=TRUE) 
eps = rnorm(N, 0, 6) 
length = sample(1:4,N,replace=TRUE) 
Ycont = 0.5*X2 - 0.3*X1 +0.2*length + 10 + eps 
Y = ntile(Ycont, 3) 
Y =Y - 1 
df_org = data.frame(id=as.character(1:N), length, Y, X1, X2) 
df_org[df_org$length==2 & df_org$Y==1,]$Y=0 # keine Ausfälle in t2 
df = df_org 
# Data-Manipulation 
df_long = setDT(df_org)[,.SD[rep(1L,(length))], by = id] 
# add length-variable: 
df_long = df_long[ , time := 1:.N, by=id] 
# correct dependent variable 
df_long$Y_new = df_long$Y 
df_long[df_long$time < df_long$length,]$Y_new = 0 
df_long$int_time = as.factor(df_long$time) 

私は今、それぞれのランダムな用語で多項ロジットモデルに合うようにしたいです個人 - IDで識別されます。ランダム用語なし

が、私のモデルは次のように計算されます

reg_surv=multinom(Y_new~-1+int_time+X1+X2,data=df_long,maxit=500,MaxNWts =2000) 

私は質点混合多項ロジットモデルを推定する必要があることを読みました。しかし、Rでこれを達成する方法は?

答えて

0

質点部分についてはあまりよく分かりませんが、モデルに個々のIDを因子として含めることで、Rにランダムな効果を追加できます。 これはモデルに個々のレベルのダミーを効果的に追加します(これは個々のダミー変数です)。個々のレベルでの傍受を「許可」し、特定の個人と平均「スコア」の差を測定します。

さらなる読書:https://en.wikipedia.org/wiki/Random_effects_model

関連する問題