如何计算 r 中的学生化残差


学生残差只是残差除以其估计的标准差。

在实践中,我们通常说数据集中学生残差绝对值大于 3 的任何观测值都是异常值。

我们可以使用 MASS 包中的Studres()函数快速获取 R 中任何回归模型的学生化残差,该函数使用以下语法:

饰钉(型号)

其中模型代表任何线性模型。

示例:计算 R 中的学生化残差

假设我们使用内置mtcars数据集在 R 中构建以下简单线性回归模型:

 #build simple linear regression model
model <- lm(mpg ~ disp, data=mtcars)

我们可以使用 MASS 包中的Studres()函数来计算数据集中每个观测值的学生化残差:

 library (MASS)

#calculate studentized residuals
stud_resids <- studres(model)

#view first three studentized residuals
head(stud_resids, 3)

    Mazda RX4 Mazda RX4 Wag Datsun 710 
   -0.6236250 -0.6236250 -0.7405315 

我们还可以创建预测变量值与相应研究残差的快速绘图:

 #plot predictor variable vs. studentized residuals
plot(mtcars$disp, stud_resids, ylab=' Studentized Residuals ', xlab=' Displacement ') 

#add horizontal line at 0
abline(0, 0) 

R 中的学生化残基

从图中我们可以看到,没有一个观测值的学生残差绝对值大于 3,因此数据集中不存在明显的异常值。

如果我们愿意,我们还可以添加原始数据集中每个观察值的学生化残差:

 #add studentized residuals to orignal dataset
final_data <- cbind (mtcars[c(' mpg ', ' disp ')], stud_resids)

#view final dataset
head(final_data)

                   mpg disp stud_resids
Mazda RX4 21.0 160 -0.6236250
Mazda RX4 Wag 21.0 160 -0.6236250
Datsun 710 22.8 108 -0.7405315
Hornet 4 Drive 21.4 258 0.7556078
Hornet Sportabout 18.7 360 1.2658336
Valiant 18.1 225 -0.6896297

然后,我们可以根据学生残差对每个观察值从最大到最小进行排序,以了解哪些观察值最接近异常值:

 #sort studentized residuals descending
final_data[ order (-stud_resids),]

                     mpg disp stud_resids
Toyota Corolla 33.9 71.1 2.52397102
Pontiac Firebird 19.2 400.0 2.06825391
Fiat 128 32.4 78.7 2.03684699
Lotus Europa 30.4 95.1 1.53905536
Honda Civic 30.4 75.7 1.27099586
Hornet Sportabout 18.7 360.0 1.26583364
Chrysler Imperial 14.7 440.0 1.06486066
Hornet 4 Drive 21.4 258.0 0.75560776
Porsche 914-2 26.0 120.3 0.42424678
Fiat X1-9 27.3 79.0 0.30183728
Merc 240D 24.4 146.7 0.26235893
Ford Pantera L 15.8 351.0 0.20825609
Cadillac Fleetwood 10.4 472.0 0.08338531
Lincoln Continental 10.4 460.0 -0.07863385
Duster 360 14.3 360.0 -0.14476167
Merc 450SL 17.3 275.8 -0.28759769
Dodge Challenger 15.5 318.0 -0.30826585
Merc 230 22.8 140.8 -0.30945955
Merc 450SE 16.4 275.8 -0.56742476
AMC Javelin 15.2 304.0 -0.58138205
Camaro Z28 13.3 350.0 -0.58848471
Mazda RX4 Wag 21.0 160.0 -0.62362497
Mazda RX4 21.0 160.0 -0.62362497
Maserati Bora 15.0 301.0 -0.68315010
Valiant 18.1 225.0 -0.68962974
Datsun 710 22.8 108.0 -0.74053152
Merc 450SLC 15.2 275.8 -0.94814699
Toyota Corona 21.5 120.1 -0.99751166
Volvo 142E 21.4 121.0 -1.01790487
Merc 280 19.2 167.6 -1.09979261
Ferrari Dino 19.7 145.0 -1.24732999
Merc 280C 17.8 167.6 -1.57258064

其他资源

如何在 R 中执行简单线性回归
如何在 R 中执行多元线性回归
如何在 R 中创建残差图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注