Leptokurtik dağılımı normalliğe nasıl dönüştürebilirim?


12

Diyelim ki normalliğe dönüştürmek istediğim leptokurtik bir değişkenim var. Bu görevi hangi dönüşümler yapabilir? Verilerin dönüştürülmesinin her zaman arzu edilmeyebileceğinin farkındayım, ancak akademik bir uğraş olarak, verileri normalliğe "çekmek" istediğimi varsayalım. Ayrıca, çizimden de anlayabileceğiniz gibi, tüm değerler kesinlikle pozitiftir.

Çeşitli dönüşümler denedim ( , vb. olmak üzere daha önce kullandığım hemen hemen her şey ), ama hiçbiri özellikle iyi çalışmıyor. Leptokurtik dağılımları daha normal hale getirmek için iyi bilinen dönüşümler var mı?1X,X,asinh(X)

Aşağıdaki örnek Normal QQ grafiğine bakınız:

resim açıklamasını buraya girin


5
Olasılık integrali dönüşümüne aşina mısınız ? Eğer eylemde görmek istiyorsanız , bu sitede birkaç iş parçacığında çağrıldı .
whuber

8
İşarete saygı gösterirken simetrik olarak (değişken "orta") çalışan bir şeye ihtiyacınız var . Eğer "orta" yoksa denediğin hiçbir şey yakın gelmez. "Orta" için medyan kullanın ve küp kökünü işaret (.) * Abs (.) ^ (1/3) olarak uygulamayı hatırlayarak sapmaların küp kökünü deneyin. Hiçbir garanti ve çok ad hoc, ama doğru yönde itmek gerekir. -
Nick Cox

1
O platykurtik olarak adlandırmanı sağlayan nedir? Bir şeyi kaçırmadıkça, normalden daha yüksek basıklık varmış gibi görünüyor.
Glen_b-Monica'yı

3
@Glen_b Doğru olduğunu düşünüyorum: leptokurtic. Ancak, Biometrika'daki Student'ın orijinal karikatürüne atıfta bulunmaları dışında, bu terimlerin her ikisi de oldukça saçmadır . Kriter basıklıktır; değerler yüksek veya düşük veya (hatta daha iyi) nicelleştirilmiştir.
Nick Cox

3
Leptokurtik neden 'ince kuyruklu' olarak tanımlanmaktadır? Kuyruk kalınlığı ve basıklık arasında gerekli bir ilişki olmamakla birlikte, genel eğilim ağır kuyrukların basıklık ile ilişkilendirilmesidir (örneğin standart yoğunluklar için normal ile karşılaştırınız )t6
Glen_b -Restate Monica

Yanıtlar:


12

Leptokurtik verileri tanımlamak ve dönüştürmek için ağır kuyruk Lambert W x F dağılımları kullanıyorum. Daha fazla ayrıntı ve referans için aşağıdaki yayınlarıma bakın:

  • δ
  • Bu verilerin dağılımı nedir? : model parametrelerini tahmin etmek ve verilerinizi Gaussianize etmek için bunu nasıl kullanacağınıza dair bir uygulama örneği.

İşte LambertW R paketini kullanarak tekrarlanabilir bir örnek .

library(LambertW)
set.seed(1)
theta.tmp <- list(beta = c(2000, 400), delta = 0.2)
yy <- rLambertW(n = 100, distname = "normal", 
                theta = theta.tmp)

test_norm(yy)

orijinal verilerin normalliğini test et

## $seed
## [1] 267509
## 
## $shapiro.wilk
## 
##  Shapiro-Wilk normality test
## 
## data:  data.test
## W = 1, p-value = 0.008
## 
## 
## $shapiro.francia
## 
## 	Shapiro-Francia normality test
## 
## data:  data.test
## W = 1, p-value = 0.003
## 
## 
## $anderson.darling
## 
##  Anderson-Darling normality test
## 
## data:  data
## A = 1, p-value = 0.01

yyxX~N-(2000,400)δ=0.25

Şimdi sorunuza geri dönün: Bu leptokurtik verileri nasıl tekrar normal hale getirelim? MLE kullanarak dağılım parametrelerini tahmin edebiliriz (veya anların kullanım yöntemleri için IGMM()),

mod.Lh <- MLE_LambertW(yy, distname = "normal", type = "h")
summary(mod.Lh)

