一部の予測子は非常に異なるスケールにあります-線形回帰モデルを近似する前にそれらを変換する必要がありますか?


9

多次元データセットに対して線形回帰を実行したいと思います。次元の大きさに関しては、異なる次元間で違いがあります。たとえば、ディメンション1の値の範囲は通常[0、1]で、ディメンション2の値の範囲は[0、1000]です。

異なる次元のデータ範囲が同じスケールであることを確認するために変換を行う必要がありますか?もしそうなら、この種の変革のためのガイダンスはありますか?

回答:


14

変数のシフト/スケーリングは、応答との相関には影響しません

これが正しい理由を確認するために、と間の相関がであると仮定します。次に、との相関はYXρY(Xa)/b

cov(Y,(Xa)/b)SD((Xa)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1bcov(Y,X)1bSD(X)SD(Y)=ρ

これは、相関の定義と3つの事実から生じます。

  • cov(Y,X+a)=cov(Y,X)+cov(Y,a)=0=cov(Y,X)

  • cov(Y,aX)=acov(Y,X)

  • SD(aX)=aSD(X)

したがって、線形回帰係数は変数間の相関関係に関連しているため、モデルの適合(または適合値など)に関して、変数をシフトまたはスケーリング(たとえば、同じスケールに配置)してもモデルは変わりませんR2。予測子を変換することを選択した場合、出力を解釈するときに注意する必要がある回帰係数のスケールのみが変更されます。

編集:上記のあなたは普通の回帰について話していることを前提としているとのインターセプト。これに関連するいくつかのポイント(@cardinalに感謝):

  • 変数を変換すると切片が変化する可能性があり、@ cardinalがコメントで指摘しているように、モデルから切片を省略した場合、変数をシフトすると係数が変化しますが、正当な理由(たとえば、この回答を参照)。

  • 何らかの方法で係数を正則化している場合(例えば、なげなわ、リッジ回帰)、センタリング/スケーリングはフィットに影響します。たとえば、(リッジ回帰のペナルティ)にペナルティを課している場合、すべての変数が最初に同じスケールになっていない限り、標準化後に同等の近似を回復できません。同じペナルティを回復する定数倍数はありません。βi2

研究者が予測変数を変換したい場合/理由について

一般的な状況(@Paulによる次の回答で説明)は、研究者が予測子を標準化して、すべての係数が同じスケールになるようにすることです。その場合、予測子の数値の大きさが標準化されると、ポイント推定のサイズによって、どの予測子が最大の効果を持つかを大まかに知ることができます。

研究者が非常に大きな変数をスケーリングすることを好むもう1つの理由は、回帰係数が極端に小さなスケールにならないようにするためです。たとえば、国の人口規模が犯罪率に及ぼす影響を確認したい場合(より良い例は考えられません)、係数を元の単位ではなく、数百万単位で測定することができます。ようにます。.00000001


2つの簡単なコメント:投稿の冒頭は正しいですが、切片がない場合はセンタリング有効になるという事実を見逃しています。:)次に、正則化が使用されている場合、センタリングと再スケーリングは重要な効果があります。OPはこれを考慮していない可能性がありますが、それでもおそらく覚えておくと便利な点です。
枢機卿

行列表記に慣れていれば、再スケーリングの不変性も簡単にわかります。(簡単にするために)フルランク、。ここで、をに置き換え、が対角である場合、Xy^=X(XX)1XyXXDD
y~=(XD)((XD)XD)1(XD)y=XD(DXXD)1DXy=X(XX)1Xy=y^.
枢機卿

@cardinal、私はあなたの見積もりが正則化されている場合、センタリング/スケーリングが影響を与える可能性があるという事実に言及することにしました。正則化に慣れていない人を混乱させる可能性がある長い余談が始まると思ったので、最初は抵抗しましたが、比較的少ないスペースで対処できることがわかりました。ありがとう
マクロ

私のコメントのすべてが、回答を更新する必要があることを示唆することを必ずしも意味しているわけではありません。多くの場合、通訳者の興味を引くかもしれない関連するアイデアについていくつかの考えを与えるために、いい答えの下で付随的な発言をします。(+1)
枢機卿

ファンキーな何かが投票カウントで起こっています。もう一度、私は以前のコメントをするときにこれを賛成しました、そしてそれは「取りません」でした。うーん。
枢機卿

2

いわゆる「正規化」は、ほとんどの回帰手法に共通のルーチンです。2つの方法があります。

  1. 各変数を[-1、1]境界にマップします(MatLabのmapminmax。
  2. 各変数から平均値を削除し、その標準偏差(MatLabのmapstd)で除算します。つまり、実際には「正規化」します。真の平均偏差が不明な場合は、サンプル特性を使用してください: または ここで、、、および
    X~ij=Xijμiσi
    X~ij=XijXi¯std(Xi)
    E[Xi]=μE[Xi2E[Xi]2]=σ2Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

線形回帰は変数の範囲に非常に敏感であるため、依存関係に関する事前の知識がなく、すべての変数が相対的に重要であると予想される場合は、通常、すべての変数を正規化することをお勧めします。

同じことが応答変数にも当てはまりますが、応答変数にはそれほど重要ではありません。

なぜ正規化または標準化を行うのですか?ほとんどの場合、モデル内のさまざまな変数の相対的な影響を判断するためです。これは、すべての変数が同じ単位内にある場合に達成できます。

お役に立てれば!


線形回帰は変数の範囲に非常に敏感であるとはどういう意味ですか?いずれについてx1,x2,y:これら二つのコマンドsummary(lm(y~x1+x2))$r.sqsummary(lm(y~scale(x1)+scale(x2)))$r.sq-同等のフィット感を示す、同じ値を与える-あなたは係数を標準化していない、あなたがないときの値。R2
マクロ

私は公式で完全に正しくありませんでした。私はばかげたことを意味しました。データの線形変換のみを実行する場合、回帰は常に同じです(意味で)。しかし、どの変数が重要で、どれがほとんどノイズが多いかを判断する場合は、スケールが重要です。変数を標準化し、それらの元のスケールを忘れておくと便利です。したがって、回帰は相対的な影響を理解する上で「意味のある」ものです。R2
ポール

明確にしていただきありがとうございます。どの変数が重要で、ほとんどノイズが多いかは、スケールの問題が値によって決定されることが多いため、標準化しても変わりません(もちろん、切片を除く)。私はそれが生の係数推定値のより良い解釈を提供するというあなたの点に同意します。p
マクロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.