Hartigans daldırma testinin yorumlanması


18

Ampirik olarak aldığım bazı dağılımların bimodalite yoğunluğunu ölçmek için bir yol bulmak istiyorum. Okuduğum kadarıyla, bimodaliteyi ölçmenin yolu hakkında hala bazı tartışmalar var. R üzerinde mevcut olan Hartigans'ın daldırma testini kullanmayı seçtim (orijinal kağıt: http://www.stat.washington.edu/wxs/Stat593-s03/Literature/hartigan85a.pdf ). Hartigans'ın daldırma testi şu şekilde tanımlanır: "Dip testi, bir örnekte ampirik dağılım fonksiyonu ile bu maksimum farkı en aza indiren tek modlu dağılım fonksiyonu arasındaki tüm numune noktalarında maksimum farklılıkla ölçülür" .

Bu istatistikleri kullanmadan önce nasıl yorumlamam gerektiğini tamamen anlamak istiyorum. Dağılım multimodal ("unimodal dağılımından maksimum fark" olarak tanımlandığı gibi) daldırma testi artacağını bekliyordum. Ancak : wikipedia sayfasında multimodal dağılım hakkında okuyabilirsiniz . . Böyle bir ifade bu makaleden gelir (Şekil 2). Bu yazıda, dağılım bimodal olduğunda daldırma testi endeksi 0'a yakındır. Kafamı karıştırıyor.

Hartigans'ın daldırma testini doğru bir şekilde yorumlamak için bazı dağıtımlar yaptım (orijinal kod buradan ) ve exp (mu2) değerini arttırdım (bundan sonra 'Bimodülerliğin şiddeti' olarak adlandırılır) - Düzenleme: Buna 'Yoğunluk' demeliydim bimodality ' ). İlk grafikte, bazı dağıtım örneklerini görebilirsiniz. Sonra farklı benzetilmiş dağılımlar ile ilgili diptest indeksini (ikinci grafik) ve p değerini (üçüncü graphe) tahmin ettim . Kullanılan R kodu yazımın sonunda.

Burada gösterdiğim, daldırma testi endeksinin yüksek ve dağılımlar bimodal olduğunda Pvalue düşük. Hangi internette okuyabilirsiniz ne aksine.

İstatistik konusunda uzman değilim, böylece Hartigans'ın makalesini zar zor anladım. Hartigans'ın daldırma testini yorumlamamız gereken doğru yol hakkında bazı yorumlar almak istiyorum. Bir yerde yanlış mıyım?

Hepinize teşekkür ederim. Saygılarımızla,

TA

Simüle edilen dağıtım örneği: Simüle edilen dağıtım örneği

İlişkili Hartigan'ın daldırma testi endeksi: resim açıklamasını buraya girin

Hartigan'ın daldırma testi p. Değeri: resim açıklamasını buraya girin

library(diptest)
library(ggplot2)


# CONSTANT PARAMETERS
sig1 <- log(3)
sig2 <- log(3)
cpct <- 0.5
N=1000

#CREATING BIMOD DISTRIBUTION
bimodalDistFunc <- function (n,cpct, mu1, mu2, sig1, sig2) {
  y0 <- rlnorm(n,mean=mu1, sd = sig1)
  y1 <- rlnorm(n,mean=mu2, sd = sig2)

  flag <- rbinom(n,size=1,prob=cpct)
  y <- y0*(1 - flag) + y1*flag 
}

#DIP TEST
DIP_TEST <- function(bimodalData) {
  TEST <- dip.test(bimodalData)
  return(TEST$statistic[[1]])   # return(TEST$p.value[[1]])    to get the p value
}
DIP_TEST(bimodalData)


# SIMULATION
exp_mu1 = 1
max_exp_mu2 = 100
intervStep = 100
repPerInt = 10

