我正在研究数据集,并适合泊松分布混合效果模型。我想计算我的模型预测的预期零位数,并将其与实际数据集中观察到的零位数进行比较。尽管我看过很多文章都在讨论有关数学的基本知识,但是实现这种数学的代码对我来说并不明确,我似乎也找不到任何明确的答案。
据我所知,我正在寻找一种为R中的混合效应模型计算P(Yi = 0 | xi)=e-λ的方法。
我的数据集中有一点背景。响应变量是一个计数(单个蝴蝶的数量),而我的预测变量主要是比例(例如花朵覆盖的栖息地比例)。我也有一个随机变量:PatchID。我在lme4软件包中安装了泊松分布混合效应模型。
模型输出:
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: poisson ( log )
Formula: spp_icarus ~ BareGround + Shrub + Grass + AllFlowers + CowsVetch +
CanopyCover + avg.bft + season.bft + (1 | PatchID)
Data: icarusdata2
AIC BIC logLik deviance df.resid
804.8 835.2 -392.4 784.8 144
Scaled residuals:
Min 1Q Median 3Q Max
-4.819 -0.844 -0.350 0.443 77.147
Random effects:
Groups Name Variance Std.Dev.
PatchID (Intercept) 2.69 1.64
Number of obs: 154, groups: PatchID, 39
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.3069 0.5750 0.534 0.593512
BareGround -5.7246 0.8096 -7.071 1.54e-12 ***
Shrub -50.1908 5.8837 -8.530 < 2e-16 ***
Grass -1.3167 0.5608 -2.348 0.018875 *
AllFlowers 11.2299 1.5986 7.025 2.14e-12 ***
CowsVetch -51.2781 8.0523 -6.368 1.91e-10 ***
CanopyCover 0.1029 2.3806 0.043 0.965537
avg.bft -48.1492 7.0559 -6.824 8.86e-12 ***
season.bft1 2.0350 0.6045 3.367 0.000761 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
答案 0 :(得分:0)
好的,我对this post的解释可以转换为R代码,如下所示。使用拟合的模型model
,您可以预测每个观察值的预期响应:
lambda_hat <- predict(model, type = "response")
对于泊松分布,期望值对应于lambda参数。而且我们知道零的概率为exp(-lambda)
。这样我们就可以计算出每个观察结果的零概率,并将它们加起来以获得期望的零数目:
expected_zeros <- sum(exp(-lambda_hat))