如何在R中输出DFBETAS检验结果为TRUE的记录编号?
解决方案
首先补充样本量n的定义,然后通过以下方法提取符合条件的记录编号:
- 完整修正代码:
model1 <- lm(price~area+bedrooms+bathrooms+stories, data = house) n <- nrow(house) # 定义样本量 DFBETAS <- dfbetas(model1) # 标记任意系数DFBETAS超出阈值的记录 outlier_rows <- apply(abs(DFBETAS) > 2/sqrt(n), 1, any) # 提取对应的记录编号 which(outlier_rows)
- 按单个系数提取异常记录
如果需要单独查看某一系数(比如area)对应的异常记录,可直接用:
which(abs(DFBETAS[,"area"]) > 2/sqrt(n))
说明
apply(..., 1, any)会逐行检查:只要该行有任意一个系数的DFBETAS绝对值超过2/sqrt(n),就标记为TRUEwhich()函数会返回所有标记为TRUE的行号,也就是你需要的目标记录编号
内容的提问来源于stack exchange,提问作者Riddle
相关产品推荐
相关产品推荐

