我有一个面板数据集,可以通过以下方式模仿:
fun doCoolStuff(arg1: Int) {
doCoolStuff(arg1, null)
}
fun doCoolStuff(arg2: String?) {
doCoolStuff(0, arg2)
}
fun doCoolStuff(arg1: Int, arg2: String?) {}
我现在想要一个多项logit模型,每个个体都有一个随机项 - 由它的ID识别。
没有随机项,我的模型计算如下:
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)
我读到我需要估计质量点混合多项logit模型。但是如何在R中完成这个?
答案 0 :(得分:1)
我不太确定质量点部分,但您可以在R中添加随机效果,方法是将个体ID作为模型中的因子。 这有效地为您的模型添加了单独的级别虚拟对象(这是每个人的虚拟变量)和&#34;允许&#34;你的拦截在个人层面上有所不同,衡量一个人和平均得分之间的差异。&#34;