R
需要更多信息才能在这里找到最佳解决方案,所以我只是用示例代码回答了一些场景。
建模结果
如果结果是二进制的,请使用family = binomial()
. 如果是计数数据,请使用,family = poisson()
因为它是固定的时间间隔。您还可以考虑将二进制数据聚合为计数,然后使用泊松。
我将从这里开始假设二项式。
为固定医院建模:时间交互
如果您的医院很少(例如,少于五家),那么推断随机效应超参数的信息将非常少。在这种情况下,它们可能只是被建模为固定的:
fit_full = glm(status ~ time * hospital, data = df, family = binomial())
那么由此产生的对time:hospital
交互作用的推论可能会很有趣。
随机医院建模:时间交互
将术语建模为随机的唯一实际含义之一是它应用了收缩。也就是说,远离模型预测的数据点被视为部分随机波动,真实值更接近均值。在这里阅读更多。
使用与上述相同的模型,但允许每个医院的随机斜率:
fit_full = lme4::glmer(status ~ time + (1 + time|hospital), family = binomial())
要测试随机斜率,您可以通过与不包含此项的(嵌套)模型进行比较来进行似然比测试 (LRT):
fit_null = lme4::glmer(status ~ time + (1|hospital), family = binomial())
summary(anova(fit_full, fit_null))
就个人而言,我偏爱贝叶斯推理,您可以使用brms
非常类似于glmer
. 作为快速修复,您还可以计算基于 BIC 的贝叶斯因子(参见Wagenmakers 等人(2007 年):
exp((BIC(fit_full) - BIC(fit_null))/2)
建模时间序列
我知道没有其他软件包可以执行上述操作并模拟一些自相关brms
(也许nlmer::lme
)。brms
不过,可能需要几个小时才能适应。对于 AR(1),它将类似于:
fit = brms::brm(status ~ time + (1 + time|hospital), data = df, family = bernoulli(), autocor = cor_ar(~1, p = 1))
如果您的日期仅以整数形式出现(2013、2014、2015、2016、2017),那么估计自回归系数的信息可能太少,您可以考虑将其省略。您确实有很多数据,因此现在可能需要这样做。您的时间变量需要更精细的分辨率才能识别自回归模型。