PCA yapmadan önce neden başka bir standartlaştırma faktörüne değil de standart sapmaya bölünüyoruz?


17

Ham verileri neden standart sapmasına böldüğümüze dair aşağıdaki gerekçeyi (cs229 ders notlarından) okuyordum:

resim açıklamasını buraya girin

açıklamanın ne dediğini anlasam da, standart sapmaya bölünmenin neden böyle bir hedefe ulaşacağı net değil. Herkesin aynı "ölçekte" olması gerektiğini söylüyor. Ancak, bu tamamen açık değil standart sapmaya bölünmenin neden bunu başardığı . Varyansla bölünmenin nesi yanlış? Neden başka bir miktar olmasın? Mutlak değerlerin toplamı gibi mi? ya da başka bir norm ... STD'yi seçmek için matematiksel bir gerekçe var mı?

Bu alıntıdaki iddialar matematik (ve / veya istatistik) yoluyla türetilebilecek / kanıtlanabilecek teorik bir ifade midir yoksa "pratikte" çalıştığı için yaptığımız bu ifadelerden daha mı fazladır?

Temel olarak, bu sezginin neden doğru olduğuna dair titiz bir matematiksel açıklama yapılabilir mi? Ya da bu sadece ampirik bir gözlemse, neden PCA yapmadan önce genel olarak işe yaradığını düşünüyoruz?

Ayrıca, PCA bağlamında, bu standartlaştırma veya normalleştirme süreci midir?


STD'nin neden "açıklayabileceğini" düşündüğüm diğer bazı düşünceler:

PCA varyansı en üst düzeye çıkarmaktan türetilebildiğinden, STD gibi ilgili bir miktara bölünmenin STD'ye böldüğümüz nedenlerden biri olabileceğini tahmin ettim. Ama sonra belki başka bir norm ile belki bir "varyans" tanımladıysanız, , o zaman bu normun STD'sine bölerdik (pth kökü falan alarak). Rağmen, bu sadece bir tahmin ve ben bu konuda% 100 değil, bu yüzden soru. Birisi bununla ilgili bir şey biliyor mu bilmiyordum.1ni=1n(xiμ)p


Belki ilgili bir soru olduğunu gördüm:

Korelasyon veya kovaryans üzerine PCA?

ancak "korelasyon" veya "kovaryans" ne zaman kullanılacağından daha çok söz ediyor gibi göründü, ancak en çok ilgilendiğim şey titiz veya ikna edici veya ayrıntılı gerekçelerden yoksundu.

Aynısı:

Analizden önce neden verileri normalleştirmemiz gerekiyor?

ilişkili:

SVD / PCA için "normalleştirme" değişkenleri


1
Matematiksel bir sebep vardır - her değişken için (ortalanmış) verilerin SD'ye bölünmesi, kovaryans matrisi basitçe orijinal (ortalanmış) verilerin korelasyon matrisi olan dönüştürülmüş bir veri kümesi üretir. Bundan sonra tekrar kovaryans matris bölgesi ile korelasyon halindeyiz. Verilerin normalleştirilmesinin kovaryans matrisini bir korelasyon matrisine nasıl dönüştürdüğüne dair kanıt mı arıyorsunuz?
Silverfish

Başlık sorunuz, normalleştirme amacının ne olduğunu soruyorsunuz (normalleşmemek yerine). Bu "korelasyon veya kovaryans üzerine PCA" nın bir kopyası olacaktır. Bununla birlikte, aslında sorduğunuz şey, normalleşmenin neden STD'ye bölünerek (varyansa veya aralığa vb. Bölmek yerine) yapıldığıdır. Öyleyse, başlık sorusunu daha kesin hale getirmek için belki düzenlemek istersiniz?
amip diyor Reinstate Monica

3
Terminoloji ile ilgili olarak, "normalleştirme" kesin bir terim değildir ve çeşitli şeyleri ifade edebilir. Oysa "standartlaştırma", ortalamayı çıkarmak ve bahsettiğiniz şey olan standart sapmaya bölmek anlamına gelir.
amip diyor Reinstate Monica

