Verilerimin üstel bir dağıtıma uyup uymadığını nasıl kontrol ederim?


22

Verilerimin, örneğin maaşımın R’de sürekli bir üstel dağılımdan olup olmadığını nasıl kontrol edebilirim?

İşte örneğimin histogramı:

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

. Herhangi bir yardım çok takdir edilecektir!


1
değişkeniniz ayrık mı yoksa sürekli mi? Üstel dağılım sürekli olarak tanımlanmaktadır .
Meraklı 19/13

sürekli. Bunu kontrol etmek için Ar herhangi bir test olup olmadığını merak
stjudent

1
Hoşgeldiniz. fitdistrR'deki fonksiyonu arayın. Olasılık yoğunluğu fonksiyonlarını (pdfs) maksimum olasılık tahmini (MLE) metoduna göre ayarlar. Ayrıca bu site içerisinde pdf, fitdistr, mle ve benzeri sorular da aranacaktır. Bunun gibi soruların, iyi cevaplar toplamak için neredeyse tekrarlanabilir bir örnek gerektirdiğini unutmayın . Ayrıca, sorunun yalnızca programlama ile ilgili olmaması durumunda (bu konunun konu dışı olarak tutulmasına neden olabilir) yardımcı olur.
Andre Silva

8
Bir üstel dağılım karşı düz bir çizgi olarak grafik halinde çizim pozisyonu) pozisyonu çizilmesi (sıralama , seviye olan en düşük değer, numune boyutu ve popüler için seçimler içermektedir . Bu, herhangi bir resmi testten daha fazla ya da daha faydalı olabilecek resmi olmayan bir test verir. -ln(1--bir)/(n-2bir+1)1nbir1/2
Nick Cox

@Berkan, görevinde niceliksel arsa fikrini geliştirmiştir.
Nick Cox

Yanıtlar:


29

İlk ratekullanan tek dağıtım parametresini tahmin ederek yapardım fitdistr. Bu dağılımın uygun olup olmadığını söylemez, bu yüzden uyum iyiliği testini kullanmalısınız. Bunun için kullanabilirsiniz ks.test:

require(vcd)
require(MASS)

# data generation
ex <- rexp(10000, rate = 1.85) # generate some exponential distribution
control <- abs(rnorm(10000)) # generate some other distribution

# estimate the parameters
fit1 <- fitdistr(ex, "exponential") 
fit2 <- fitdistr(control, "exponential")

# goodness of fit test
ks.test(ex, "pexp", fit1$estimate) # p-value > 0.05 -> distribution not refused
ks.test(control, "pexp", fit2$estimate) #  significant p-value -> distribution refused

# plot a graph
hist(ex, freq = FALSE, breaks = 100, xlim = c(0, quantile(ex, 0.99)))
curve(dexp(x, rate = fit1$estimate), from = 0, col = "red", add = TRUE)

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

Kişisel deneyimimden (resmi olarak hiçbir yerde bulamadığım halde, lütfen beni onaylayın veya düzeltin), ks.testyalnızca önce parametre tahminini verirseniz çalışır. Parametreleri otomatik olarak tahmin etmesine izin veremezsiniz, örneğin goodfitolduğu gibi. Bu yüzden bu iki aşamalı işleme ihtiyacınız var fitdistr.

Daha fazla bilgi için, Ricci'nin mükemmel rehberini takip edin : R İLE FITTING DAĞITIMLARI .


2
+1. Bu gibi durumlarda uyum iyiliğini test etmek için en iyi test ks.test midir? Ben de bir soruyu yanıtladı düşünüyorum mayın .
Andre Silva

4
Sadece bir başa çıkma, verileri kendisinden parametreleri tahmin ediyorsanız dikkatli olmalısınız. Bu durumda, anderson sevgilim gibi bir test en iyi olabilir, çünkü bu gibi durumlara karşı dayanıklıdır.
JPC

Hız parametresi verilerden tahmin edildiğinde üstelsellik KS testinde: Bkz . Kolmogorov Smirnov testi hakkında naif bir soru .
Scortchi - Eski Monica

8

Normalde üsselliği teşhis parselleri (QQ parselleri gibi) kullanarak kontrol etmenizi öneririm, ancak insanlar sık ​​sık istedikleri için testleri tartışacağım:

Tomas'ın önerdiği gibi, Kolmogorov-Smirnov testi, üstelsellik belirtilmemiş bir parametre ile test etmek için uygun değildir .

Bununla birlikte, parametre tahmini için tabloları ayarlarsanız, Lilliefors'in üssel dağılım testini alırsınız.

Lilliefors, H. (1969), "Bilinmeyen ortalama ile üstel dağılım için Kolmogorov-Smirnov sınavında", Amerikan İstatistik Kurumu Dergisi , Vol. 64. pp. 387-389.

Bu testin kullanımı, Conover'ın Pratik Parametrik Olmayan İstatistiği'nde tartışılmaktadır .

Ancak, D'Agostino & Stephens’in Uyum İyiliği Teknikleri’nde Anderson-Darling testinin benzer bir modifikasyonunu tartıştılar (doğru hatırlamıyorsam biraz eğik, ancak üstel durum için ona nasıl yaklaşılacağı hakkında gerekli tüm bilgileri düşünüyorum. kitapta bulunabilir) ve ilginç alternatiflere karşı daha fazla güce sahip olması neredeyse kesin.

n(1-r2)r

Son olarak, tek sürebilir pürüzsüz testi Rayner ve En İyi kitabından olduğu gibi yaklaşım ( -Uyum Testleri Smooth 1990 - ben "daha yeni thas bir kez, ve orada inanıyoruz rağmen Ar başlığına eklenen"). Üstel davada ayrıca şunlar yer almaktadır:

JCW Rayner ve DJ Best (1990), "Uyum İyiliğinin Düzgün Testleri: Genel Bir Bakış", Uluslararası İstatistiksel Değerlendirme , Cilt. 58, No. 1 (Nisan 1990), sf. 9-17

Cosma Shalizi ayrıca, Lisans İleri Veri Analizi ders notlarının bir bölümünde düzgün testler ya da Temel Bir Bakış Açısından İleri Veri Analizi kitabının Ch15'ine bakınız .

Yukarıdakilerin bazıları için, test istatistiklerinin dağılımını simüle etmeniz gerekebilir; Diğerleri için tablolar mevcuttur (ancak bu durumlarda, orijinalin sınırlı boyutta olması nedeniyle Lilliefors testinde olduğu gibi, kendini simüle etmek daha kolay olabilir veya daha doğru olabilir).

n(1-r2)


5

Kuantumlarını birbirlerine karşı çizerek iki olasılık dağılımını karşılaştırmak için grafiksel bir yöntem olan bir qq-grafiği kullanabilirsiniz .

R'de, üssel dağılım için özel olarak qq-plot fonksiyonu yoktur (en azından temel fonksiyonlar arasında). Ancak, bunu kullanabilirsiniz:

qqexp <-  function(y, line=FALSE, ...) { 
    y <- y[!is.na(y)]
    n <- length(y)
    x <- qexp(c(1:n)/(n+1))
    m <- mean(y)
    if (any(range(y)<0)) stop("Data contains negative values")
    ylim <- c(0,max(y))
    qqplot(x, y, xlab="Exponential plotting position",ylim=ylim,ylab="Ordered sample", ...)
    if (line) abline(0,m,lty=2)
    invisible()
  }

Sonuçlarınızı yorumlarken: Karşılaştırılan iki dağılım benzerse, qq grafiğindeki noktalar yaklaşık olarak y = x çizgisindedir. Dağılımlar doğrusal olarak ilişkiliyse, qq grafiğindeki noktalar yaklaşık olarak bir çizgide uzanır, ancak y = x çizgisinde olması gerekmez.


2
Stata'da, SSC'den qexpkonserve bir uygulama.
Nick Cox
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.