Apakah standardisasi variabel independen mengurangi kolinearitas?

12

Saya telah menemukan teks yang sangat bagus di Bayes / MCMC. TI menyarankan bahwa standardisasi variabel independen Anda akan membuat algoritma MCMC (Metropolis) lebih efisien, tetapi juga dapat mengurangi (multi) collinearity. Bisakah itu benar? Apakah ini sesuatu yang harus saya lakukan sebagai standar . (Maaf).

Kruschke 2011, Melakukan Analisis Data Bayesian. (AP)

edit: misalnya

     > data(longley)
     > cor.test(longley$Unemployed, longley$Armed.Forces)

Pearson's product-moment correlation

     data:  longley$Unemployed and longley$Armed.Forces 
     t = -0.6745, df = 14, p-value = 0.5109
     alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
     -0.6187113  0.3489766 
     sample estimates:
      cor 
     -0.1774206 

     > standardise <- function(x) {(x-mean(x))/sd(x)}
     > cor.test(standardise(longley$Unemployed), standardise(longley$Armed.Forces))

Pearson's product-moment correlation

     data:  standardise(longley$Unemployed) and standardise(longley$Armed.Forces) 
     t = -0.6745, df = 14, p-value = 0.5109
      alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
      -0.6187113  0.3489766 
      sample estimates:
       cor 
     -0.1774206 

Ini tidak mengurangi korelasi atau karena itu meskipun ketergantungan linear terbatas vektor.

Apa yang sedang terjadi?

R

rosser
sumber

Jawaban:

19

Itu tidak mengubah collinearity antara efek utama sama sekali. Penskalaan juga tidak. Setiap transformasi linear tidak akan melakukan itu. Apa yang berubah adalah korelasi antara efek utama dan interaksinya. Bahkan jika A dan B independen dengan korelasi 0, korelasi antara A, dan A: B akan tergantung pada faktor skala.

Coba yang berikut ini di konsol R. Perhatikan bahwa rnormhanya menghasilkan sampel acak dari distribusi normal dengan nilai populasi yang Anda atur, dalam hal ini 50 sampel. The scaleFungsi standarisasi sampel untuk rata-rata 0 dan SD dari 1.

set.seed(1) # the samples will be controlled by setting the seed - you can try others
a <- rnorm(50, mean = 0, sd = 1)
b <- rnorm(50, mean = 0, sd = 1)
mean(a); mean(b)
# [1] 0.1004483 # not the population mean, just a sample
# [1] 0.1173265
cor(a ,b)
# [1] -0.03908718

Korelasi insidental mendekati 0 untuk sampel independen ini. Sekarang normalkan dengan rata-rata 0 dan SD 1.

a <- scale( a )
b <- scale( b )
cor(a, b)
# [1,] -0.03908718

Sekali lagi, ini adalah nilai yang sama persis meskipun rata-rata adalah 0 dan SD = 1 untuk keduanya adan b.

cor(a, a*b)
# [1,] -0.01038144

Ini juga sangat dekat dengan 0. (a * b dapat dianggap sebagai istilah interaksi)

Namun, biasanya SD dan rata-rata prediktor sedikit berbeda jadi mari kita ubah b. Alih-alih mengambil sampel baru, saya akan mengubah bskala asli untuk memiliki rata-rata 5 dan SD 2.

b <- b * 2 + 5
cor(a, b)
 # [1] -0.03908718

Sekali lagi, korelasi akrab yang telah kita lihat selama ini. Penskalaan tidak memiliki dampak pada korelasi antara adan b. Tapi!!

cor(a, a*b)
# [1,] 0.9290406

Sekarang akan memiliki korelasi substansial yang dapat Anda hilangkan dengan pemusatan dan / atau standarisasi. Saya biasanya pergi hanya dengan centering.

