Інтерпретація даткового тесту Хартіганса


18

Я хотів би знайти спосіб кількісної оцінки інтенсивності бімодальності деяких розподілів, отриманих емпіричним шляхом. З того, що я прочитав, все ще є дебати щодо способу кількісної оцінки бімодальності. Я вирішив використовувати тест Hartigans, який здається єдиним, доступним на R (оригінальний папір: http://www.stat.washington.edu/wxs/Stat593-s03/Literature/hartigan85a.pdf ). Тест занурення Хартігана визначається як: "Тест занурення вимірює мультимодальність у вибірці максимальною різницею по всіх точках вибірки між емпіричною функцією розподілу та функцією унімодального розподілу, яка мінімізує цю максимальну різницю" .

Я хотів би повністю зрозуміти, як я повинен інтерпретувати цю статистику перед її використанням. Я очікував, що тест на опускання збільшиться, якщо розподіл буде мультимодальним (як це визначено як "максимальна різниця від унімодального розподілу"). Але : ви можете прочитати на сторінці вікіпедії про мультимодальний розподіл, що "Значення менше 0,05 вказують на значну бімодальність і значення, що перевищують 0,05, але менше 0,10, припускають бімодальність з граничною значимістю". . Таке твердження походить з цієї статті (рис. 2). Відповідно до цієї роботи, показник зануреного тесту близький до 0, коли розподіл є бімодальним. Це мене бентежить.

Для правильної інтерпретації тесту Hartigans я сконструював деякі розподіли (вихідний код звідси ), і я збільшив значення exp (mu2) (відтепер називається "Інтенсивність бімодулярності" - Edit: я повинен був би називати це "Інтенсивність of bimodality ' ) для отримання бімодальності. У першому графіку ви можете побачити приклад розподілу. Тоді я оцінив індекс занурення (другий графік) і значення р (третій графе), пов'язаний (пакетний пробій ) з тими, що моделюють різні розподіли. Використовуваний код R знаходиться в кінці моєї публікації.

Що я тут показую, це те, що показник пробного випробування високий, а Pvalue низький, коли дистибуції бімодальні. Що суперечить тому, що ви можете прочитати в Інтернеті.

Я не є знавцем статистики, щоб я ледь зрозумів папери Хартіганса. Я хотів би отримати кілька коментарів щодо правильного способу інтерпретації тесту Hartigans. Я десь помиляюся?

Дякую всім. З повагою,

ТА

Приклад моделювання розподілу: Приклад моделювання розподілу

Пов'язаний індекс тестування Hartigan: введіть тут опис зображення

Проведений тест Hartigan p.value пов'язаний: введіть тут опис зображення

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
Дуже ретельне запитання опрацюйте тему, яка є прихованою за стандартами будь-якого статистики. Очевидними першими питаннями, перш ніж хтось навіть вступить у тлумачення, є: "Для чого потрібен цей тест? Яка інформація призначена для передачі?" Чи може надати якийсь додатковий контекст для мотивацій, які привели вас до набагато подальшого питання про інтерпретацію результатів "тестування занурень"? Іншими словами, що, крім зручності програмування wrt R, який шлях логіки в першу чергу привів вас до "тестування"?
Мистець Мисливець

Дякую за вашу відповідь, Майк. Я працюю над теоретичною моделлю в еволюційній біології, і я провожу аналіз чутливості. Зокрема, я зауважу, що зміна деяких параметрів модифікує розподіл вихідної змінної від унімодальної до бімодальної (що насправді дуже цікаво). Ось чому я шукаю просту статистику для опису мультимодулярності розподілу. Це дозволило б зосередити аналіз чутливості на мультимодулярності.
TA

Я дізнався, що тест занурення можна легко обчислити в R і що він може кількісно визначити відхилення від одномодального розподілу. Звичайно, мене дуже зацікавили б будь-які інші статистичні дані, що описують мультимодулярність розподілу.
TA

Гммм ... вміщення декількох покірних поліномів може означати підхід "бідного чоловіка" до боротьби з криволінійністю, яку ви спостерігаєте, і може бути більш легко розгорнутим та інтерпретованим, ніж тест Хартігана. Ви не говорите, чи стосуються ваших проблем вирішення будь-яких функцій росту. Наприклад, у людському розвитку є кілька відомих «ударів» у траєкторії росту в окремі точки життєвого циклу. Непараметричні моделі знайшли кращу відповідність і апроксимізацію цих нелінійностей, ніж параметричні моделі.
Майк Хантер

1
Щодо статистичних питань: Як було сказано, тест занурення приймає однозначність як орієнтир. Я не думаю, що відхилення від нього можна інтерпретувати через кількість режимів просто від P-значення. Я вважаю надзвичайно кориснішим інтерпретувати кількість режимів за допомогою поєднання оцінки щільності та предметної інтерпретації.
Нік Кокс

Відповіді:


6

Містер Фріман (автор статті, про яку я вам розповідав) сказав мені, що він насправді дивиться лише на Pvalue дип-тесту. Ця плутанина випливає із його речення:
"Значення HDS коливаються від 0 до 1 зі значеннями, меншими ніж 0,05, що вказує на значну бімодальність, і значеннями більше, ніж 0,05, але менше, ніж 10 . Значення HDS відповідає статистиці Pvalue, а не статистиці тестування. У газеті було незрозуміло.

Мій аналіз хороший: статистика пробних тестів збільшується, коли розподіл відхиляється від одномодального розподілу.

Тест на бімодальність і тест Сільвермена також можна легко обчислити в R і виконати роботу добре.


1
Будь ласка, зареєструйте та з’єднайте свої акаунти. Інформацію про те, як це зробити, ви можете знайти в розділі " Мій обліковий запис " нашого довідкового центру .
gung - Відновити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.