残差分析是回归诊断的方向之一。回归分析中常用的残差有三种,分别为普通残差、标准化残差和学生化残差。
1. 普通残差(residual)
普通残差等于y观测值减去y拟合值的差值。R语言中可利用residuals( )调用回归模型的普通残差。也可先用predict()函数调用回归模型的拟合值,然后计算观测值与拟合值的差值。
x=c(274, 180, 375, 205, 86, 265, 98, 330, 195, 53, 430, 372, 236, 157, 370)
y=c(162, 120, 223, 131, 67, 169, 81, 192, 116, 55,252, 234, 144, 103, 212)
lm.reg<-lm(y~x)< span="">
residuals(lm.reg)
y-predict(lm.reg)
程序运行结果:
普通残差运行结果
2. 标准化残差(Standardized residual)
标准化残差又叫内学生化残差,是普通残差的标准化形式。R语言中可利用rstandard( )调用回归模型的标准化残差。其计算公式为:
标准化残差公式
其中σ^为回归模型中的误差均方的开平方,ε^为普通残差。hii为帽子矩阵的对角线元素。
#直接调用
rstandard(lm.reg)
#调用帽子矩阵的对角线元素
h=hatvalues(lm.reg)
#计算MSE
mse=sum((residuals(lm.reg)-mean(residuals(lm.reg)))^2)/13
#用公式计算标准化残差
standard_error= residuals(lm.reg)/(sqrt(mse*(1-h)))
standard_error
程序运行结果:
标准化残差运行结果
标准化残差运行结果
3. 学生化残差(Studentized Residual)
学生化残差又叫T化残差或外学生化残差。由于残差计算为样本数据,因此普通残差标准化后并不服从标准正态分布而是T分布,故T化残差是删除第i个样本数据后由余下的数据计算的残差。
R语言中可利用rstudent( )调用回归模型的T化残差。其计算公式为:
T化残差公式
T化残差公式
σi^为删除第i个数据后所拟合回归模型的误差均方开平方。ε^为回归模型的普通残差。
#直接调用
rstudent(lm.reg)
#计算删除第i个数据后的σi^
data=data.frame(x,y)
mse_s=c()
for (i in 1:15) {
data1=data[-i,]
lm.reg1=lm(y~x,data=data1)
mse_1=sum((residuals(lm.reg1)-mean(residuals(lm.reg1)))^2)/12
mse_s=c(mse_s,mse_1)
}
#用公式计算T化残差
student_error= residuals(lm.reg)/sqrt(mse_s*(1-h))
student_error
程序运行结果:
T化残差运行结果
举报/反馈

一花视界

7941获赞 429粉丝
一花一树皆学问,凡事洞明即文章
关注
0
0
收藏
分享