R语言二项GLM模型绘制残差直方图报x需为数值型问题求助
报错原因及解决方案
核心原因
报错中的x指代传入hist()函数的参数,而非原始数据集的Lead和Failure变量,和原始变量是否为数值型无关联,触发报错的原因如下:
- 残差提取字段名拼写错误:
summary(glm())返回的标准列表中,残差对应的字段名为$residuals,你使用的$resi属于不存在的字段名,取出的结果为空值或非数值类异常对象,不符合hist()的入参要求。 - 未对模型拟合结果赋值:每次计算都重新调用
glm()拟合模型,不仅计算效率低,还容易因多次调用的上下文差异出现异常结果。
正确实现代码
先将模型拟合结果赋值为独立对象,再基于该对象提取残差绘图即可:
# 拟合逻辑回归模型并存储 fit <- glm(Failure ~ Lead, data = Exercise2, family = "binomial") # 输出模型摘要 summary(fit) # 绘制残差直方图 hist(residuals(fit))
补充说明
逻辑回归属于广义线性模型,其默认输出的deviance残差本身通常不满足正态分布假设,若需检验模型拟合效果,可搭配Q-Q图、皮尔逊残差检验等方法共同判断。
内容的提问来源于stack exchange,提问作者kiely90
相关产品推荐
相关产品推荐

