Çoklu regresyon yaparken, yordayıcı değişkenlerinizi ne zaman merkezlemelisiniz ve ne zaman standartlaştırmalısınız?


281

Bazı literatürde, eğer farklı birimlerde standartlaştırılmışsa, birden fazla açıklayıcı değişkenli bir regresyonun okudum. (Standartlaştırma ortalamanın çıkarılması ve standart sapmanın bölünmesine dayanır.) Verilerimi başka hangi durumlarda standartlaştırmam gerekir? Verilerimi yalnızca ortalamam gereken durumlar var mı (yani standart sapmalara bölünmeden)?


11
Bir ilgili yayın Andrew Gelman en blog.

31
Zaten verilen büyük cevapların yanı sıra, ridge regres ya da kement gibi ceza yöntemlerini kullanırken sonucun artık standardizasyon için değişmez olduğunu belirteyim. Bununla birlikte, standart hale getirilmesi genellikle tavsiye edilir. Bu durumda, doğrudan yorumlarla ilgili nedenlerden dolayı değil, ancak cezalaştırmanın farklı açıklayıcı değişkenleri daha eşit bir temelde ele alacağı için.
NRH

6
@Mathieu_r sitesine hoş geldiniz! Çok popüler iki soru gönderdin. Lütfen her iki soruya da aldığınız mükemmel cevapların bazılarını iyileştirmeyi / kabul etmeyi düşünün;)
Macro


1
Bu soru-cevap bölümünü okuduğumda bana yıllar önce rastladığım bir usenet sitesini hatırlattı faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html Bu, bazı terimler ve düşüncelerden bazılarını basit bir şekilde verir. kişi verileri normalleştirmek / standartlaştırmak / yeniden ölçeklendirmek istediğinde. Buradaki cevaplarda hiçbir yerde bahsettiğini görmedim. Konuyu daha çok makine öğrenmesi perspektifinden ele alıyor, ancak birinin buraya gelmesine yardımcı olabilir.
Paul

Yanıtlar:


213

Regresyonda, değişkenlerin ortalama olarak tahmin edicilerin olması için merkezlenmesi önerilir . Bu, kesişim terimi, yordayıcı değerleri araçlarına ayarlandığında beklenen değeri olarak yorumlanmasını sağlar . Aksi halde kesişim, öngörücüler 0 olarak ayarlandığında , beklenen değeri olarak yorumlanır; bu , gerçekçi veya yorumlanabilir bir durum olmayabilir (örneğin, öngörücüler boy ve kilo ise?). Regresyonda ölçeklendirmenin bir başka pratik nedeni , bir değişkenin çok büyük bir ölçeğe sahip olmasıdır, örneğin, bir ülkenin nüfus büyüklüğünü öngörücü olarak kullanıyorsanız. Bu durumda, regresyon katsayıları çok olabilir0Y i Y i 10 - 6YiYiBilgisayar çıktısını okurken biraz sinir bozucu olabilen küçük bir büyüklük sırası (örneğin ), bu nedenle değişkeni örneğin milyonlarca popülasyon büyüklüğüne dönüştürebilirsiniz. Tahminleri standartlaştıracağınız kongre ilk olarak, regresyon katsayılarının birimleri aynı olacak şekilde var.106

Tahminler uygun ayarlanır ve - @gung ve MånsT @ ima (btw hem 1) açıkça gösterdiği gibi, ortalama / ölçeklendirme regresyon modellerinde sizin istatistiksel çıkarım etkilemez -değerleri aynı olacaktır.p

