2017-09-14 37 views
1

我正在尝试使用python找到学生化和PRESS残差的多元回归模型。在这种情况下,我有以下数据:如何在多元线性回归模型中找到学生化和PRESS残差

X1 X2 Y 
14 25 301 
19 32 327 
12 22 246 
11 15 187 

与拟合模型为:Y = 80.93-5.84 X1 + X2 11.32和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的值,以便我可以使用代码中的上述公式计算studentized和Press residual。这里st_r被studentized,press_r是PRESS残差。我不想使用任何python库。提前致谢。

回答

1

有一个在Matrix Multiplication in python?

纯矩阵乘法的代码和Python的转置可以与在此 Matrix Transpose in Python

所示的帽子矩阵然后可被计算为的zip函数来计算(除了使用函数在上面的参考文献中): H = X(X^TX)^ - 1X^T

我得到这些杠杆值(嗨):0.387681,0.95258,0.6661433,0.999597。注意模型的R平方好,但是模型预测的R平方(预测的R平方= [1-(PRESS /总平方和)]×100)为0.另外X1和X2 pvalues在统计学上不显着。非常有限的数据集。