多重線形回帰モデルに多項式の項を追加する必要がある場合とそうでない場合について、少し混乱しています。データの曲率をキャプチャするために多項式が使用されていることは知っていますが、常に次のような形になっているようです。
と間に線形関係があるが、と間に非線形関係があることがわかっている場合はどうでしょうか。次の形式でモデルを使用できますか?
私の質問は、項と項を削除することは有効ですか、それとも多項式回帰モデルの一般的な形式に従う必要があるのでしょうか。
多重線形回帰モデルに多項式の項を追加する必要がある場合とそうでない場合について、少し混乱しています。データの曲率をキャプチャするために多項式が使用されていることは知っていますが、常に次のような形になっているようです。
と間に線形関係があるが、と間に非線形関係があることがわかっている場合はどうでしょうか。次の形式でモデルを使用できますか?
私の質問は、項と項を削除することは有効ですか、それとも多項式回帰モデルの一般的な形式に従う必要があるのでしょうか。
回答:
@mktの優れた回答に加えて、直感を育てることができるように、具体的な例を示してみようと思いました。
例のデータを生成する
この例では、次のようにRを使用していくつかのデータを生成しました。
set.seed(124)
n <- 200
x1 <- rnorm(n, mean=0, sd=0.2)
x2 <- rnorm(n, mean=0, sd=0.5)
eps <- rnorm(n, mean=0, sd=1)
y = 1 + 10*x1 + 0.4*x2 + 0.8*x2^2 + eps
上記からわかるように、データはモデルから。ここで、は、を意味し、分散は不明です。さらに、、、、、です。
コプロットを介して生成されたデータを視覚化する
結果変数yと予測子変数x1およびx2のシミュレーションデータが与えられると、coplotsを使用してこれらのデータを視覚化できます。
library(lattice)
coplot(y ~ x1 | x2,
number = 4, rows = 1,
panel = panel.smooth)
coplot(y ~ x2 | x1,
number = 4, rows = 1,
panel = panel.smooth)
結果のコプロットを以下に示します。
最初のコプロットは、x2が観測値の4つの異なる範囲(重複している)に属する場合のyとx1の散布図を示し、データから形状が推定される滑らかな、おそらく非線形フィットでこれらの各散布図を拡張します。
2番目のコプロットは、x1が観測値の4つの異なる範囲(重複している)に属している場合のyとx2の散布図を示し、これらの各散布図を滑らかに近似して拡張します。
最初のプロットは、x2を制御する場合、x1がyに対して線形効果を持っていると想定することが合理的であり、この効果がx2に依存しないことを示唆しています。
2番目のコプロットは、x1を制御する場合、x2がyに対して2次効果を持っていると想定することが合理的であり、この効果はx1に依存しないことを示唆しています。
正しく指定されたモデルに合わせる
コプロットは、以下のモデルをデータに適合させることを提案します。これにより、x1の線形効果とx2の2次効果が可能になります。
m <- lm(y ~ x1 + x2 + I(x2^2))
正しく指定されたモデルのコンポーネントプラス残差プロットの作成
正しく指定されたモデルがデータに適合したら、モデルに含まれる各予測子のコンポーネントと残差のプロットを調べることができます。
library(car)
crPlots(m)
これらの成分と残差のプロットを以下に示します。これらは、非線形性などの形跡が表示されないため、モデルが正しく指定されたことを示唆しています。実際、これらの各プロットでは、対応する予測子と、モデルにおけるその予測子の非線形効果を示唆するマゼンタ色の実線。
正しく指定されていないモデルを近似する
悪魔の支持者を演じて、2次項I(x2 ^ 2)を省略したという意味で、lm()モデルが実際に誤って指定された(つまり、誤って指定された)としましょう。
m.mis <- lm(y ~ x1 + x2)
誤って指定されたモデルのコンポーネントプラス残差プロットの作成
我々が構築した場合のコンポーネントに加えて残留プロット misspecifiedモデルのために、我々はすぐにmisspecifiedモデルでX2の効果の非線形性の提案を参照してくださいになります。
crPlots(m.mis)
言い換えると、以下に示すように、誤って指定されたモデルはx2の2次効果をキャプチャできず、この影響は、誤って指定されたモデルの予測子x2に対応するコンポーネントと残差のプロットに現れます。
モデルm.misでのx2の効果の誤った仕様は、予測子x1およびx2のそれぞれに対してこのモデルに関連付けられた残差のプロットを調べると明らかになります。
par(mfrow=c(1,2))
plot(residuals(m.mis) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m.mis) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
以下に示すように、m.misとx2に関連する残差のプロットは、明確な2次パターンを示し、モデルm.misがこの体系的なパターンをキャプチャできなかったことを示しています。
誤って指定されたモデルを補強する
モデルm.misを正しく指定するには、項I(x2 ^ 2)も含まれるようにモデルを拡張する必要があります。
m <- lm(y ~ x1 + x2 + I(x2^2))
これは、この正しく指定されたモデルの残差対x1およびx2のプロットです。
par(mfrow=c(1,2))
plot(residuals(m) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
誤って指定されたモデルm.misの残差対x2のプロットで以前に見られた2次パターンが、正しく指定されたモデルmの残差対x2のプロットから消えていることに注意してください。
ここに示すx1とx2に対する残差のすべてのプロットの縦軸には、「残差」というラベルを付ける必要があります。何らかの理由で、R Studioはそのラベルを削除します。
はい、あなたが提案していることは問題ありません。1つの予測子への応答を線形として扱い、別の予測子を多項式として扱うことは、モデルでは完全に有効です。予測子間の相互作用がないと仮定することも完全に問題ありません。
多項式の項を追加する場合は、直交多項式を使用するように注意する必要があります。
どうして?それらがなければ、共線性に似た問題があります。特定の領域では、はに非常によく似ており、放物線は直線を当てはめるのにまともな仕事をします。
観察する:
これらは多項式です。
0と1.5の間で、3つの曲線すべてが単調に増加し、それらは互いに異なる曲線を描きますが、xがyと正の相関がある場合、同様の品質のフィットを提供します。コードで3つすべてを使用する
y ~ x + x^2 + x^3
基本的に、データをフィットさせるために冗長な形状を使用しています。
直交多項式は、フィッティング時に基本的にゆらぎの余地を与え、各多項式は基本的に他の多項式から独立しています。
Rのpoly()関数によって生成された次数1、2、3の3つの多項式。
おそらく、それらを多項式として明示的に考えるのではなく、代わりに「トレンドコンポーネント」または何かと考えます。
は、「多いほど良い」を表します(または、係数が負の場合はさらに悪い)。音楽の品質とカウベルの回帰を行っている場合は、このコンポーネントが必要になります。
は、一種のゴルディロックスゾーンを表します。食品の味と塩の量の関係で回帰を行っている場合、この成分が顕著になります。
(私は考えることができる唯一の例があり、おそらく自分自身で支配的な要素になることはほとんどありません、彼らは知っていると思うどのくらいの対どのように多くの人々ノウ)が、その存在はの形状と対称影響を与えると項。
直交多項式には多くの難しい計算が含まれていますが、ありがたいことに2つのことを知っていれば十分です。
poly
しようとするpredict
と、予測サンプルの多項式が再フィットされるため、注意してください。つまり、私たちはジャンクになります。
すべての変数を使用する必要があると言うルールはありません。収入を予測しようとしていて、特徴変数がSSN、就学年数、および年齢であり、SSNと収入の間に何らかの相関があると予想されるためにSSNを削除したい場合は、判断を下す必要があります。理論的には含めることができたが、含めなかった他の変数があるため、モデルは無効ではありません。含める多項式の項を決定することは、特徴選択に関する多くの決定の1つにすぎません。
多項式モデルは、多くの場合、すべての項が含まれているところから始まりますが、それは、モデルにどれだけ追加しているかについてすべてを評価できるようにするためです。特定の項がほとんど適合しすぎているように見える場合は、モデルの後の反復で削除できます。なげなわ回帰などの正則化は、あまり有用でない変数を自動的に削除する可能性があります。一般に、変数が多すぎるモデルを開始し、モデルが依存すべきであると考える変数のみから開始して、おそらく関係を逃すよりも、変数を最も有用なものに絞り込んだほうがよい期待していなかった。