2
Sorunuzun çok iyi olduğunu düşündüğümü eklemeliyim (+1). Kişi gerçekten başka bir şeyle bölerek normalleşebilir; örneğin, standart sapma çok sağlam olmayan bir önlemdir ve güçlü aykırı değerlerin varlığında yanıltıcı olabilir. Bu yüzden kişi bunun yerine güçlü bir yayılma ölçüsüne bölünmeyi seçebilir (bkz. Örneğin "medyan mutlak sapma"). STD kullanmanın neden normalleşmenin en iyi yolu olduğuna dair "titiz bir matematiksel açıklama" yoktur ve bunun genellikle iyi çalıştığı "sadece ampirik bir gözlem" olduğuna dikkat edin.
amip diyor Reinstate Monica

2
Re "neden varyansla bölmesin" - bu boyutsal tutarsızlık ile oldukça kolay açıklanabilir. Örneğin, değişkenlerden birinin bulunduğu birimleri değiştirirseniz garip sonuçlar elde edersiniz. "Neden MAD'e bölmüyorsunuz" - eğer veriler normal olarak dağıtıldıysa, (popülasyonda) MAD SD ile orantılı olduğundan, uygun bir MAD katına bölünmek ve (verimsiz ama muhtemelen sağlam? ) korelasyon tahmini. Bu daha ilginç.
Silverfish

Yanıtlar:


11

Bu, "standart sapmaya bölünmenin neden böyle bir hedefe ulaşacağı açık değil" kısmına kısmi bir cevap veriyor. Özellikle, neden dönüştürülmüş (standartlaştırılmış) verileri "aynı ölçek" e koyar. Soru daha derin meselelere işaret ediyor (matematiksel olarak "işe yarayan" bile ne anlama gelebilir, başka ne "işe yaramış" olabilir?), Ama en azından bu prosedürün neden işe yaradığının daha basit yönlerini ele almak mantıklı görünüyordu. - yani, metinde bunun için yapılan iddiaları yerine getirir.

Bir kovaryans matrisinin satırı ve j sütunundaki giriş , i t h ve j t h değişkenleri arasındaki kovaryanstır . Köşegen, satır i ve sütun i'de bunun i t h değişkeni ve kendisi arasındaki kovaryans haline geldiğine dikkat edin - ki bu sadece i t h'nin varyansıdırijithjthiiithith değişkeninin .

