Bagaimana cara memasukkan istilah linear dan kuadratik ketika juga menyertakan interaksi dengan variabel-variabel itu?

9

Ketika menambahkan prediktor numerik dengan prediktor kategoris dan interaksinya, biasanya dianggap perlu untuk memusatkan variabel pada 0 sebelumnya. Alasannya adalah bahwa efek utama sulit ditafsirkan karena mereka dievaluasi dengan prediktor numerik pada 0.

Pertanyaan saya sekarang adalah bagaimana cara memusatkan jika seseorang tidak hanya memasukkan variabel numerik asli (sebagai istilah linier) tetapi juga istilah kuadrat dari variabel ini? Di sini, dua pendekatan berbeda diperlukan:

  1. Memusatkan kedua variabel pada rata-rata individualnya. Ini memiliki kelemahan yang tidak menguntungkan bahwa 0 sekarang berada pada posisi yang berbeda untuk kedua variabel mempertimbangkan variabel asli.
  2. Memusatkan kedua variabel pada rata-rata variabel asli (yaitu, mengurangkan rata-rata dari variabel asli untuk istilah linear dan mengurangkan kuadrat rata-rata variabel asli dari istilah kuadratik). Dengan pendekatan ini, 0 akan mewakili nilai yang sama dari variabel asli, tetapi variabel kuadrat tidak akan terpusat pada 0 (yaitu, rata-rata variabel tidak akan 0).

Saya pikir pendekatan 2 tampaknya masuk akal mengingat alasan pemusatan. Namun, saya tidak dapat menemukan apa pun tentang itu (juga tidak dalam pertanyaan terkait: a dan b ).

Atau apakah itu umumnya ide yang buruk untuk memasukkan istilah linear dan kuadratik dan interaksinya dengan variabel lain dalam suatu model?

Henrik
sumber
Masalah-masalah ini terdengar seperti masalah gaya. Itu bukan untuk mengatakan bahwa pertanyaan-pertanyaan itu tidak penting, tetapi bahwa jawabannya mungkin lebih tergantung pada tujuan Anda yang tepat untuk analisis. Saya tidak melihat bagaimana salah satu pendekatan yang Anda sebutkan akan "umumnya buruk". Mungkin akan lebih mudah untuk mendapatkan jawaban yang Anda cari dengan sedikit lebih banyak latar belakang pada masalah ilmiah, dan khususnya pernyataan interpretatif seperti apa yang ingin Anda dapatkan dari model.
zkurtz
Saya sarankan menggunakan polinomial ortogonal.
Glen_b -Reinstate Monica
@Glen_b Bisakah Anda memberikan detail lebih lanjut?
Henrik
Detail disertakan. Maaf butuh beberapa hari.
Glen_b -Reinstate Monica

Jawaban:

8

Ketika memasukkan polinomial dan interaksi di antara mereka, multikolinieritas dapat menjadi masalah besar; satu pendekatan adalah melihat polinomial ortogonal.

Secara umum, polinomial ortogonal adalah keluarga polinomial yang ortogonal berkenaan dengan beberapa produk dalam.

Jadi misalnya dalam kasus polinomial di beberapa daerah dengan fungsi bobot w, produk dalam adalah Sebuahbw(x)halm(x)haln(x)dx - orthogonality membuat produk dalam itu 0 kecuali kalau m=n.

Contoh paling sederhana untuk polinomial kontinu adalah polinomial Legendre, yang memiliki fungsi bobot konstan selama interval nyata hingga (biasanya lebih [-1,1]).

Dalam kasus kami, ruang (pengamatan itu sendiri) terpisah, dan fungsi berat kami juga konstan (biasanya), sehingga polinomial ortogonal adalah sejenis diskrit yang setara dengan polinomial Legendre. Dengan konstanta yang termasuk dalam prediksi kami, produk dalam adalah sederhanahalm(x)Thaln(x)=sayahalm(xsaya)haln(xsaya).

Sebagai contoh, pertimbangkan x=1,2,3,4,5

Mulai dengan kolom konstan, hal0(x)=x0=1. Polinomial selanjutnya adalah bentukSebuahx-b, tapi kami tidak khawatir tentang skala saat ini, jadi hal1(x)=x-x¯=x-3. Polinomial berikutnya akan berbentukSebuahx2+bx+c; ternyata ituhal2(x)=(x-3)2-2=x2-6x+7 ortogonal dengan dua sebelumnya:

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

Seringkali basis juga dinormalisasi (menghasilkan keluarga ortonormal) - yaitu, jumlah kuadrat dari setiap istilah ditetapkan menjadi beberapa konstanta (katakanlah, untuk n, atau untuk n-1, sehingga simpangan baku adalah 1, atau mungkin paling sering, untuk 1).

Cara-cara untuk melakukan orthogonalisasi seperangkat alat prediksi polinomial termasuk ortogonisasi Gram-Schmidt, dan dekomposisi Cholesky, meskipun ada banyak pendekatan lain.


Beberapa keuntungan dari polinomial ortogonal:

1) multikolinieritas bukan masalah - prediktor ini semuanya ortogonal.

2) Koefisien pesanan rendah tidak berubah saat Anda menambahkan istilah . Jika Anda sesuai gelark polinomial melalui polinomial ortogonal, Anda tahu koefisien kesesuaian semua polinomial orde rendah tanpa pemasangan kembali.


Contoh dalam R ( carsdata, menghentikan jarak terhadap kecepatan): masukkan deskripsi gambar di sini

Di sini kami mempertimbangkan kemungkinan bahwa model kuadrat mungkin cocok:

R menggunakan polyfungsi untuk mengatur prediktor polinomial ortogonal:

> 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

Mereka ortogonal:

> 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

Berikut plot dari polinomial: masukkan deskripsi gambar di sini

Inilah output model linier:

> 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

Berikut ini plot plot kuadrat: masukkan deskripsi gambar di sini

Glen_b -Reinstate Monica
sumber
7

Saya tidak merasa bahwa keterpusatan sepadan dengan masalah, dan keterpusatan membuat interpretasi estimasi parameter lebih kompleks. Jika Anda menggunakan perangkat lunak aljabar matriks modern, collinearity aljabar tidak menjadi masalah. Motivasi awal Anda untuk memusatkan perhatian agar dapat menginterpretasikan efek utama di hadapan interaksi bukanlah yang kuat. Efek utama ketika diperkirakan pada nilai yang dipilih secara otomatis dari faktor yang berinteraksi terus menerus agak sewenang-wenang, dan yang terbaik untuk menganggap ini sebagai masalah estimasi sederhana dengan membandingkan nilai yang diprediksi. Dalam rmspaket R.contrast.rmsfungsi, misalnya, Anda dapat memperoleh kontras kepentingan apa pun yang independen dari pengkodean variabel. Berikut ini adalah contoh dari variabel kategori x1 dengan level "a" "b" "c" dan variabel kontinu x2, dipasang menggunakan spline kubik terbatas dengan 4 knot default. Hubungan yang berbeda antara x2 dan y diperbolehkan untuk x1 yang berbeda. Dua tingkat x1 dibandingkan pada 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

Dengan pendekatan ini, Anda juga dapat dengan mudah memperkirakan kontras pada beberapa nilai faktor yang berinteraksi, misalnya

contrast(f, list(x1='b', x2=10:20), list(x1='c', x2=10:20))
Frank Harrell
sumber