John
sumber
1
+1 untuk jawaban yang komprehensif dan dapat dipahami (dengan kode!)
Peter Flom - Reinstate Monica
1
Ini juga berguna jika Anda ingin memasukkan, katakanlah, istilah kuadratik.
Aniko
absolute Aniko
John
1
Jawaban terbaik - terima kasih untuk ini. Saya mungkin telah melakukan ketidakadilan dalam menafsirkan buku itu juga, tapi mungkin layak untuk mengungkap ketidaktahuan saya.
rosser
7

Seperti yang telah disebutkan orang lain, standardisasi sama sekali tidak ada hubungannya dengan collinearity.

Collinearity sempurna

Mari kita mulai dengan apa itu standardisasi (alias normalisasi), apa yang kita maksud dengan mengurangi rata-rata dan membaginya dengan deviasi standar sehingga rata-rata yang dihasilkan sama dengan nol dan deviasi standar terhadap kesatuan. Jadi jika variabel acak memiliki mean dan standar deviasi , makaμ X σ XXμXσX

ZX=XμXσX

memiliki rata-rata dan standar deviasi mengingat sifat-sifat nilai yang diharapkan dan varians yang , dan , , di mana adalah rv dan adalah konstanta.μZ=0σZ=1E(X+a)=E(X)+aE(bX)=bE(X)Var(X+a)=Var(X)Var(bX)=b2Var(X)Xa,b

Kami mengatakan bahwa dua variabel dan adalah collinear sempurna jika ada nilai seperti itu dan yangXYλ0λ1

Y=λ0+λ1X

berikut ini, jika memiliki mean dan standar deviasi , maka memiliki mean dan standar deviasi . Sekarang, ketika kita membakukan kedua variabel (menghapus sarana mereka dan membaginya dengan standar deviasi), kita mendapatkan ...μ X σ X Y μ Y = λ 0 + λ 1 μ X σ Y = λ 1 σ X Z X = Z XXμXσXYμY=λ0+λ1μXσY=λ1σXZX=ZX

Korelasi

Tentu saja collinearity sempurna bukanlah sesuatu yang sering kita saksikan, tetapi variabel yang berkorelasi kuat juga bisa menjadi masalah (dan mereka adalah spesies yang terkait dengan collinearity). Jadi apakah standardisasi memengaruhi korelasi? Silakan bandingkan plot berikut yang menunjukkan dua variabel berkorelasi pada dua plot sebelum dan sesudah penskalaan: masukkan deskripsi gambar di sini

Bisakah Anda melihat perbedaannya? Seperti yang Anda lihat, saya sengaja menghapus label sumbu, jadi untuk meyakinkan Anda bahwa saya tidak curang, lihat plot dengan label tambahan:

masukkan deskripsi gambar di sini

Matematis berbicara, jika korelasi adalah

Corr(X,Y)=Cov(X,Y)Var(X)Var(Y)

kemudian dengan variabel collinear yang kita miliki

Corr(X,Y)=E[(XμX)(YμY)]σXσY=E[(XμX)(λ0+λ1Xλ0λ1μX)]σXλ1σX=E[(XμX)(λ1Xλ1μX)]σXλ1σX=E[(XμX)λ1(XμX)]σXλ1σX=λ1E[(XμX)(XμX)]σXλ1σX=E[(XμX)(XμX)]σXσX

sekarang karena ,Cov(X,X)=Var(X)

=Cov(X,X)σX2=Var(X)Var(X)=1

Sedangkan dengan variabel standar

Corr(ZX,ZY)=E[(ZX0)(ZY0)]1×1=Cov(ZX,ZY)=Var(ZX)=1

sejak ...ZX=ZY

Akhirnya, perhatikan bahwa apa yang dibicarakan oleh Kruschke , adalah bahwa standardisasi variabel membuat hidup lebih mudah bagi sampel Gibbs dan mengarah pada pengurangan korelasi antara intersep dan kemiringan dalam model regresi yang ia sajikan. Dia tidak mengatakan bahwa variabel standardisasi mengurangi kolinearitas antara variabel.

Tim
sumber
0

