9

複数の予測変数を使用して、複数の従属変数を予測したいと考えています。私の理解が正しければ、原則として、それぞれが 1 つの従属変数を予測する一連の線形回帰モデルを作成できますが、従属変数が相関している場合は、多変量回帰を使用する方が理にかなっています。後者をやりたいのですが、方法がわかりません。

これまでのところ、これを具体的にサポートする Python パッケージは見つかりませんでした。私はscikit-learnを試しました.線形回帰モデルの例は、yが配列(観測ごとに1つの従属変数)の場合のみを示していますが、複数のyを処理できるようです. しかし、この「多変量」メソッドの出力を、各従属変数を手動でループし、それらを互いに独立して予測して得た結果と比較すると、結果はまったく同じです。一部の従属変数 (>0.5) の間に強い相関関係があるため、これは当てはまらないと思います。

コードは次のようになりyます。n x 1行列またはn x m行列とxnewxさまざまなサイズの行列 ( の行数x == n) を使用します。

ols = linear_model.LinearRegression()
ols.fit(x,y)
ols.predict(newx)

この関数は実際に多変量回帰を実行しますか?

4

2 に答える 2

6

これは数学/統計に関する質問ですが、とにかくここで答えようとします。

あなたが見る結果は絶対に期待されています。このような線形モデルでは、従属変数間の相関関係が考慮されません。

従属変数が 1 つしかない場合、モデルは基本的に重みベクトルで構成されます。

w_0  w_1  ...  w_n,

n機能の数です。m従属変数を使用すると、代わりに重み行列が得られます

w_10  w_11  ...  w_1n
w_20  w_21  ...  w_2n
....             ....
w_m0  w_m1  ...  w_mn

しかし、異なる出力変数 (1、...、m) の重みは互いに完全に独立しており、二乗誤差の総和は各出力変数の二乗誤差の総和に分割されるため、二乗総損失を最小化すると、次のようになります。出力変数ごとに 1 つの単変量線形モデルを設定し、それぞれの損失の 2 乗を個別に最小化するのとまったく同じです。

于 2015-05-26T18:52:26.243 に答える