değişkeni X i ve j t h değişkeni X j diyelim ; Bunların zaten ortalandığını varsayacağım, böylece ortalama sıfırları olacak. Hatırlayın C o v ( XithXijthXj

Cov(Xi,Xj)=σXiσXjCor(Xi,Xj)

Değişkenleri, sadece standart sapmalarına bölerek varyansa sahip olacak şekilde standart hale getirebiliriz. Standartlaştırırken genellikle ilk önce ortalamayı çıkarırdık, ancak bu adımı atlayabilmemiz için ortalandıklarını varsaydım. İzin VermekZi=XiσXi

Var(Zi)=Var(XiσXi)=1σXi2Var(Xi)=1σXi2σXi2=1

Zjij

Cov(Zi,Zj)=σZiσZjCor(Zi,Zj)=Cor(Zi,Zj)

Cor(Zi,Zj)CÖr(Xben,Xj) yani orijinal veriler arasındaki korelasyon.

Yeni kovaryans matrisinin diyagonalinde elde ettiğimizi unutmayınCÖv(Zben,Zben)=Vbirr(Zben)=1bu yüzden tüm diyagonal beklediğimiz gibi olanlarla doludur. Bu anlamda veriler artık "aynı ölçekte" - marjinal dağılımları, en azından ortalama olarak sıfır ve varyans (ve standart sapma) ile başlamak için kabaca normal olarak dağıtılmışlarsa, çok benzer görünmelidir. Artık bir değişkenin değişkenliği diğerlerini değiştirir. Elbette farklı bir yayılma ölçüsüne bölünmüş olabilirsiniz. Varyans, boyutsal tutarsızlık nedeniyle özellikle kötü bir seçim olurdu (değişkenlerinizden birinin dahil olduğu birimleri değiştirirseniz ne olacağını düşünün, örneğin metreden kilometreye). Ortanca mutlak sapma (veya MAD'in uygun bir katı gibi) if you are trying to use it as a kind of robust estimator of the standard deviation) may have been more appropriate. But it still won't turn that diagonal into a diagonal of ones.

The upshot is that a method that works on the covariance matrix of standardized data, is essentially using the correlation matrix of the original data. For which you'd prefer to use on PCA, see PCA on correlation or covariance?


2
I think this answer does not really touch on the actual (and non-trivial) question of why standard deviation is taken as a measure of spread and used for normalization. Why not taking median absolute deviation instead? Granted, the resulting covariance matrix will not be the "default" correlation matrix, but perhaps it will be better, e.g. a more robust estimation of the correlation matrix. See also my last comment to the OP.
amoeba says Reinstate Monica

2
@ameoba On the "medium deep" point, the fact that we get variances of one down the diagonal of the new covariance matrix is essentially what we mean by getting the transformed data to have variables "on the same scale" from the PCA perspective. On the "very deep" issues raised by this question, I'm not sure there is much difference between asking "well why do we use variances as our measure of scale in PCA?" and asking "why does PCA concern itself with (co)variances?" - or at least, that the two issues would be intimately related.
Silverfish

1
@amoeba, why not divide by MAD or by variance instead of SD is, essentially, the same question as why to differentially scale at all: that is, why not to do PCA on covariances instead? I support this idea in the preceding comment.
ttnphns

1
@ttnphns: If different variables have completely incomparable scales (temperature, length, weight, etc.), then the desire to somehow normalize the variables is quite understandable. That's the common argument for using correlation matrix instead of covariance matrix. But if somebody is worried about outliers, I see nothing wrong with subtracting the median instead of the mean and dividing by MAD instead of SVD... I never did it myself, but I think it does sound like a reasonable thing to do.
amoeba says Reinstate Monica

1
@amoeba, Linear PCA needs the matrix to be the SSCP-type matrix. Any linear transform of the original variables preserves this type. Of course, you could do any nonlinear transform as well (such as, for instance, ranking, to get Spearman rho matrix), but then component scores and loadings loose their direct (in sense of least squares minimization) connection with the data: they now represent the transformed data instead!
ttnphns

5

Why do we divide by the standard deviation
whats wrong with dividing by the variance?

as @Silverfish already pointed out in a comment, the standard deviation has the same unit as the measurements. Thus, dividing by standard deviation as opposed to variance, you end up with a plain number that tells you where your case is relative to average and spread as measured by mean and standard deviation. This is very close to the idea of z-values and the standard normal distribution: If the data are normally distributed, standardization will transform them to a standard normal distribution.

So: standardization (mean centering + scaling by standard deviation) makes sense if you consider the standard normal distribution sensible for your data.

Why not some other quantity? Like...the sum of absolute values? or some other norm...

Other quantities are used to scale data, but the procedure is called standardization only if it uses mean centering and dividing by standard deviation. Scaling is the generic term.

E.g. I work with spectroscopic data and know that my detector has a wavelength-dependent sensitivity and an (electronic) bias. Thus I calibrate by subtracting the offset (blank) signal and multiplying (dividing) by a calibration factor.

Also, I may be centering not to the mean but instead to some other baseline value, such as the mean of a control group instead of the grand mean. (Personally, I almost never standardize as my variates already have the same physical unit and are in the same order of magnitude)

See also: Variables are often adjusted (e.g. standardised) before making a model - when is this a good idea, and when is it a bad one?


+1. Nice example with spectroscopic data. By the way, congratulations with reaching 10k rep!
amoeba says Reinstate Monica

0

This link answers your question clearly, I guess: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

I quote a small piece:

Z-score standardization or Min-Max scaling?

“Standardization or Min-Max scaling?” - There is no obvious answer to this question: it really depends on the application.

For example, in clustering analyses, standardization may be especially crucial in order to compare similarities between features based on certain distance measures. Another prominent example is the Principal Component Analysis, where we usually prefer standardization over Min-Max scaling, since we are interested in the components that maximize the variance (depending on the question and if the PCA computes the components via the correlation matrix instead of the covariance matrix; but more about PCA in my previous article).

However, this doesn’t mean that Min-Max scaling is not useful at all! A popular application is image processing, where pixel intensities have to be normalized to fit within a certain range (i.e., 0 to 255 for the RGB color range). Also, typical neural network algorithm require data that on a 0-1 scale.

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.