Saya ingin mengembalikan variabel ke x , x 2 , ... , x 5 . Haruskah saya melakukan ini menggunakan polinomial mentah atau ortogonal? Saya melihat pertanyaan di situs yang berurusan dengan ini, tetapi saya tidak benar-benar mengerti apa perbedaan antara menggunakannya.
Mengapa saya tidak bisa hanya melakukan regresi "normal" untuk mendapatkan koefisien dari y = ∑ 5 i = 0 β i x i (bersama dengan nilai-p dan semua hal bagus lainnya) dan alih-alih harus khawatir apakah menggunakan polinomial mentah atau ortogonal? Pilihan ini bagi saya tampaknya berada di luar ruang lingkup apa yang ingin saya lakukan.
Di buku stat saya sedang membaca (ISLR oleh Tibshirani et al) hal-hal ini tidak disebutkan. Sebenarnya, mereka diremehkan.
Alasannya adalah, AFAIK, bahwa dalam lm()
fungsi dalam R, menggunakan y ~ poly(x, 2)
jumlah untuk menggunakan polinomial ortogonal dan menggunakan y ~ x + I(x^2)
jumlah untuk menggunakan yang mentah. Tetapi pada halaman 116 penulis mengatakan bahwa kami menggunakan opsi pertama karena yang terakhir adalah "rumit" yang tidak meninggalkan indikasi bahwa perintah ini sebenarnya untuk hal-hal yang sama sekali berbeda (dan sebagai akibatnya memiliki keluaran yang berbeda).
(pertanyaan ketiga) Mengapa para penulis ISLR membingungkan pembaca mereka seperti itu?
sumber
poly
ada hubungannya dengan polinomial ortogonal dan saya (x ^ 2) tidak (walaupun saya tidak tahu detailnya) - tapi tetap saja, mengapa penulis ISLR kemudian merekomendasikan metode yang tidak bekerja ? Tampaknya sangat menyesatkan jika kedua perintah tampaknya melakukan hal yang sama, tetapi hanya satu yang benar-benar baik-baik saja.poly
dan menghabiskan beberapa saat dengan masalah ini, tapi saya tidak tahu mengapa poli (x, 2) dan x + I (x ^ 2) membuat perbedaan? Bisakah Anda mencerahkan saya di sini di komentar, jika pertanyaannya offtopic?R
teknis kecil , yang saya tidak mengerti, tetapi sekarang tampaknya menjadi masalah stat penuh yang menghambat saya melakukan pengkodean regresi yang seharusnya tidak boleh yang sulit dikodekan.Jawaban:
Saya percaya jawabannya kurang tentang stabilitas numerik (meskipun itu berperan) dan lebih lanjut tentang mengurangi korelasi.
Pada dasarnya - masalah ini bermuara pada fakta bahwa ketika kita mundur melawan sekelompok polinomial tingkat tinggi, kovariat yang kita kemundurkan menjadi sangat berkorelasi. Contoh kode di bawah ini:
Ini sangat penting. Ketika kovariat menjadi lebih berkorelasi, kemampuan kita untuk menentukan mana yang penting (dan seberapa besar efeknya) terkikis dengan cepat. Ini biasanya disebut sebagai masalah multikolinieritas. Pada batasnya, jika kami memiliki dua variabel yang sepenuhnya berkorelasi, ketika kami regresi mereka terhadap sesuatu, tidak mungkin untuk membedakan antara keduanya - Anda dapat menganggap ini sebagai versi ekstrim dari masalah, tetapi masalah ini mempengaruhi perkiraan kami untuk tingkat korelasi yang lebih rendah juga. Jadi dalam arti nyata - bahkan jika ketidakstabilan numerik tidak menjadi masalah - korelasi dari polinomial berorde lebih tinggi menyebabkan kerusakan yang luar biasa pada rutin inferensi kita. Ini akan bermanifestasi sebagai kesalahan standar yang lebih besar (dan karenanya t-statistik lebih kecil) yang seharusnya Anda lihat (lihat contoh regresi di bawah).
Jika Anda menjalankan kode ini, interpretasi adalah sentuhan yang sulit karena koefisien semua berubah dan hal-hal sulit untuk dibandingkan. Melihat T-statistik, kita dapat melihat bahwa kemampuan untuk menentukan koefisien JAUH lebih besar dengan polinomial ortogonal. Untuk 3 koefisien yang relevan, saya mendapatkan t-statistik (560,21,449) untuk model ortogonal, dan hanya (28, -38,121) untuk model polinomial mentah. Ini adalah perbedaan besar untuk model sederhana dengan hanya beberapa istilah polinomial urutan relatif rendah yang penting.
Itu tidak berarti bahwa ini datang tanpa biaya. Ada dua biaya utama yang harus diingat. 1) kita kehilangan beberapa interpretabilitas dengan polinomial ortogonal. Kita mungkin mengerti apa
x**3
artinya koefisien , tetapi menafsirkan koefisien padax**3-3x
(poli hermit ketiga - belum tentu apa yang akan Anda gunakan) bisa jauh lebih sulit. Kedua - ketika kita mengatakan bahwa ini adalah polinomial adalah ortogonal - yang kita maksudkan adalah ortogonal sehubungan dengan beberapa ukuran jarak. Memilih ukuran jarak yang relevan dengan situasi Anda mungkin sulit. Namun, setelah mengatakan itu, saya percaya bahwapoly
fungsi dirancang untuk memilih sedemikian rupa sehingga ortogonal sehubungan dengan kovarians - yang berguna untuk regresi linier.sumber
raw.mod
dalamnya memperkirakan kemiringan kurva pada x = 0, diorthogonal.mod
dalamnya memperkirakan kemiringan marjinal (yaitu, identik dengan dilm(y ~ poly(x,1))
mana istilah orde tinggi dihilangkan). Tidak ada alasan bahwa estimasi dari estimasi yang sangat berbeda ini harus memiliki kesalahan standar yang sebanding. Orang dapat dengan mudah membangun contoh tandingan di manaraw.mod
memiliki statistik t yang jauh lebih tinggiMenggunakan polinomial mentah akan menimbulkan masalah karena kita akan memiliki jumlah besar. Berikut ini adalah bukti kecil: kami membandingkan angka kondisi matriks dengan polinomial mentah dan ortogonal.
Anda juga dapat memeriksa jawaban saya di sini sebagai contoh.
Mengapa ada koefisien besar untuk polinomial tingkat tinggi
sumber
R
output dariprint(0.4, digits=20)
is0.40000000000000002
.Saya merasa beberapa dari jawaban ini benar-benar tidak penting. Jawaban Haitao membahas masalah komputasi dengan pemasangan polinomial mentah, tetapi jelas bahwa OP bertanya tentang perbedaan statistik antara kedua pendekatan. Artinya, jika kita memiliki komputer yang sempurna yang dapat mewakili semua nilai dengan tepat, mengapa kita lebih memilih satu pendekatan daripada yang lain?
Dibuat pada 2019-10-25 oleh paket reprex (v0.3.0)
Efek marginal
Petal.Width
pada 0 dari fit ortogonal dan kesalahan standarnya persis sama dengan yang dari fit polinomial mentah. Menggunakan polinomial ortogonal tidak meningkatkan ketepatan estimasi jumlah yang sama antara kedua model.Dibuat pada 2019-10-25 oleh paket reprex (v0.3.0)
Sekarang, apakah Anda ingin manfaat penafsiran ini daripada manfaat antarpribadi karena benar-benar dapat memahami koefisien model, maka Anda harus menggunakan polinomial ortogonal. Jika Anda lebih suka melihat koefisien dan tahu persis apa artinya (walaupun saya ragu satu biasanya), maka Anda harus menggunakan polinomial mentah. Jika Anda tidak peduli (yaitu, Anda hanya ingin mengontrol untuk mengacaukan atau menghasilkan nilai yang diprediksi), maka itu benar-benar tidak masalah; kedua bentuk membawa informasi yang sama sehubungan dengan tujuan-tujuan tersebut. Saya juga berpendapat bahwa polinomial ortogonal harus lebih disukai dalam regularisasi (misalnya, laso), karena menghapus istilah orde tinggi tidak mempengaruhi koefisien dari syarat orde rendah, yang tidak benar dengan polinomial mentah,
sumber
stats::
dalam panggilan kepoly()
dalamlm()
untukmargins
mengenalinya (yang bodoh). Saya ingin memfokuskan argumen saya pada estimasi titik dan kesalahan standar, dan saya tahu ada banyak informasi asing dan mengganggu yang disajikan, tetapi saya berharap teks ini menggambarkan poin saya.stats::poly()
. Kesalahan mengatakan'degree' must be less than number of unique points
- yang tidak banyak membantu saya. Namun demikian,margin()
mendukung pernyataan yang dapat dibuktikan sehingga tidak penting.Saya menguatkan respons luar biasa dari @ user5957401 dan menambahkan komentar tentang interpolasi, ekstrapolasi, dan pelaporan.
Bahkan dalam domain nilai parameter stabil, koefisien / parameter yang dimodelkan oleh polinomial ortogonal akan memiliki kesalahan standar yang jauh lebih kecil daripada koefisien / parameter yang dimodelkan oleh parameter mentah. Pada dasarnya, polinomial ortogonal adalah set bebas deskriptor nol-kovarian. Itu PCA gratis!
Satu-satunya kelemahan potensial adalah harus menjelaskan hal ini kepada seseorang yang tidak memahami keutamaan deskriptor nol-kovarian. Koefisien tidak langsung dapat ditafsirkan dalam konteks efek urutan pertama (seperti kecepatan) atau urutan kedua (seperti akselerasi). Ini bisa sangat memberatkan dalam lingkungan bisnis.
Jadi saya akan menjadi "pesanan besar" yang lebih percaya diri melaporkan model ortogonal daripada yang mentah. Dalam praktiknya, saya akan melakukan interpolasi dengan model mana pun, tetapi saya hanya akan memperkirakan dengan model yang ortogonal.
sumber
Saya hanya akan berkomentar untuk menyebutkan ini, tetapi saya tidak memiliki cukup perwakilan, jadi saya akan mencoba untuk memperluas menjadi jawaban. Anda mungkin tertarik untuk melihat bahwa di Lab Bagian 7.8.1 dalam "Pengantar Pembelajaran Statistik" (James et. Al., 2017, mengoreksi cetakan ke-8), mereka mendiskusikan beberapa perbedaan antara menggunakan polinomial ortogonal atau tidak, yang menggunakan
raw=TRUE
atauraw=FALSE
dalampoly()
fungsi. Misalnya, estimasi koefisien akan berubah, tetapi nilai yang dipasang tidak:Buku ini juga membahas bagaimana ketika polinomial ortogonal digunakan, nilai-p yang diperoleh dengan menggunakan
anova()
uji F bersarang (untuk mengeksplorasi sejauh mana polinomial mungkin diperlukan) adalah sama dengan yang diperoleh saat menggunakan uji-t standar, keluaran olehsummary(fit)
. Ini menggambarkan bahwa F-statistik sama dengan kuadrat t-statistik dalam situasi tertentu.sumber