Kapan mengubah variabel prediktor ketika melakukan regresi berganda?

10

Saat ini saya mengambil kelas regresi linier terapan pertama saya di tingkat pascasarjana, dan saya berjuang dengan transformasi variabel prediktor dalam regresi linier berganda. Teks yang saya gunakan, Kutner dkk "Model Statistik Terapan Linier" tampaknya tidak mencakup pertanyaan yang saya miliki. (Selain menyarankan bahwa ada metode Box-Cox untuk mengubah banyak prediktor).

Ketika dihadapkan dengan variabel respons dan beberapa variabel prediktor, kondisi apa yang berusaha dicapai oleh masing-masing variabel prediktor? Saya mengerti bahwa kita pada akhirnya mencari kekonstanan varians kesalahan dan kesalahan yang terdistribusi normal (setidaknya dalam teknik yang telah saya ajarkan sejauh ini). Saya telah banyak latihan kembali, di mana solusinya adalah, sebagai contoh y ~ x1 + (1/x2) + log(x3), di mana satu atau lebih prediktor diubah.

Saya memahami alasan di bawah regresi linier sederhana, karena mudah untuk melihat y ~ x1 dan diagnostik terkait (plot qq residual, residual vs y, residual vs x, dll) dan tes untuk melihat apakah y ~ log ( x1) lebih sesuai dengan asumsi kami.

Apakah ada tempat yang baik untuk mulai memahami kapan harus mengubah prediktor di hadapan banyak prediktor?

Terima kasih sebelumnya. Mat

Mat
sumber

Jawaban:

3

Saya mengambil pertanyaan Anda untuk menjadi: bagaimana Anda mendeteksi ketika kondisi yang membuat transformasi yang ada tepat, daripada apa kondisi logis yang . Selalu menyenangkan untuk melakukan analisis data dengan eksplorasi, terutama eksplorasi data grafis. (Berbagai tes dapat dilakukan, tetapi saya akan fokus pada EDA grafis di sini.)

Plot kepadatan kernel lebih baik daripada histogram untuk ikhtisar awal dari distribusi univariat masing-masing variabel. Dengan beberapa variabel, matriks sebar dapat berguna. Lowess juga selalu disarankan di awal. Ini akan memberi Anda pandangan cepat dan kotor pada apakah hubungan kira-kira linier. Paket mobil John Fox bermanfaat menggabungkan ini:

library(car)
scatterplot.matrix(data)

Pastikan Anda memiliki variabel sebagai kolom. Jika Anda memiliki banyak variabel, masing-masing plot dapat berukuran kecil. Maksimalkan jendela plot dan plot sebar harus cukup besar untuk memilih plot yang ingin Anda periksa satu per satu, dan kemudian buat satu plot. Misalnya,

windows()
plot(density(X[,3]))
rug(x[,3])
windows()
plot(x[,3], y)
lines(lowess(y~X[,3]))

Setelah memasang model regresi berganda, Anda harus tetap memplot dan memeriksa data Anda, seperti halnya regresi linier sederhana. Plot QQ untuk residu sama pentingnya, dan Anda bisa melakukan sebar scatterplot residu Anda terhadap prediktor Anda, mengikuti prosedur yang sama seperti sebelumnya.

windows()
qq.plot(model$residuals)
windows()
scatterplot.matrix(cbind(model$residuals,X))

Jika ada yang terlihat mencurigakan, plot secara individual dan tambahkan abline(h=0), sebagai panduan visual. Jika Anda memiliki interaksi, Anda dapat membuat variabel X [, 1] * X [, 2], dan memeriksa residu terhadap hal itu. Demikian juga, Anda dapat membuat sebaran residual vs X [, 3] ^ 2, dll. Jenis plot lain selain residual vs x yang Anda sukai dapat dilakukan dengan cara yang sama. Ingatlah bahwa ini semua mengabaikan dimensi x lain yang tidak diplot. Jika data Anda dikelompokkan (yaitu dari percobaan), Anda dapat membuat plot parsial daripada / di samping plot marginal.

Semoga itu bisa membantu.

gung - Pasang kembali Monica
sumber
2
Saya akan mendorong pendekatan yang lebih langsung: menggunakan regresi splines untuk memodelkan efek prediktor sehingga (1) tidak menganggap linearitas dan (2) memperkirakan semua transformasi secara bersamaan. Ini mirip dengan regresi kuadrat - menambahkan istilah kuadrat untuk semua prediktor. Dengan splines kubik terbatas, misalnya, satu menambahkan satu atau lebih fungsi basis nonlinear ke model untuk setiap prediktor yang tidak diketahui beroperasi secara linear.
Frank Harrell
@ Terus terang, saya sering suka splines kubik terbatas. Satu-satunya negatif adalah salah satu interpretasi, yang sedikit rumit dan sering mematikan klien saya. Menambahkan istilah polinom (setelah pemusatan) tampaknya lebih dapat ditafsirkan
Peter Flom - Reinstate Monica
Terima kasih atas masukannya, saya sangat menghargainya. Saya pikir Anda saat ini memberi saya terlalu banyak kredit. Pertanyaan saya sebenarnya berpusat di sekitar apa yang harus dicari dalam prediksi individu untuk mengetahui kapan / jika suatu transformasi berlaku. Misalnya, jika saya memiliki model aditif ketat, dengan 3 prediktor, bagaimana saya menentukan transformasi yang tepat? Dalam beberapa kasus prediktor, apakah kita pada umumnya berjuang untuk prinsip yang sama yang kita cari dalam regresi linier sederhana? (yaitu residu yang menguntungkan vs plot yang diprediksi dan qqplot residu).
Matt
1
Peter-regresi splines tidak jauh lebih kompleks daripada kuadratika. Siapa yang tahu bagaimana menafsirkan koefisien usia ketika usia ^ 2 ada dalam model? Dan saya tidak melihat di mana pemusatan membantu. Saya mengartikan spline cocok dengan grafik, yang disukai kolaborator saya. Matt transformasi hampir selalu dibutuhkan. Ini hanya masalah kecukupan ukuran sampel untuk memperkirakan parameter yang cukup agar sesuai dengan efek nonlinier. Regresi splines secara langsung memperkirakan transformasi, dan mengarah pada interval kepercayaan yang sesuai yang dikenakan sanksi untuk "tampilan data". Residual melibatkan pendekatan tidak langsung.
Frank Harrell
Maaf, masih memahami posting di sini. Tolong maafkan. Untuk menguraikan komentar terakhir saya: Contoh baru-baru ini saya lalui dalam sebuah teks memiliki model yang dihasilkan y ~ x1 + log (x2), dan satu-satunya catatan tentang transformasi adalah "jelas bahwa x2 sangat cocok untuk transformasi logaritmik . " Saya mencoba untuk meningkatkan perasaan saya ketika transformasi berlaku. Apakah cukup dengan hanya melihat plot y ~ x_i dan melanjutkan seperti yang akan kita lakukan dalam kasus prediktor tunggal? Apa lagi yang harus saya pertimbangkan?
Matt