在模拟的AR(1) - 数据上拟合GLM(family = inverse.gaussian)。

时间:2018-03-31 07:30:03

标签: r glm lme4 mixed-models autoregressive-models

我遇到了一个令人讨厌的问题,而且我不可理解的问题,我希望你们中的一些人可以帮助我。我试图估计4个群体的自回归(变量X先前测量对X的电流测量的影响),这些群体具有不同程度的正偏态分布。理论上,更正偏态的分布具有更小的方差,并且由于2个变量之间的关系取决于共享方差的量,所以正偏态分布具有更小的自回归,更正态分布的变量。

我使用模拟来研究这个,并生成如下数据:我用tp时间点模拟n个人的数据。我使用固定的自回归参数phi(在.3所以我们有一个固定的过程)。为了生成正偏态分布,我使用卡方分布误差。个体在用于chi2分布式错误的自由度方面不同。换句话说,自由度是2级变量(并且本身是chi2(1)分布的)。具有非常低df的个体得到非常偏斜的分布,而具有更高df的个体得到更正常的分布。

for(i in 1:n) { # Loop over persons.

chi[i, 1] <- rchisq(1, df[i]) # Set initial value.

  for(t in 2:(tp + burn)) { # Loop over time points. 

    chi[i, t] <- phi[i] * chi[i, t - 1] + # Autoregressive effect.
     rchisq(1, df[i]) # Chi-square distributed error.

    } # End loop over time points.
} # End loop over persons.

现在我已经生成了结果变量,我把它放在长格式中,我创建了一个滞后预测器,我的意思是预测中心(或组平均中心,或集群平均中心,都是相同的)。我称之为滞后且居中的预测器chi.pred。我根据个人的自由度制作小组。具有最低df的25%在子组1中,26% - 在子组2中为50%,等等。

问题是这个:使用 family = inverse.gaussian link =拟合多级(即混合或随机效应模型)自回归(1)模型'identity',使用lme4包中的glmer()给了我很多警告。例如。 “退化的Hessian”,“大特征值/比率”,“未能与max | grad汇合”等等。我只是不明白为什么。

我适合的模型是

# Random intercept, but fixed slope with subgroups as level 2 predictor of slope. 
lmer(chi ~ chi.pred + chi.pred:factor(sub.df.noise) + (1|id), data = sim.data, control = lmerControl(optimizer = 'bobyqa')) 

# Random intercept and slope. 
lmer(chi ~ chi.pred + (1 + chi.pred|id), data = sim.data, control = lmerControl(optimizer = 'bobyqa'))

我使用逆高斯的原因是因为据说它可以更好地处理偏斜数据。

有没有人知道为什么我不适合这些模型?我试过增加样本量和时间点,不同的优化器,我有双重双重检查,如果滞后和居中数据是正确的,增加了迭代次数,给子组增加了一些噪声(因为否则它们是1对1与自由度有关)等。

0 个答案:

没有答案