如何在多元线性回归模型中找到学生化残差和 PRESS 残差
How to find Studentized and PRESS residuals in multiple linear regression model
我正在尝试使用 python 查找多元回归模型的 Studentized 和 PRESS 残差。在这种情况下,我有以下数据:
X1 X2 Y
14 25 301
19 32 327
12 22 246
11 15 187
拟合模型为:Y=80.93−5.84 X1 + 11.32 X2 和 MSresidual:574.9
我编写了以下代码来查找这些残差。
import math
def lin_model(X1, X2):
Y_hat = 80.93 - 5.84 * X1 + 11.32 * X2
return Y_hat
MSresiduals = 574.9
X1 = [14, 19, 12, 11]
X2 = [25, 32, 22, 15]
Y=[301, 327, 246, 187]
i=0
hii = 0
print('Residual Standardized_Residual Studentized_Residual PRESS_Residual')
for z in Y:
err = z - lin_model(X1[i],X2[i])
sd_r = err / math.sqrt(MSresiduals)
st_r = err / math.sqrt(MSresiduals * (1 - hii))
press_r = err / (1-hii)
print(err,' ',sd_r,' ', st_r,' ',press_r)
i+=1
但是hii的值我不知道。 hii是帽子矩阵的对角线元素。但是我不知道如何实现帽子矩阵并获得 hii 的值。有人请帮我从给定的数据中找到 hii 的值,这样我就可以在代码中使用上面的公式计算学生化和压力残差。这里 st_r 是学生化的,press_r 是 PRESS 残差。我不想使用任何 python 库。提前致谢。
在Matrix Multiplication in python?
处有纯矩阵乘法的代码
并且 Python 转置可以用此处显示的 zip 函数计算
Matrix Transpose in Python
然后可以将帽子矩阵计算为(使用上述参考资料中的函数除外):
H = X(X^TX)^-lX^T
我得到这些杠杆值 (Hii):0.387681、0.951288、0.661433、0.999597。 PRESS = 1442464
请注意,模型 R 方很好,但模型预测的 R 方(预测的 R 方 = [1 - (PRESS / 总平方和)] * 100)为 0。X1 和 X2 p 值也不是具有统计学意义。数据集非常有限。
我正在尝试使用 python 查找多元回归模型的 Studentized 和 PRESS 残差。在这种情况下,我有以下数据:
X1 X2 Y
14 25 301
19 32 327
12 22 246
11 15 187
拟合模型为:Y=80.93−5.84 X1 + 11.32 X2 和 MSresidual:574.9 我编写了以下代码来查找这些残差。
import math
def lin_model(X1, X2):
Y_hat = 80.93 - 5.84 * X1 + 11.32 * X2
return Y_hat
MSresiduals = 574.9
X1 = [14, 19, 12, 11]
X2 = [25, 32, 22, 15]
Y=[301, 327, 246, 187]
i=0
hii = 0
print('Residual Standardized_Residual Studentized_Residual PRESS_Residual')
for z in Y:
err = z - lin_model(X1[i],X2[i])
sd_r = err / math.sqrt(MSresiduals)
st_r = err / math.sqrt(MSresiduals * (1 - hii))
press_r = err / (1-hii)
print(err,' ',sd_r,' ', st_r,' ',press_r)
i+=1
但是hii的值我不知道。 hii是帽子矩阵的对角线元素。但是我不知道如何实现帽子矩阵并获得 hii 的值。有人请帮我从给定的数据中找到 hii 的值,这样我就可以在代码中使用上面的公式计算学生化和压力残差。这里 st_r 是学生化的,press_r 是 PRESS 残差。我不想使用任何 python 库。提前致谢。
在Matrix Multiplication in python?
处有纯矩阵乘法的代码并且 Python 转置可以用此处显示的 zip 函数计算 Matrix Transpose in Python
然后可以将帽子矩阵计算为(使用上述参考资料中的函数除外): H = X(X^TX)^-lX^T
我得到这些杠杆值 (Hii):0.387681、0.951288、0.661433、0.999597。 PRESS = 1442464
请注意,模型 R 方很好,但模型预测的 R 方(预测的 R 方 = [1 - (PRESS / 总平方和)] * 100)为 0。X1 和 X2 p 值也不是具有统计学意义。数据集非常有限。