## Call: MLE_LambertW(y = yy, distname = "normal", type = "h")
## Estimation method: MLE
## Input distribution: normal
## 
##  Parameter estimates:
##        Estimate  Std. Error  t value Pr(>|t|)    
## mu     2.05e+03    4.03e+01    50.88   <2e-16 ***
## sigma  3.64e+02    4.36e+01     8.37   <2e-16 ***
## delta  1.64e-01    7.84e-02     2.09    0.037 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## -------------------------------------------------------------- 
## 
## Given these input parameter estimates the moments of the output random variable are 
##   (assuming Gaussian input): 
##  mu_y = 2052; sigma_y = 491; skewness = 0; kurtosis = 13.

W_delta()X

# get_input() handles does the right transformations automatically based on
# estimates in mod.Lh
xx <- get_input(mod.Lh)
test_norm(xx)

Gausslaşmış verilerin normalliğini test et

## $seed
## [1] 218646
## 
## $shapiro.wilk
## 
##  Shapiro-Wilk normality test
## 
## data:  data.test
## W = 1, p-value = 1
## 
## 
## $shapiro.francia
## 
## 	Shapiro-Francia normality test
## 
## data:  data.test
## W = 1, p-value = 1
## 
## 
## $anderson.darling
## 
##  Anderson-Darling normality test
## 
## data:  data
## A = 0.1, p-value = 1

İşte bu kadar!


Ben bir hayranıyım ve python için scikit-learn gibi bir versiyonda çalışmaya başladım: github.com/gregversteeg/gaussianize
Greg Ver Steeg

Georg, dönüşümünüzün nasıl çalıştığına dair daha sezgisel bir açıklama sunmanız mümkün mü?
azuric

Z=Utecrübe(δ/2U2)Uδ>0Z

9

işaret(.)abs (.)13Y-medyan(Y)

Küp kökü dönüşümü iyi sonuç vermemesine rağmen, kare kökü ortaya çıkıyor ve daha belirsiz dörtte üçü kök iyi çalışıyor.

Orijinal sorudaki leptokurtik değişkenin QQ grafiğine karşılık gelen orijinal çekirdek yoğunluğu grafiği:

resim açıklamasını buraya girin


Karekök dönüşümünü sapmalara uyguladıktan sonra, QQ grafiği şöyle görünür:

resim açıklamasını buraya girin

Daha iyi, ama daha yakın olabilir.


Biraz daha çekiçlemek, dörtte üçlük kök dönüşümünü sapmalara uygulamak:

resim açıklamasını buraya girin


Ve bu dönüştürülmüş değişkenin son çekirdek yoğunluğu şöyle görünür:

resim açıklamasını buraya girin

Bana yakın görünüyor.


8

Birçok durumda, normaline yakın bir sonuç üretecek basit formda bir monotonik dönüşüm olmayabilir.

Örneğin, çeşitli parametrelerin lognormal dağılımlarının sonlu bir karışımı olan bir dağılımımız olduğunu düşünün. Bir günlük dönüşümü, karışımın herhangi bir bileşenini normalliğe dönüştürür, ancak dönüştürülen verilerdeki normallerin karışımı sizi normal olmayan bir şeyle terk eder.

Ya da nispeten hoş bir dönüşüm olabilir, ancak denemeyi düşündüğünüz formlardan biri değil - verilerin dağılımını bilmiyorsanız, bulamayabilirsiniz. Örneğin, veriler gama dağıtıldıysa, size dağılımın tam olarak ne olduğunu söylemezsem normale (tam olarak var olan) tam dönüşümü bile bulamazsınız (yine de küp kök dönüşümüne case, shape parametresi çok küçük olmadığı sürece bunu normale yakın hale getirir).

Verilerin dönüştürülmeye makul derecede uygun görünebileceği, ancak açık dönüşümlerin hiçbir listesinde harika görünmediği sayısız yol var.

Bize verilere erişebilmeniz için, iyi olan bir dönüşümü tespit edebiliriz - ya da neden bir tane bulamayacağınızı gösterebiliriz.

Oradaki görsel izlenimden ziyade, farklı ölçeklerde iki normalin bir karışımı gibi görünüyor. Tesadüfen kolayca gözlemleyebileceğiniz hafif bir asimetri ipucu var. Aşağıda, ortak ortalamaya sahip iki normalin bir karışımından bir örnek verilmiştir. ortalamanın her iki tarafında 1 sd dışında istatistikler).

resim açıklamasını buraya girin

Aslında işte seninki ve benimki üst üste bindi:

resim açıklamasını buraya girin


Kesinlikle farklı ölçekte iki normal dağılımın karışımı, mükemmel gözlem gibi görünüyor.
Underminer
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.