用随机斜率和截距拟合Poisson GLM混合模型


9

我目前正在研究一系列Poisson时间序列模型,试图估计计数获取方式变化的影响(从一种诊断测试转换为另一种诊断测试),同时控制一段时间内的其他趋势(例如疾病的发生率)。我有许多不同站点的数据。

虽然我也一直在修改GAM,但我已经将一系列具有时间趋势的基本GLM进行了拟合,然后汇总结果。在SAS中,此代码看起来像这样:

PROC GENMOD data=work.data descending;
  model counts = dependent_variable time time*time / link=log dist = poisson;
run;

或在R:

glm(counts ~ dependent_variable + time + time*time, family="poisson")

然后进行估算,并将其汇总到各个站点中。也有人建议我尝试使用具有随机斜率的Poisson混合模型,并针对每个站点进行拦截,而不是合并。因此,从本质上讲,您将具有固定的dependent_variable效果,然后是截距和时间(或者理想情况下是时间和时间^ 2的随机效果,尽管我知道这有点毛茸茸)。

我的问题是我不知道如何适合这些模型之一,而且似乎每个人的文档突然变得很不透明,而混合模型似乎是这样。任何人都有一个简单的解释(或代码),以了解如何适应我要适应的东西以及要寻找的东西?

Answers:


14

在R中:

library(lme4)
lmer(counts ~ dependent_variable + (1+time|ID), family="poisson")

在这种情况下,且此代码适合模型 YiPoisson(λi)

log(λi)=β0+β1Xi+ηi1+ηi2t

其中是,是和是。是固定效应是随机效应,其方差由模型估算。Xidependent_variablettimeiIDβ0,β1ηi1,ηi2

这是一个示例,其中包含一些快速模拟的数据,其中随机效应方差确实为0,协变量无效,每个结果均为,并且每个人在被看到10次。Poisson(1)t=1,...,10

x = rnorm(100)
t = rep(1:10,each=10)
ID = rep(1:10,10)
y = rpois(100,1)
g <- lmer(y ~ x + (1+t|ID), family="poisson")
summary(g)
Generalized linear mixed model fit by the Laplace approximation 
Formula: y ~ x + (1 + t | ID) 
   AIC   BIC logLik deviance
 108.8 121.9 -49.42    98.85
Random effects:
 Groups Name        Variance  Std.Dev. Corr   
 ID     (Intercept) 0.0285038 0.168831        
        t           0.0027741 0.052669 -1.000 
Number of obs: 100, groups: ID, 10

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.09078    0.11808  -0.769    0.442
x            0.13670    0.08845   1.546    0.122

Correlation of Fixed Effects:
  (Intr)
x -0.127

请注意,该Std.Dev.列仅是该Variance列的平方根,而不是方差估计的标准误差!


其ηi1导致随机拦截?
Fomite

ηi1是随机截距,是的。
2012年

感谢您的回答-还有一个问题。在某些GLM中,某些站点从at ^ 2项中受益匪浅。似乎大多数人都标记了一种或两种随机效果-在计算方面,第三种效果有多讨厌?
Fomite

好吧,在上面的模拟示例中,该示例只有100个观察值和10个组,添加了第三种随机效果(通过键入g <- lmer(y ~ x + (1+t+I(t^2)|ID), family="poisson")),从而将计算时间从大约.75秒增加到大约11秒。随着样本数量的增加,计算时间的增加也可能会增加。
2012年

1
@andrea,这将反映出人们对数据集中存在长期趋势的信念-我没有先验地认为这是有道理的。如果单位是人与年龄,那么我当然同意,在一段固定的效果做了很多的意义,但在其他情况下,在时间上的斜率会比较每个个体为首的随机方向。这就是为什么我不包括效果(和epigrad没问如何将固定的时间效应)t

2

在SAS中:

proc glimmix data = yourdata ic = q;
    class id;
    model y = x / dist = poisson solution;
    random intercept t / subject = id;
run;

但是,当然有很多选择或多或少有用。


谢谢:)可悲的是,我似乎在融合问题上搁浅了,但我会解决这些问题。
Fomite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.