Beberapa prediktor saya berada pada skala yang sangat berbeda - apakah saya perlu mengubahnya sebelum memasang model regresi linier?

9

Saya ingin menjalankan regresi linier pada set data multi-dimensi. Ada perbedaan di antara berbagai dimensi dalam hal besarnya keteraturannya. Misalnya, dimensi 1 umumnya memiliki kisaran nilai [0, 1], dan dimensi 2 memiliki kisaran nilai [0, 1000].

Apakah saya perlu melakukan transformasi apa pun untuk memastikan rentang data untuk dimensi yang berbeda berada dalam skala yang sama? Jika harus, apakah ada panduan untuk transformasi semacam ini?

pertanyaan kecil
sumber

Jawaban:

15

Variabel pemindahan / penskalaan tidak akan memengaruhi korelasinya dengan respons

Untuk melihat mengapa ini benar, anggaplah bahwa korelasi antara dan X adalah ρ . Maka korelasi antara Y dan ( X - a ) / b adalahYXρY(Xa)/b

cov(Y,(Xa)/b)SD((Xa)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1bcov(Y,X)1bSD(X)SD(Y)=ρ

yang mengikuti dari definisi korelasi dan tiga fakta:

  • cov(Y,X+a)=cov(Y,X)+cov(Y,a)=0=cov(Y,X)

  • cov(Y,aX)=acov(Y,X)

  • SD(aX)=aSD(X)

Oleh karena itu, dalam hal kecocokan model (misalnya atau nilai yang dipasang), menggeser atau menskalakan variabel Anda (misalnya menempatkannya pada skala yang sama) tidak akan mengubah modelR2 , karena koefisien regresi linier terkait dengan korelasi antar variabel. Itu hanya akan mengubah skala koefisien regresi Anda , yang harus diingat ketika Anda menafsirkan output jika Anda memilih untuk mengubah prediksi Anda.

Sunting: Di atas diasumsikan bahwa Anda berbicara tentang regresi biasa dengan intersep. Beberapa poin lagi yang terkait dengan ini (terima kasih @ cardinal):

  • Intersep dapat berubah ketika Anda mengubah variabel Anda dan, seperti @ cardinal menunjukkan dalam komentar, koefisien akan berubah ketika Anda menggeser variabel Anda jika Anda menghilangkan intersep dari model, meskipun saya menganggap Anda tidak melakukan itu kecuali Anda memiliki alasan yang bagus (lihat misalnya jawaban ini ).

  • Jika Anda mengatur koefisien Anda dalam beberapa cara (misalnya Lasso, regresi ridge), maka pemusatan / penskalaan akan berdampak pada kecocokan. Misalnya, jika Anda menghukum (hukuman regresi ridge) maka Anda tidak dapat memulihkan setara fit setelah standardisasi kecuali semua variabel berada pada skala yang sama di tempat pertama, yaitu tidak ada beberapa konstanta yang akan memulihkan penalti yang sama.βi2

Mengenai kapan / mengapa seorang peneliti mungkin ingin mengubah prediktor

Keadaan umum (dibahas dalam jawaban berikutnya oleh @ Paul) adalah bahwa peneliti akan menstandarkan prediktor mereka sehingga semua koefisien akan berada pada skala yang sama. Dalam hal ini, ukuran estimasi titik dapat memberikan gambaran kasar tentang prediktor mana yang memiliki efek terbesar setelah besaran numerik prediktor telah distandarisasi.

Alasan lain seorang peneliti mungkin ingin skala variabel yang sangat besar adalah agar koefisien regresi tidak pada skala yang sangat kecil. Misalnya, jika Anda ingin melihat pengaruh ukuran populasi suatu negara terhadap tingkat kejahatan (tidak bisa memikirkan contoh yang lebih baik), Anda mungkin ingin mengukur ukuran populasi dalam jutaan daripada dalam unit aslinya, karena koefisien mungkin sekitar ..00000001

Makro
sumber
Dua komentar singkat: Meskipun awal posting benar, ia melewatkan fakta bahwa pemusatan akan berpengaruh jika intersep tidak ada. :) Kedua, pemusatan dan pengubahan ukuran memiliki efek penting jika regularisasi digunakan. Meskipun OP mungkin tidak mempertimbangkan hal ini, masih mungkin poin yang berguna untuk diingat.
kardinal
Invariansi untuk men - rescaling juga mudah dilihat jika seseorang merasa nyaman dengan notasi matriks. Dengan peringkat penuh (untuk kesederhanaan),Xy^=X(XX)1XyXXDD
y~=(XD)((XD)XD)1(XD)y=XD(DXXD)1DXy=X(XX)1Xy=y^.
@ cardinal, saya telah memutuskan untuk menyebutkan fakta bahwa, jika perkiraan Anda diatur maka pemusatan / penskalaan dapat berdampak. Saya menolak pada awalnya karena saya pikir itu akan memulai penyimpangan panjang yang dapat membingungkan mereka yang tidak terbiasa dengan regularisasi tetapi saya menemukan saya bisa mengatasinya dengan ruang yang relatif sedikit. Terima kasih
Makro
Tidak semua komentar saya dimaksudkan untuk menyarankan bahwa jawabannya harus diperbarui. Sering kali saya hanya ingin menyelipkan komentar tambahan di bawah jawaban yang bagus untuk memberikan beberapa pemikiran pada ide-ide terkait yang mungkin menarik bagi orang yang lewat. (+1)
kardinal
Sesuatu yang funky sedang terjadi dengan penghitungan suara. Sekali lagi, saya membenarkan ini ketika membuat komentar saya sebelumnya dan itu tidak "mengambil". Hmm.
kardinal
2

Yang disebut "normalisasi" adalah rutinitas umum untuk sebagian besar metode regresi. Ada dua cara:

  1. Petakan setiap variabel menjadi batas [-1, 1] (mapminmax di MatLab.
  2. X~ij=Xijμiσi
    X~ij=XijXi¯std(Xi)
    E[Xi]=μE[Xi2E[Xi]2]=σ2Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

Karena regresi linier sangat sensitif terhadap rentang variabel, saya biasanya menyarankan untuk menormalkan semua variabel jika Anda tidak memiliki pengetahuan sebelumnya tentang ketergantungan dan berharap semua variabel menjadi penting secara relativeley.

Hal yang sama berlaku untuk variabel respons, meskipun tidak terlalu penting bagi mereka.

Mengapa melakukan normalisasi atau standartisasi? Sebagian besar untuk menentukan dampak relatif dari berbagai variabel dalam model. Itu bisa dicapai jika semua variabel berada di unit yang sama.

Semoga ini membantu!

Paul
sumber
x1,x2,ysummary(lm(y~x1+x2))$r.sqsummary(lm(y~scale(x1)+scale(x2)))$r.sqR2
R2
p