回归模型中残差的三种形式(转)

原文:https://baijiahao.baidu.com/s?id=1581878577084855837&wfr=spider&for=pc

残差分析是回归诊断的方向之一。回归分析中常用的残差有三种,分别为普通残差、标准化残差和学生化残差。

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化残差运行结果

猜你喜欢

转载自blog.csdn.net/rojyang/article/details/85048372