如果這個答案已經在我無法找到的地方回答,請隨時向論壇打我一巴掌。用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