关于数据组织,您基本上是对的。如果您有这样组织的案例:
ID M1 M2 M3 EVENT
您可能希望重新组织数据,使其看起来像这样:
ID TIME EVENT
1 1 0
1 2 1
1 3 1
2 1 0
2 2 0
. . .
. . .
我称之为从宽格式到长格式的转换。使用函数在 R 中很容易完成,使用包reshape()
更容易完成reshape2
。
我个人会保留该ID
领域,因为它可能用于识别混合效应模型中的变异来源。但这不是必需的(正如@BerndWeiss 指出的那样)。以下假设您希望这样做。glm(...,family=binomial)
如果不是,请拟合一个没有随机效应项的类似模型。
R 中的lme4
包将适合与您正在谈论的模型类似的混合效应逻辑回归模型,除了一个或两个随机效应来解释受试者之间系数的可变性(ID
)。如果您的数据存储在名为df
.
require(lme4)
ans <- glmer(EVENT ~ TIME + (1+TIME|ID), data=df, family=binomial)
这个特定的模型允许TIME
和intercept
系数在 ID 上随机变化。换句话说,这是嵌套在个体中的分层线性混合测量模型。
离散时间事件历史模型的另一种形式分解TIME
为离散虚拟变量,并将每个虚拟变量作为参数拟合。这本质上是Cox PH 模型的离散情况,因为危险曲线不限于线性(或二次,或者您可以想象转换时间)。TIME
但是,如果有很多离散时间段,您可能希望将它们分组为一组可管理的(即小的)离散时间段。
进一步的替代方案涉及转换时间以使您的危险曲线正确。之前的方法基本上可以让你不必这样做,但是之前的方法比这个(和我提出的原始线性案例)更简洁,因为你可能有很多时间点,因此会有很多讨厌的参数。
关于这个主题的一个很好的参考是 Judith Singer 和 John Willet 的Applied Longitudinal Data Analysis: Modeling Change and Event Occurrence。