R语言多填补数据集上的准泊松混合效应模型分析求助
准泊松混合效应模型在多重填补数据集上的实现问题
问题背景
我当前面临三个分析需求的组合:
- 因变量为极度偏态、过度离散的计数变量(某行为的事件发生次数)
- 模型需要纳入随机效应
- 原始数据存在大量缺失值,已生成10个多重填补数据集
单数据集的解决方案
针对前两个需求,我选择准泊松混合效应模型。由于stats::glm无法合理纳入随机效应,lme4::glmer不支持准分布族,因此采用先拟合泊松混合模型,再手动调整标准误、z统计量和p值的方式转换为准泊松模型,单数据集下该方法可行:
library(dplyr); library(tidyr); library(tidyverse); library(lme4); library(broom.mixed); library(mice) # 加载示例数据 "qP_data.RData" # 单数据集拟合泊松混合模型 modelSingle = glmer(Y ~ Gender + Age + Xi + Age:Xi + (1|Country) + (1|Participant_ID), family = "poisson", data = repre_d_v1) printCoefmat(coef(summary(modelSingle))) # 未调整的系数表 # 定义准似然调整函数 quasi_table = function(model, ctab = coef(summary(model))) { phi = sum(residuals(model, type = "pearson")^2) / df.residual(model) qctab = within(as.data.frame(ctab), {`Std. Error` = `Std. Error`*sqrt(phi) `z value` = Estimate/`Std. Error` `Pr(>|z|)` = 2*pnorm(abs(`z value`), lower.tail = FALSE) }) return(qctab) } printCoefmat(quasi_table(modelSingle)) # 转换后的准泊松模型结果
多重填补数据集的困境
处理10个多重填补数据集时遇到阻碍:
- 可以完成泊松混合模型的拟合与结果合并,但无法将该流程适配为准泊松模型——无法在
mipo类对象上计算过度离散参数phi,因此无法使用上述quasi_table函数调整结果。 - 合并后的
mipo类结果中缺失随机效应的输出,对此存疑。
核心疑问
- A)是否可以基于准分布的逻辑,对多重填补后的泊松混合模型结果进行合并调整?
- B)能否从
mipo类合并对象中提取残差,用于计算过度离散参数phi?
内容的提问来源于stack exchange,提问作者Eva Šragová
相关产品推荐
相关产品推荐

