それらの変数との相互作用も含めるときに、線形および二次の項を含める方法は?


9

カテゴリカル予測子とそれらの交互作用を持つ数値予測子を追加する場合、通常、事前に変数を0に集中させる必要があると考えられています。推論は、主な効果が0の数値予測子で評価されるため、他の方法では解釈が難しいためです。

私の質問は、元の数値変数(線形項として)だけでなく、この変数の2次項も含める場合、どのように中心に置くかです。ここでは、2つの異なるアプローチが必要です。

  1. 両方の変数をそれぞれの平均値に集中させます。これには、元の変数を考慮して、両方の変数の0が異なる位置にあるという不幸な欠点があります。
  2. 両方の変数を元の変数の平均に合わせます(つまり、線形項の元の変数から平均を減算し、2次項から元の変数の平均の2乗を減算します)。このアプローチでは、0は元の変数と同じ値を表しますが、2次変数は0を中心としていません(つまり、変数の平均は0ではありません)。

結局のところセンタリングの理由を考えると、アプローチ2は合理的だと思います。しかし、私はそれについて何も見つけることができません(関連する質問にもありません:aおよびb)。

または、線形項と二次項、およびモデル内の他の変数との相互作用を含めることは、一般的に悪い考えですか?


これらの問題は、文体の懸念のように聞こえます。それは質問が重要でないと言っているわけではありませんが、答えは分析の正確な目標により依存しているかもしれません。あなたの言っているアプローチのどれが「一般的に悪い」のかはわかりません。科学的問題についてのもう少しの背景、具体的には、モデルからどのような解釈ステートメントを引き出せるようにしたいのかについて、探している答えを得る方が簡単かもしれません。
zkurtz 2013年

直交多項式を使用することをお勧めします。
Glen_b-2013

@Glen_b詳細について教えてください。
Henrik

詳細が含まれています。すみません、数日かかりました。
Glen_b-2013

回答:


8

多項式とそれらの間の相互作用を含める場合、多重共線性は大きな問題になる可能性があります。1つのアプローチは、直交多項式を調べることです。

一般に、直交多項式は、いくつかの内積に関して直交する多項式のファミリーです。

wabwバツpメートルバツpバツdバツ0メートル=

[11]

pメートルバツTpバツ=Σpメートルバツpバツ

バツ=1245

p0バツ=バツ0=1aバツbp1バツ=バツバツ¯=バツaバツ2+bバツ+cp2バツ=バツ22=バツ26バツ+7

x         p0  p1  p2   
1          1  -2   2   
2          1  -1  -1
3          1   0  -2
4          1   1  -1
5          1   2   2

11

多項式予測子のセットを直交化する方法には、グラム-シュミット直交化、コレスキー分解などがありますが、他にも多くのアプローチがあります。


直交多項式のいくつかの利点:

1)多重共線性は問題ではありません-これらの予測子はすべて直交しています。

k


Rの例(carsデータ、速度に対する停止距離): ここに画像の説明を入力してください

ここでは、2次モデルが適切である可能性を検討します。

Rは、poly関数を使用して直交多項式予測子を設定します。

> p <- model.matrix(dist~poly(speed,2),cars)
> cbind(head(cars),head(p))
  speed dist (Intercept) poly(speed, 2)1 poly(speed, 2)2
1     4    2           1      -0.3079956      0.41625480
2     4   10           1      -0.3079956      0.41625480
3     7    4           1      -0.2269442      0.16583013
4     7   22           1      -0.2269442      0.16583013
5     8   16           1      -0.1999270      0.09974267
6     9   10           1      -0.1729098      0.04234892

それらは直交しています:

> round(crossprod(p),9)
                (Intercept) poly(speed, 2)1 poly(speed, 2)2
(Intercept)              50               0               0
poly(speed, 2)1           0               1               0
poly(speed, 2)2           0               0               1

これが多項式のプロットです: ここに画像の説明を入力してください

線形モデルの出力は次のとおりです。

> summary(carsp)

Call:
lm(formula = dist ~ poly(speed, 2), data = cars)

Residuals:
    Min      1Q  Median      3Q     Max 
-28.720  -9.184  -3.188   4.628  45.152 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)       42.980      2.146  20.026  < 2e-16 ***
poly(speed, 2)1  145.552     15.176   9.591 1.21e-12 ***
poly(speed, 2)2   22.996     15.176   1.515    0.136    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.18 on 47 degrees of freedom
Multiple R-squared:  0.6673,    Adjusted R-squared:  0.6532 
F-statistic: 47.14 on 2 and 47 DF,  p-value: 5.852e-12

これは二次近似のプロットです: ここに画像の説明を入力してください


7

センタリングは問題を起こす価値があるとは思いません。センタリングを行うと、パラメーター推定の解釈がより複雑になります。最新の行列代数ソフトウェアを使用する場合、代数的共線性は問題になりません。相互作用の存在下で主要な効果を解釈できるようにするための中心化の元々の動機は、強力なものではありません。連続する相互作用因子の自動的に選択された値で推定されるときの主な影響はやや恣意的であり、これを予測値を比較することによる単純な推定問題と考えるのが最善です。R rmsパッケージcontrast.rmsたとえば、変数のコーディングに関係なく、関心のあるコントラストを取得できます。以下は、レベルが「a」、「b」、「c」のカテゴリ変数x1と、4つのデフォルトノットを持つ制限付き3次スプラインを使用して近似された連続変数x2の例です。x2とyの間の異なる関係は、異なるx1に対して許可されます。x1の2つのレベルがx2 = 10で比較されます。

require(rms)
dd <- datadist(x1, x2); options(datadist='dd')
f <- ols(y ~ x1 * rcs(x2,4))
contrast(f, list(x1='b', x2=10), list(x1='c', x2=10))
# Now get all comparisons with c:
contrast(f, list(x1=c('a','b'), x2=10), list(x1='c', x2=10))
# add type ='joint' to get a 2 d.f. test, or conf.type='simultaneous'
# to get simultaneous individual confidence intervals

このアプローチを使用すると、相互作用する因子のいくつかの値でコントラストを簡単に推定することもできます。

contrast(f, list(x1='b', x2=10:20), list(x1='c', x2=10:20))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.