Merkezleme ve / veya ölçeklendirmenin faydalı olabileceği diğer durumlar:

  • farklı ölçeklerde olan değişkenleri toplamaya veya ortalamaya çıkarmaya çalıştığınızda , belki de bir tür bileşik puan oluşturabilirsiniz. Ölçeklendirme olmadan, bir değişkenin, yalnızca ölçeğinden dolayı arzu edilemeyecek şekilde, toplam üzerinde daha büyük bir etkisi olması söz konusu olabilir.

  • Hesaplamaları ve gösterimleri basitleştirmek. Örneğin, örnek araçları tarafından merkezlenmiş bir değerler matrisinin örnek kovaryans matrisi basitçe . Benzer şekilde, tek değişkenli rastgele bir değişkenin ortalaması ortalanmışsa, o zaman ve varyans, gözlenen karelerin örnek ortalamalarına bakılarak bir numuneden tahmin edilebilir. değerler.XXXvar(X)=E(X2)

  • Yukarıda bahsedilenlerle ilgili olarak, PCA , yalnızca sütunlar ilk önce araçları tarafından merkezlendiğinde, bir veri matrisinin tekil değer ayrıştırması olarak yorumlanabilir .

O ölçekleme bahsettiğim son iki madde işareti noktalarını gerekli olmadığını lütfen unutmayın ve merkezleme olabilir iki her zaman el ve el gitmeye gerek kalmaz, bahsettiğim ilk madde işareti gerekli olmayabilir.


2
+1, bunlar düşünmediğim güzel noktalar. Netlik açısından, bir araştırmacının regresyona başlamadan önce açıklayıcı değişkenleri birleştirmek isteyebileceği ve dolayısıyla standardize etmesi gereken bazı somut örnekleri listeleyim. Bir vaka, çocukların davranış bozukluklarını araştırmak için olabilir; Araştırmacılar hem velilerden hem de öğretmenlerden puan alabilir ve bunları tek bir uyumsuzluk ölçütü olarak birleştirmek isteyebilir. Diğer bir örnek ise bakımevinde aktivite düzeyinde sakinlerin kendileri tarafından değerlendirilen ve aktiviteler için kayıt kâğıtlarındaki imza sayısı ile ilgili bir çalışma olabilir.
gung

2
Fakat teoride, merkezleme / ölçeklendirme için popülasyon ortalamasını ve standart sapmasını kullanmamalı mıyız? Uygulamada, örnek ortalama / SD kullanmak kadar basit mi yoksa daha fazlası var mı?
AlefSin

3
Tamamlanma adına, bu güzel cevaba , ortalanmış ve standartlaştırılmış korelasyon matrisi olduğunu . XXXX
cbeleites

1
@AlefSin: nüfus ortalamasından / sd'den başka bir şey kullanmak isteyebilirsiniz, cevabımı görün. Ancak, merkezleme / ölçeklendirme için ne kullanacağımızı düşünmemiz gereken nokta çok iyi.
cbeleites

@AlefSin, benim yorumumun tamamı, ortalama / SD örneğini kullandığınız varsayımıyla yapıldı. göre , yorumlanması hala aynıdır, ancak yordayıcılar örnekleme araçlarını ayarladıklarında beklenen . Üç mermi noktalarımdaki bilgiler, örnek miktarlarına göre merkezlendiğinde / ölçeklendiğinde hala geçerlidir. Ayrıca, örnek ortalamasının merkezini alırsanız, sonucun ortalama 0 olan bir değişken olduğunu, ancak örnek standart sapmanın ölçeklendirmesinin genel olarak standart sapma 1 (örneğin, t-istatistiği) ile sonuç üretmediğine dikkat etmek önemlidir. Yi
Makro

143

β1=.6β2=.3bu durumda, ilk açıklayıcı değişken, ikincisinin iki katı kadar önemlidir. Bu fikir çekici olsa da, ne yazık ki geçerli değil. Birkaç sorun var, ama belki de takip etmesi en kolay olanı değişkenlerdeki olası menzil kısıtlamalarını kontrol etmenin bir yolu olmamasıdır. Birbirine göre farklı açıklayıcı değişkenlerin 'önemini' anlamak çok zor bir felsefi meseledir. Bunların hiçbiri standartlaştırmanın kötü ya da yanlış olduğunu , sadece gerekli olmadığına işaret etmek değildir .

