2017-09-08 19 views
0

I에 의해 모방 할 수있는 패널 데이터 세트를 수행다항 로짓 모델 패널 데이터가 포함에 대한 임의의 기간

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