求解稀疏矩阵的线性回归方程

时间:2017-04-01 15:13:07

标签: python numpy scikit-learn linear-regression

我想用 m 元素求解 X 向量的多元线性回归方程,而我有 n 观察, ÿ即可。如果我假设测量具有高斯随机误差。如何使用python解决这个问题?我的问题看起来像这样:

enter image description here

m = 5 W 的一个简单示例如下:

enter image description here

P.S。我想考虑错误的影响,我想测量错误的标准偏差。

1 个答案:

答案 0 :(得分: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)