XX2XX


(Güncelleme çok sonra eklendi :) Bahsetmeyi unuttuğum benzer bir durum etkileşim terimleri yaratıyor . Bir etkileşim / ürün terimi, 0 üzerinde merkezlenmemiş iki değişkenden oluşturulursa, bir miktar collinearity (çeşitli faktörlere bağlı olarak kesin miktarla birlikte) oluşturulur. Merkezleme ilk önce bu olası sorunu ele alır. Daha ayrıntılı bir açıklama için, @Affine: Collinearity diagnostik'in sadece etkileşim terimi dahil edildiğinde sorunlu olan bu mükemmel cevabını görün .


12
Herkes ilgileniyor, ben de burada göreceli 'önemini' anlaması için standardize betanın kullanılması yanlış düşüncesine hakkında konuşmak: çoklu doğrusal-regresyon-için-hipotez-test
gung

Cevabın için teşekkürler. Sanırım bu arada bunu çözdüm: Biri kare terimi X'in kendisiyle etkileşime girdiğini düşünebilirdi, bu nedenle konuşmak ve etkileşimli değişken üzerindeki noktanız daha genel olurdu.
Abhimanyu Arora

6
XX

Beta1 = 0.6 ve beta2 = 0.3 hakkında, beta1'in beta2'nin iki katı kadar önemli olup olmadığından emin değilim, ancak standardize edildiklerinden, aynı “ölçekte” olduklarını, yani birimlerin standart sapmalar olduğunu düşündüm. ortalamadan. Bunu söyledikten sonra, Y'nin cevabı beta1 durumunda (x2 sabit tutma) beta2'den (x1 sabit tutma) iki kat daha yüksek olacaktır. Sağ? Yoksa yolda bir şeyi yanlış mı anladım?
chao

@chao, gerçekten 2 değişkene özgü olan birimlerden kurtulmadınız; onları sadece sakladın. Şimdi, X1 birimleri 13.9 cm'de ve X2 birimleri 2.3 santigrat derecedir.
gung

80

Diğer cevaplardaki açıklamalara ek olarak, açıklayıcı değişkenlerin ölçeğinin ve konumunun herhangi bir şekilde regresyon modelinin geçerliliğini etkilemediğini belirtmek isterim .

y=β0+β1x1+β2x2++ϵ

β1,β2,x1,x2,β0

x1aβ^11/a

β^1(x1)=i=1n(x1,ix¯1)(yiy¯)i=1n(x1,ix¯1)2.

Böylece

β^1(ax1)=i=1n(ax1,iax¯1)(yiy¯)i=1n(ax1,iax¯1)2=ai=1n(x1,ix¯1)(yiy¯)a2i=1n(x1,ix¯1)2=β^1(x1)a.

β^2

Dolayısıyla, ölçeklendirme, karşılık gelen eğimlerin ölçeklendirilmesine tekabül eder.

ai=1/sisix1xi


1
Çok eğrilmiş değişkenleri standartlaştırmak iyi bir fikir mi yoksa simetrik olarak dağıtılmış değişkenleri standartlaştırmak daha mı iyi? Sadece girdi değişkenlerini mi yoksa sonuçları da yıldızlara mı çekelim?
Skan

31

Modelinize uyması için degrade iniş kullanıyorsanız, değişkenleri standartlaştırmak yakınsaklığı hızlandırabilir (çünkü ölçeklenmemiş değişkenler olduğunda, karşılık gelen parametreler degradeye uygun şekilde baskın olabilir). Bunu göstermek için bazı R kodları:

> objective <- function(par){ par[1]^2+par[2]^2}  #quadratic function in two variables with a minimum at (0,0)
> optim(c(10,10), objective, method="BFGS")$counts  #returns the number of times the function and its gradient had to be evaluated until convergence
    function gradient 
          12        3 