# single distibutions
expMu2Value <- c()
bimodalData <- c()
mu1 <- log(exp_mu1)   
mu2 <- log(exp_mu1)
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(exp_mu1,length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

mu1 <- log(exp_mu1)   
mu2 <- log(max_exp_mu2)
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(max_exp_mu2,length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

mu1 <- log(exp_mu1)   
mu2 <- log(trunc((max_exp_mu2-exp_mu1)/2+1))
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(trunc((max_exp_mu2-exp_mu1)/2+1),length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

tableExamples <- data.frame(expMu2Value,bimodalData)
tableExamples$expMu2Value <- as.factor(tableExamples$expMu2Value)
ExamplePlot <- ggplot(tableExamples)+
  geom_histogram(aes(bimodalData),color='white')+
  ylab("Count")+
  xlab("")+
  facet_wrap(~expMu2Value)+
  ggtitle("Intensity of bimodularity")

# calculation of the dip test index
exp_mu2Int = seq(from=exp_mu1,to=max_exp_mu2,length.out=intervStep)
expmu2Vec = c()
dipStat = c()
testDone = c()
for(exp_mu2 in exp_mu2Int){
  mu1 <- log(exp_mu1)   
  mu2 <- log(exp_mu2)
  for(rep in 1:repPerInt){
    bimodalData <- log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2))
    diptestone = DIP_TEST(bimodalData)
    expmu2Vec = c(expmu2Vec,exp_mu2)
    dipStat = c(dipStat,diptestone)
    testDone = c(testDone,"diptest")
  }
}
table = data.frame(expmu2Vec,dipStat,testDone)

IndexPlot <- ggplot(table)+
  geom_point(aes(expmu2Vec,dipStat,color=testDone))+
  ylab("Index")+
  xlab("Intensity of Bimodularity")+
  scale_color_discrete(name="Test")

ExamplePlot
IndexPlot

3
Herhangi bir istatistikçinin standartlarına göre gizli olan bir konu hakkında çok kapsamlı bir soru. Açık olan ilk sorular, biri yorumlanmadan önce , "Neden bu teste ihtiyacınız var? Hangi bilgilerin iletişim kurması amaçlanıyor?" Sonuçların "daldırma testinden" yorumlanmasıyla ilgili çok, çok daha aşağı bir konuya yol açan motivasyonlar için ek bağlam sağlayabilir mi? Başka bir deyişle, R programlaması kolaylığından başka hangi mantık yolu sizi ilk etapta "daldırma testine" götürdü?
Mike Hunter

Cevabınız için teşekkürler, Mike. Evrimsel biyolojide teorik bir model üzerinde çalışıyorum ve hassasiyet analizi yapıyorum. Özellikle, bazı parametrelerin değiştirilmesinin bir çıkış değişkeninin unimodalden bimodal (aslında çok ilginç) dağılımını değiştirdiğini gözlemliyorum. Bu yüzden bir dağılımın multimodülerliğini tanımlamak için basit bir istatistik arıyorum. Duyarlılık analizini multimodülerliğe odaklamama izin verir.
TA

Daldırma testinin R'de kolayca hesaplanabileceğini ve tek modlu bir dağılımdan sapmayı ölçebileceğini öğrendim. Tabii ki, bir dağılımın çok modülerliğini tanımlayan diğer istatistiklerle gerçekten ilgileneceğim.
TA

Hmmm ... birkaç mütevazi polinom takmak, gözlemlediğiniz eğrisellikle başa çıkmak için "fakir bir adamın" yaklaşımı anlamına gelebilir ve Hartigan'ın testinden daha kolay bir şekilde konuşlandırılabilir ve yorumlanabilir. Sorunlarınızın herhangi bir büyüme fonksiyonu ile uğraşmayı içerip içermediğini söylemiyorsunuz. Örneğin, insani gelişmede, yaşam döngüsünün farklı noktalarında büyüme yörüngesinde iyi bilinen birkaç "çarpma" vardır. Parametrik olmayan modellerin, bu doğrusal olmayışlara parametrik modellere göre daha iyi uyduğu ve yaklaşık olduğu bulunmuştur.
Mike Hunter

1
İstatistiksel konularda: Söylendiği gibi, daldırma testi referans olarak önemsizdir. Ondan çıkışların sadece P-değerinden mod sayısı açısından yorumlanabileceğini sanmıyorum. Modların sayısının yoğunluk tahmini ve somut yorum kombinasyonu ile yorumlanmasının çok daha yararlı olduğunu gördüm.
Nick Cox

Yanıtlar:


6

Bay Freeman ( size bahsettiğim makalenin yazarı ) bana aslında sadece daldırma testinin değerine baktığını söyledi. Bu karışıklık cümlesinden kaynaklanmaktadır:
"HDS değerleri 0 ile 1 arasında değişmektedir .05'den küçük, anlamlı bimodaliteyi ve 0 .0'dan büyük ama .10'dan küçük değerler marjinal öneme sahip bimodaliteyi göstermektedir . " HDS değerleri, daldırma testi istatistiklerine değil Pvalue değerine karşılık gelir. Gazetede belli değildi.

Analizim iyi: Dağılım tek modlu bir dağılımdan saptığında daldırma testi istatistikleri artar.

Bimodality testi ve Silverman testi de R'de kolayca hesaplanabilir ve işi iyi yapabilir.


1
Lütfen hesaplarınızı kaydedin ve birleştirin. Bunun nasıl yapılacağı ile ilgili bilgileri yardım merkezimizin Hesabım bölümünde bulabilirsiniz .
gung - Monica'yı eski
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.