N x M 行列と既知のグラウンド トゥルース ソリューションのセットから、N-1 行列で最小二乗線形回帰を計算しようとしています。そこから、各回帰の傾き、切片、および残差値を取得したいと思います。基本的な考え方は、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) 行列と (1,N) 行列の各列の間の lstsq 回帰を計算しようとしています。
たとえば、
[1] and [1]
[2] [2]
[3] [3]
次に、間の回帰
[1] and [1.1]
[2] [1.9]
[3] [3.1]
計算された各回帰の傾き、切片、および標準誤差 (平均残差) を出力します。
これまでのところ、numpy/scipy のドキュメントや「ネット」では、一度に 1 つの列を計算する例しか見つかりませんでした。numpy には、標準のセット内の各列の回帰を計算する機能があると思っていました
np.linalg.lstsq(arrayA,arrayB)
しかし、それはエラーを返します
ValueError: array dimensions must agree except for d_0
列を独自の配列に分割してから、一度に 1 つずつ計算する必要がありますか? numpy で各列の回帰を個別に計算するために使用する必要があるパラメーターまたは行列演算はありますか?
もっとシンプルにしたほうがいいような?いろいろ調べましたが、似たようなことをしている人は見当たりません。