2017-04-01 96 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)