Standardisasi tidak mempengaruhi korelasi antar variabel. Mereka tetap sama persis. Korelasi menangkap sinkronisasi arah variabel. Tidak ada dalam standardisasi yang mengubah arah variabel.

Jika Anda ingin menghilangkan multikolinieritas antara variabel Anda, saya sarankan menggunakan Principal Component Analysis (PCA). Seperti yang Anda tahu PCA sangat efektif dalam menghilangkan masalah multikolinieritas. Di sisi lain PCA membuat variabel gabungan (komponen utama P1, P2, dll ...) agak buram. Model PCA selalu jauh lebih sulit untuk dijelaskan daripada model multivariat yang lebih tradisional.

Sympa
sumber
Alternatif modern, seringkali lebih baik, adalah regularisasi.
kjetil b halvorsen
Saya telah menguji pemilihan variabel antara algoritma stepwise standar dan LASSO. Dan, LASSO hadir dalam detik yang sangat jauh. LASSO menghukum pengaruh variabel, ia dapat memilih variabel yang lemah dari variabel yang lebih kuat. Bahkan dapat menyebabkan tanda variabel berubah. Dan, itu memecah seluruh kerangka kerja signifikansi statistik, Interval Keyakinan, dan Interval Prediksi. LASSO terkadang dapat bekerja. Tapi, perhatikan dengan sangat hati-hati pada grafik UMK vs. grafik Lambda dan grafik Koefisien vs Lambda. Di situlah Anda dapat mengamati secara visual jika model LASSO Anda bekerja.
Sympa
0

Itu tidak mengurangi collinearity, itu dapat mengurangi VIF. Biasanya kami menggunakan VIF sebagai indikator untuk masalah collinearity.

Sumber: http://blog.minitab.com/blog/adventures-in-statistics-2/what-are-the-effects-of-multicollinearity-and-when-can-i-ignore-them

Bill Chen
sumber
2
Selamat datang di situs ini. Saat ini, ini lebih merupakan komentar daripada jawaban. Anda dapat mengembangkannya, mungkin dengan memberikan ringkasan informasi di tautan, atau kami dapat mengubahnya menjadi komentar untuk Anda. Selain itu, pembacaan saya terhadap postingan tertaut tidak cukup dengan standardisasi mengurangi VIF tanpa mengurangi collinearity. Contoh mereka sangat spesifik & lebih bernuansa dari itu.
gung - Reinstate Monica
-3

Standardisasi adalah cara umum untuk mengurangi kolinearitas. (Anda harus dapat memverifikasi dengan sangat cepat bahwa ia berfungsi dengan mencobanya pada beberapa pasang variabel.) Apakah Anda melakukannya secara rutin tergantung pada seberapa banyak masalah collinearity dalam analisis Anda.

Sunting: Saya melihat saya salah. Apa yang dilakukan standardisasi adalah mengurangi kolinearitas dengan istilah produk (istilah interaksi).

rolando2
sumber
Hmm, bisakah Anda menjelaskan? Standarisasi hanya mengubah mean dan varians dari variabel acak (masing-masing menjadi 0 dan 1). Ini seharusnya tidak mengubah korelasi antara dua variabel. Saya melihat bagaimana standardisasi dapat meningkatkan efisiensi komputasi, tetapi tidak bagaimana itu mengurangi multikolinearitas.
Charlie
Tidak, saya; saya kehilangan ... bagaimana mungkin mengubah ketergantungan linear dari elemen kolom dalam matriks prediktor. (Bukankah itu yang dimaksud dengan collinearity?)
Rosser
Meskipun tidak benar bahwa standardisasi mengubah collinearity dalam arti matematika murni, itu dapat meningkatkan stabilitas numerik algoritma untuk menyelesaikan sistem linier. Itu mungkin menjadi sumber kebingungan dalam balasan ini.
whuber
Standardisasi tidak mengurangi multikolinieritas. Ini biasanya tidak mengubah korelasi antar variabel sama sekali.
Sympa