如果这个答案已经在我无法找到的地方回答,请随时向论坛打我一巴掌。用Numpy最小二乘回归矩阵
我在计算N-1矩阵中N×M矩阵和一组已知的地面实况解的最小二乘线性回归。从那里,我想获得每个回归的斜率,截距和残值。基本思想是,我知道应该为每行中的N个样本预测它的实际值,并且我想使用残差确定M列中的哪组预测值是最准确的。
我没有描述矩阵好,所以这里有一个图纸:
(N,M) matrix with predicted values for each row N
in each column of M...
##NOTE: Values of M and N are not actually 4 and 3, just examples
4 columns in "M"
[1, 1.1, 0.8, 1.3]
[2, 1.9, 2.2, 1.7] 3 rows in "N"
[3, 3.1, 2.8, 3.3]
(1,N) matrix with actual values of N
[1]
[2] Actual value of each sample N, in a single column
[3]
如此反复,为了清楚起见,我在找计算(N,M)中的每一列之间的lstsq回归矩阵和(1,N)矩阵。
例如,
之间[1] and [1]
[2] [2]
[3] [3]
然后回归
之间[1] and [1.1]
[2] [1.9]
[3] [3.1]
等,输出的斜率,截距和标准对计算出的各回归误差(平均残差)回归。
到目前为止,在numpy/scipy文档和'网络中,我只找到一次计算一列的例子。我原以为numpy的还必须计算在一组每列回归与标准
np.linalg.lstsq(arrayA,arrayB)
的能力,但返回错误
ValueError: array dimensions must agree except for d_0
我需要的列拆分为自己的阵列,然后一次计算一个? 有没有一个参数或矩阵操作,我需要使用numpy计算每列独立的回归?
我觉得应该更简单吗?我把它看了一遍,我似乎无法找到任何人做类似的事情。
你说你的矩阵是(N,M) (1,N)。 Lstsq期望(N,M)和(N),你是否尝试使用arrayB的转置?虽然(LinAlgError:不兼容的维),我得到了一个稍微不同的例外,我使用Python2.7,与numpy1.6 – Dhara 2012-07-10 17:35:04