Interpretasi uji celup Hartigans


18

Saya ingin menemukan cara untuk mengukur intensitas bimodality dari beberapa distribusi yang saya dapatkan secara empiris. Dari apa yang saya baca, masih ada beberapa perdebatan tentang cara mengukur bimodality. Saya memilih untuk menggunakan tes dip Hartigans 'yang tampaknya menjadi satu-satunya yang tersedia di R (kertas asli: http://www.stat.washington.edu/wxs/Stat593-s03/Literature/hartigan85a.pdf ). Uji celup Hartigans didefinisikan sebagai: "Tes celup mengukur multimodality dalam sampel dengan perbedaan maksimum, di atas semua titik sampel, antara fungsi distribusi empiris, dan fungsi distribusi unimodal yang meminimalkan perbedaan maksimum" .

Saya ingin memahami sepenuhnya bagaimana saya harus menafsirkan statistik ini sebelum menggunakannya. Saya berharap bahwa tes dip akan meningkat jika distribusinya multimodal (seperti yang didefinisikan sebagai "perbedaan maksimum dari distribusi unimodal"). Tetapi : Anda dapat membaca di halaman wikipedia tentang distribusi multimoda bahwa "Nilai kurang dari 0,05 menunjukkan bimodalitas yang signifikan dan nilai lebih dari 0,05 tetapi kurang dari 0,10 menyarankan bimodalitas dengan signifikansi marjinal." . Pernyataan seperti itu berasal dari makalah ini (Gbr. 2). Menurut makalah ini, indeks uji celup mendekati 0 ketika distribusi bimodal. Itu membingungkan saya.

Untuk menginterpretasikan dengan benar uji celup Hartigans, saya membuat beberapa distribusi (kode asli dari sini ) dan saya meningkatkan nilai exp (mu2) (disebut 'Intensitas bimodularitas' mulai sekarang - Edit: Seharusnya saya menyebutnya 'Intensitas dari bimodality ' ) untuk mendapatkan bimodality. Pada grafik pertama, Anda dapat melihat beberapa contoh distribusi. Kemudian saya memperkirakan indeks diptest (grafik kedua) dan nilai p (grafik ketiga) yang terkait (package diptest ) untuk distribusi simulasi yang berbeda. Kode R yang digunakan adalah di akhir posting saya.

Apa yang saya tunjukkan di sini adalah bahwa indeks uji celup tinggi dan nilai Pv rendah ketika distribusinya bimodal. Yang bertentangan dengan apa yang dapat Anda baca di internet.

Saya bukan ahli dalam bidang statistik, sehingga saya hampir tidak mengerti makalah Hartigans. Saya ingin mendapatkan beberapa komentar tentang cara yang benar kita harus menginterpretasikan tes celup Hartigans. Apakah saya salah di suatu tempat?

Terima kasih semua. Salam,

TA

Contoh distribusi yang disimulasikan: Contoh distribusi disimulasikan

Indeks uji celup Hartigan terkait: masukkan deskripsi gambar di sini

Hart dip's dip test p.value terkait: masukkan deskripsi gambar di sini

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
Pertanyaan yang sangat teliti membahas tentang topik yang tidak jelas menurut standar ahli statistik mana pun. Pertanyaan pertama yang jelas, bahkan sebelum seseorang masuk ke interpretasi adalah, "Mengapa Anda memerlukan tes ini? Informasi apa yang dimaksudkan untuk berkomunikasi?" Dapatkah memberikan beberapa konteks tambahan untuk motivasi yang telah mengarahkan Anda pada masalah interpretasi hasil yang jauh lebih jauh di hilir dari "uji celup"? Dengan kata lain, selain kemudahan pemrograman, jalur logika apa yang telah membawa Anda ke "tes celup" sejak awal?
Mike Hunter

Terima kasih atas jawabannya, Mike. Saya sedang mengerjakan model teoritis dalam biologi evolusi dan saya sedang melakukan analisis sensitivitas. Secara khusus, saya amati bahwa memvariasikan beberapa parameter memodifikasi distribusi variabel keluaran dari unimodal ke bimodal (yang sebenarnya sangat menarik). Itu sebabnya saya mencari statistik sederhana untuk menggambarkan multimodularitas suatu distribusi. Ini akan memungkinkan saya untuk memfokuskan analisis sensitivitas pada multimodularity.
TA

Saya menemukan bahwa tes celup dapat dengan mudah dihitung dalam R dan bahwa itu dapat mengukur penyimpangan dari distribusi unimodal. Tentu saja, saya akan sangat tertarik dengan statistik lain yang menggambarkan multimodularitas suatu distribusi.
TA

Hmmm ... menyesuaikan beberapa polinomial sederhana bisa berarti pendekatan "orang miskin" untuk berurusan dengan kelengkungan yang Anda amati dan mungkin lebih mudah digunakan dan ditafsirkan daripada tes Hartigan. Anda tidak mengatakan apakah masalah Anda termasuk berurusan dengan fungsi pertumbuhan. Misalnya, dalam perkembangan manusia, ada beberapa "benjolan" yang terkenal dalam lintasan pertumbuhan pada titik-titik berbeda dari siklus kehidupan. Model nonparametrik telah ditemukan lebih cocok dan mendekati nonlinier ini daripada model parametrik.
Mike Hunter

1
Pada masalah statistik: Seperti yang dikatakan, uji celup mengambil unimodality sebagai referensi. Saya tidak berpikir keberangkatan dari itu dapat ditafsirkan dalam hal jumlah mode hanya dari nilai-P. Saya merasa lebih bermanfaat untuk menginterpretasikan sejumlah mode dengan kombinasi estimasi kepadatan dan interpretasi substantif.
Nick Cox

Jawaban:


6

Tn. Freeman (penulis makalah yang saya ceritakan) memberi tahu saya bahwa dia benar-benar hanya melihat pada Nilai Pv dari uji celup. Kebingungan ini berasal dari kalimatnya:
"Nilai HDS berkisar dari 0 hingga 1 dengan nilai kurang dari 0,05 menunjukkan bimodality yang signifikan, dan nilai lebih besar dari 0,05 tetapi kurang dari 0,10 menunjukkan bimodality dengan signifikansi marjinal" . Nilai HDS sesuai dengan Nilai Pv, dan bukan statistik uji celup. Tidak jelas di koran.

Analisis saya baik: statistik uji celup meningkat ketika distribusi menyimpang dari distribusi unimodal.

Tes bimodality dan uji Silverman juga dapat dihitung dengan mudah dalam R dan melakukan pekerjaan dengan baik.


1
Silakan daftar & gabungkan akun Anda. Anda dapat menemukan informasi tentang cara melakukan ini di bagian Akun Saya di pusat bantuan kami .
gung - Reinstate Monica
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.