使用R语言performance包的check_model()函数报错:Variable 'Component'不在数据框中
glm.nb模型调用check_model()报错“Variable 'Component' is not in your data frame”的原因及解决方法
报错原因
- 这是
performance包针对负二项模型(glm.nb)的检查逻辑缺陷:当模型的所有自变量都是数值型、没有分类变量时,check_model()内部会错误地触发依赖Component变量的检查模块,而你的数据里根本没有这个变量,因此抛出报错。 - 其他模型(如普通线性glm)无此问题,是因为它们的检查流程不需要调用这个模块。
解决方法
- 临时添加冗余变量:给你的数据框手动加一个名为
Component的变量(比如全为1的数值列),让函数能找到这个变量,示例代码:
Haem$Component <- 1 check_model(glm1)
- 更新performance包:开发者可能已经修复了这个bug,运行以下命令更新后重试:
update.packages("performance")
- 单独调用检查函数:放弃全量的
check_model(),改用performance包中单个的检查函数,比如:
check_normality(glm1) # 检查残差正态性 check_heteroscedasticity(glm1) # 检查异方差 check_multicollinearity(glm1) # 检查多重共线性
内容的提问来源于stack exchange,提问作者emily
相关产品推荐
相关产品推荐