> objective2 <- function(par){ par[1]^2+0.1*par[2]^2}  #a transformation of the above function, corresponding to unscaled covariates
> optim(c(10,10), objective2, method="BFGS")$counts
function gradient 
      19       10 
> optim(c(10,1), objective2, method="BFGS")$counts  #scaling of initial parameters doesn't get you back to original performance
function gradient 
      12        8

Ayrıca, bazı SVM uygulamaları için ölçeklendirme, öngörü performansını artırabilir: Destek vektör veri tanımlamasında özellik ölçeklendirme .


25

Hem merkezleme hem de standardizasyon için "sağlam nedenler" tercih ediyorum (çok sık varlar). Genel olarak, veri seti ve problemi ile ilgili veri analiz yönteminden daha çok şey yaparlar.

Çok sık, ortalamanınkinden daha anlamlı (yani ayrıca Macro'nun cevabına bakınız), örneğin fiziksel olarak / kimyasal olarak / biyolojik olarak / ... diğer noktalara ortalamayı (yani verilerin kaynağını değiştirmeyi) tercih ederim.

  • kontrol grubunun ortalaması

  • boş sinyal

Sayısal kararlılık, verileri merkezlemek ve / veya ölçeklendirmek için algoritmaya bağlı bir nedendir.

Ayrıca, standardizasyon ile ilgili benzer sorulara bir göz atın . Ayrıca "sadece merkez" i de kapsıyor.


24

@Cbeleites'in bahsettiği sayısal istikrar konusunu göstermek için, işte "kırılma" konusunda Simon Wood'dan bir örnek lm(). İlk önce bazı basit veriler üreteceğiz ve basit bir ikinci dereceden eğriye uyacağız.

set.seed(1); n <- 100
xx <- sort(runif(n))
y <- .2*(xx-.5)+(xx-.5)^2 + rnorm(n)*.1
x <- xx+100
b <- lm(y ~ x+I(x^2))

plot(x,y)
lines(x, predict(b), col='red')

görüntü tanımını buraya girin

Fakat eğer X'e 900 eklersek, o zaman sonuç hemen sağa kaydırılmalı, hemen hemen aynı olmalı. Ne yazık ki değil...

X <- x + 900
B <- lm(y ~ X+I(X^2))
plot(X,y)
lines(X, predict(B), col='blue')

görüntü tanımını buraya girin

Düzenleme @Scortchi tarafından yoruma eklemek - biz lm tarafından döndürülen nesne () bakarsak biz kuadratik terim tahmin edilmemiştir ve NA olarak gösterilen görüyoruz.

> B
Call:
lm(formula = y ~ X + I(X^2))

Coefficients:
(Intercept)            X       I(X^2)  
  -139.3927       0.1394           NA  

Ve aslında @Scortchi'nin önerdiği gibi, model matrisine bakar ve doğrudan çözmeye çalışırsak, "kırılır".

> X <- model.matrix(b) ## get same model matrix used above
> beta.hat <- solve(t(X)%*%X,t(X)%*%y) ## direct solution of ‘normal equations’
Error in solve.default(t(X) %*% X, t(X) %*% y) : 
  system is computationally singular: reciprocal condition number = 3.9864e-19

Ancak, lm()bana başka herhangi bir uyarı ya da hata mesajı vermez NAüzerinde s I(X^2)hattı summary(B)Ar-3.1.1 içinde. Diğer algoritmalar elbette farklı örneklerle farklı şekillerde "kırılabilir".


10
(+1) Not lmikinci dereceden terim için bir katsayıyı tahmin edemez ve tekil bir tasarım matrisi hakkında bir uyarı verir - belki de sorunu doğrudan bu alanlardan daha açık bir şekilde betimleyebilir.
Scortchi

3

Orijinal verilerin merkezlenmesi veya standartlaştırılmasının, özellikle bazılarının yukarıda önerdiği gibi, regresyona kare terimler veya diğer etkileşim terimleri dahil edildiğinde, çoklu doğrusallık sorununu gerçekten hafifletebileceğinden şüpheliyim.

Amacımı göstermek için, basit bir örnek ele alalım.

Doğru şartnamenin aşağıdaki formu aldığını varsayalım.

yi=b0+b1xi+b2xi2+ui

Böylece ilgili OLS denklemi

yi=yi^+ui^=b0^+b1^xi+b2^xi2+ui^

yi^yiuib0^b2^b0b2zi=xi2

xx2yiyi

yi

y¯=b0^+b1^x¯+b2^z¯
y¯x¯z¯yixizi

y¯yi

yiy¯=b1^(xix¯)+b2^(ziz¯)+ui^

yiy¯xix¯ziz¯b1^b2^

xx2xx2corr(x,z)=corr(xx¯,zz¯)

Özetle, eğer benim merkezleme anlayışım doğruysa, o zaman merkezleme verilerinin, kare terimleri veya diğer yüksek dereceli terimleri regresyona dahil etmekten kaynaklanan MC problemini hafifletmek için herhangi bir yardımcı olacağını sanmıyorum.

Düşüncelerinizi duymaktan mutlu olurum!


2
Katkınız için teşekkürler, @ rudi0086021. Haklı olabilirsin, ama burada birkaç sorun görüyorum. İlk olarak, merkezleme, x'in ortalamasını çıkarmakla ilgilidir, y'nin ortalamasını çıkarmakla ilgili değildir ; İkincisi, önce ortalamanız gerekir, sonradan yazdığınız kelimelerin not ettiğiniz gibi bir etkisi olmaz. Düşünün: x = c(1,2,3); x2 = x^2; cor(x, x2); # [1] 0.9897433; xc = c(-1,0,1); xc2 = xc^2; cor(xc, xc2) # [1] 0.
gung

Cevabınız için teşekkür ederim, @gung. İşte düşüncelerim. Öncelikle, kişisel olarak bağımlı ve bağımsız değişkenleri farklı bir şekilde, yani bağımsız değişkenlere farklı davranmak için ikna edici bir sebep görmedim, buna karşın bağımlı değişkenler için bunu yapmam.
rudi0086021

2
İkincisi, dediğiniz gibi, belki kare terimler oluşturmadan önce verileri ortalamalıyız. Böyle bir uygulama MC sorununu azaltacaktır. Bununla birlikte, önyargılı tahminlere veya daha somut olarak, atlanan değişken önyargıya (OVB) yol açabilir. Göstermek için aşağıdaki örneğe bakın: doğru şartnamenin şöyle olduğunu varsayalım: y = b0 + b1 * x + b2 * x ^ 2 + u. Verileri önceden ortalamak şunu verecektir: y = b0 + b1 * (x-xhar) + b2 * (x-xbar) ^ 2 + v, burada yeni hata terimi v = u + b1 * xbar-b2 * xbar ^ 2 + 2b2 * XBar * x. Cov (x-xbar, v)! = 0 olduğu açıktır. Bu nedenle, ne yazık ki, verileri önceden merkezlemek yanlı tahminlere yol açacaktır.
rudi0086021

@ rudi0086021 Son yorumunuzda, merkezlenmiş veriyi sığdırırken, merkezlenmemiş veriyi sığdırırken alacağınız aynı katsayıları elde edeceğinizi varsaydığınızı sanıyorsunuz. Ancak kareyi almadan önce merkezleme sabit bir basit kayma değildir, bu yüzden aynı katsayıları elde etmek beklenmemelidir. Merkezlenmeden sonra en uygun seçim B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2'dir, burada B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar ve B2 = b2. Böylece, v = u. Bu yoruma çok nezaketle cevap verdiğim için üzgünüm ama bugün ilk defa onu gören benim gibi başkaları olabilir.
Tim Goodman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.