3

matlabのリッジ回帰について疑問があります。彼らはhttp://www.mathworks.com/help/stats/ridge.htmlで言及しており、リッジ回帰は実際には中心を意味し、予測子の std を 1 に等しくします。しかし、そうではないことがわかりました。例えば

私のxを

 1     1     2
 1     3     5
 1     9    12
 1    12    50

私のyをさせてください

1
2
3
4

xs を 0 平均および単位分散に正規化することはありません。何が起こっているのか説明はありますか?つまり、リッジはデータの正規化、つまり x から 0 の平均と単位分散を行い、係数を計算する必要があります。Ridge(y,x,0,0) が R=inv(x'*x)*x'y の結果を返すことを期待していました。ここで、R は x と y を正規化します

4

1 に答える 1

4

出力は同じでなければなりません。リッジ回帰は計算を数値的に安定させるだけです (多重共線性の影響を受けにくくなります)。

==更新==

今、私はあなたが尋ねることをよりよく理解しています:)ドキュメントには次のように書かれています:

b = ridge(y,X,k,scaled) は {0,1} 値のフラグ scaled を使用して、b の係数推定値が元のデータのスケールに復元されるかどうかを判断します。ridge(y,X,k,0) は、この追加の変換を実行します。

3 番目と 4 番目のパラメーターの両方を 0 に設定しました。これはリッジ パラメーターがゼロであることを意味し、結果はスケーリングされないため、得られるものと同じになるはずですinv(x'*x)*x'y(これがリッジ回帰の結果です)。 ridge パラメーターkが 0 に設定されている場合、数式は になります)。

于 2013-08-23T20:57:58.570 に答える