2017-04-01 51 views
1

我想解決多元線性迴歸方程爲矢量X元件,同時我有Ñ觀察,ÿ。如果我假設測量有高斯隨機錯誤。我如何使用python解決這個問題?我的問題是這樣的:求解線性迴歸方程爲稀疏矩陣

enter image description here

W¯¯米= 5,如下給出一個簡單的例子:

enter image description here

P.S.我想考慮錯誤的影響,正是我想測量錯誤的標準偏差。

+0

@ kmario23我有** w^**和** **Ÿ,我想估計** X **和錯誤。 – Dalek

+0

一種方法可能是找到'W'的僞逆並乘以等式。 – kmario23

+0

@ kmario23它是在這種情況下,我認爲沒有測量的不確定性 – Dalek

回答

2

你可以像下面這樣做

def myreg(W, Y): 
    from numpy.linalg import pinv 
    m, n = Y.shape 
    k = W.shape[1] 
    X = pinv(W.T.dot(W)).dot(W.T).dot(Y) 
    Y_hat = W.dot(X) 
    Residuals = Y_hat - Y 
    MSE = np.square(Residuals).sum(axis=0)/(m - 2) 
    X_var = (MSE[:, None] * pinv(W.T.dot(W)).flatten()).reshape(n, k, k) 
    Tstat = X/np.sqrt(X_var.diagonal(axis1=1, axis2=2)).T 
    return X, Tstat 

演示

W = np.array([ 
     [ 1, -1, 0, 0, 1], 
     [ 0, -1, 1, 0, 0], 
     [ 1, 0, 0, 1, 0], 
     [ 0, 1, -1, 0, 1], 
     [ 1, -1, 0, 0, -1], 
    ]) 

Y = np.array([2, 4, 1, 5, 3])[:, None] 

X, V = myreg(W, Y)