私はいくつかの実世界のデータを使用していますが、回帰モデルは直観に反する結果をもたらしています。通常私は統計を信頼しますが、実際にはこれらのいくつかは真実ではありません。私が見ている主な問題は、実際には、それらが負の相関関係にあるに違いないのに、1つの変数の増加が応答の増加を引き起こしていることです。
各回帰係数に特定の符号を強制する方法はありますか?これを行うRコードも同様にありがたいです。
助けてくれてありがとう!
私はいくつかの実世界のデータを使用していますが、回帰モデルは直観に反する結果をもたらしています。通常私は統計を信頼しますが、実際にはこれらのいくつかは真実ではありません。私が見ている主な問題は、実際には、それらが負の相関関係にあるに違いないのに、1つの変数の増加が応答の増加を引き起こしていることです。
各回帰係数に特定の符号を強制する方法はありますか?これを行うRコードも同様にありがたいです。
助けてくれてありがとう!
回答:
周辺相関と部分相関(他の変数を条件とする相関)の違いに注意してください。彼らは合法的に異なる兆候であるかもしれません。
つまり、は実際には負になる可能性がありますが、重回帰の回帰係数は正です。これら2つの点で必ずしも矛盾はありません。シンプソンのパラドックスも参照してください。これは多少関連があります(特に図)。一般に、回帰係数は、周辺相関についての議論に基づいて、単に1つの符号でなければならないことを推測することはできません。
はい、回帰係数をまたは * に制限することは確かに可能です。これにはいくつかの方法があります。これらの一部は、Rで、たとえばを介して十分に簡単に実行できます。多くのRパッケージと他の可能なアプローチに言及しているこの質問への回答も参照してください。≤ 0nnls
ただし、これらの多くは簡単に実装できるという理由だけで1.のポイントを急いで無視しないように注意してください。
*(対応する変数を否定することにより、非負を実行して非正を実行するプログラムを使用できます)
そのような方法があるかもしれませんが、あなたの状況ではそれはお勧めできません。
不可能である結果がある場合:
1)データに問題がある2)「不可能」の定義に問題がある、または3)間違った方法を使用している
まず、データを確認します。次に、コードを確認します。(または、他の人に確認してもらいます)。両方に問題がなければ、おそらく予期しないことが起こっています。
幸いにも、あなたは単純な「不可能性」を持っています-あなたは2つの変数が正に相関することができないと言います。だから、散布図を作って、より滑らかにして見てください。単一の外れ値がこれを引き起こす可能性があります。またはそれは非線形の関係かもしれません。または、他の何か。
しかし、運が良ければ、何か新しいものを見つけました。私の好きな教授はよく「驚かないと何も学んでいない」と言っていました。
特定の質問に答えるために、係数に負でない制約を使用して最小二乗回帰を行うnnlsパッケージを試すことができます。これを使用して、適切な予測子の符号を変更することにより、必要な符号を取得できます。
ちなみに、これは、正の相関と負の回帰係数を持つことがどのように可能であるかを示すデータセットを作成する非常に簡単な方法です。
> n <- rnorm(200)
> x <- rnorm(200)
> d <- data.frame(x1 = x+n, x2= 2*x+n, y=x)
> cor(d)
x1 x2 y
x1 1.0000000 0.9474537 0.7260542
x2 0.9474537 1.0000000 0.9078732
y 0.7260542 0.9078732 1.0000000
> plot(d)
> lm(y~x1+x2-1, d)
Call:
lm(formula = y ~ x1 + x2 - 1, data = d)
Coefficients:
x1 x2
-1 1