2017-09-14 36 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在統計學上不顯着。非常有限的數據集。