Interpretation von Hartigans ' Dip-Test
On November 18, 2020 by adminIch möchte einen Weg finden, um die Intensität der Bimodalität einiger zu quantifizieren Verteilungen habe ich empirisch bekommen. Nach dem, was ich gelesen habe, gibt es immer noch einige Debatten darüber, wie die Bimodalität quantifiziert werden kann. Ich habe mich für den Hartigans-Dip-Test entschieden, der anscheinend der einzige auf R ist (Originalpapier: http://www.stat.washington.edu/wxs/Stat593-s03/Literature/hartigan85a.pdf ). Hartigans „Dip-Test ist definiert als: “ Der Dip-Test misst die Multimodalität in einer Probe anhand der maximalen Differenz über alle Probenpunkte zwischen der empirischen Verteilungsfunktion und der unimodalen Verteilungsfunktion, die diese maximale Differenz minimiert „.
Ich möchte vollständig verstehen, wie ich diese Statistiken interpretieren soll, bevor ich sie verwende. Ich hatte erwartet, dass der Dip-Test zunehmen würde, wenn die Verteilung multimodal ist (wie definiert als „die maximale Differenz zur unimodalen Verteilung“). Aber : Sie können auf der Wikipedia-Seite über multimodale Verteilung lesen, dass „Werte unter 0,05 signifikante Bimodalität und Werte anzeigen größer als 0,05, aber kleiner als 0,10 deuten auf eine Bimodalität mit marginaler Bedeutung hin. „. Eine solche Aussage stammt aus diesem -Papier (Abb. 2). Demnach liegt der Dip-Test-Index nahe bei 0, wenn die Verteilung bimodal ist. Es verwirrt mich.
Um den Hartigans-Dip-Test richtig zu interpretieren, habe ich einige Verteilungen erstellt (der ursprüngliche Code stammt von hier ) und ich habe zugenommen Der Wert von exp (mu2) (von nun an „Intensität der Bimodularität“ genannt – Bearbeiten: Ich hätte ihn „Intensität der Bimodalität“ nennen sollen), um die Bimodalität zu erhalten. In der ersten Grafik sehen Sie Einige Beispiele für Verteilungen. Dann schätzte ich den Diptest-Index (zweites Diagramm) und den p-Wert (dritte Graphe), die diesen verschiedenen simulierten Verteilungen zugeordnet sind (Paket Diptest ). Der verwendete R-Code befindet sich am Ende von Mein Beitrag.
Ich zeige hier, dass der Dip-Test-Index hoch und der P-Wert niedrig ist, wenn die Verteilungen bimodal sind. Was im Gegensatz zu dem steht, was Sie im Internet lesen können.
Ich bin kein Experte für Statistik, so dass ich Hartigans“ -Papier kaum verstanden habe. Ich würde gerne einige Kommentare dazu erhalten, wie wir Hartigans „Dip-Test“ richtig interpretieren sollten. Liege ich irgendwo falsch?
Vielen Dank. Grüße,
TA
Beispiel für eine simulierte Verteilung:
Hartigans Dip-Test-Index:
Hartigans Dip-Test p.Wert zugeordnet:
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
Kommentare
- Sehr gründliche Fragen zu einem Thema, das nach den Standards eines Statistikers ' geheim ist Die offensichtlichen ersten Fragen, bevor man überhaupt zur Interpretation kommt, sind: " Warum benötigen Sie diesen Test? Welche Informationen sollen kommuniziert werden? " Kann einen zusätzlichen Kontext für die Motivationen bieten, die Sie zu dem viel, viel weiter nachgelagerten Thema des Interpretation der Ergebnisse des " Dip-Tests? " Mit anderen Worten, anders als es ' s Bequemlichkeit bei der R-Programmierung, welcher logische Pfad hat Sie überhaupt zum " Dip-Test " geführt?
- Danke für deine Antwort, Mike. Ich ' arbeite an einem theoretischen Modell in der Evolutionsbiologie und führe eine Sensitivitätsanalyse durch. Insbesondere beobachte ich, dass das Variieren einiger Parameter die Verteilung einer Ausgangsvariablen von unimodal nach bimodal verändert (was eigentlich sehr interessant ist). Aus diesem Grund suche ich '
nach einer einfachen Statistik, um die Multimodularität einer Distribution zu beschreiben. Dies würde es mir ermöglichen, die Sensitivitätsanalyse auf die Multimodularität zu konzentrieren.
Antwort
Mr. Freeman (Autor des -Papiers , von dem ich Ihnen erzählt habe) sagte mir, dass er tatsächlich nur den P-Wert des Dip-Tests betrachtete. Diese Verwirrung ergibt sich aus seinem Satz:
„HDS-Werte reichen von 0 bis 1, wobei Werte von weniger als 0,05 eine signifikante Bimodalität anzeigen und Werte von mehr als 0,05, aber weniger als 0,10, was auf eine Bimodalität mit marginaler Bedeutung hinweist“ . Die HDS-Werte entsprechen dem P-Wert und nicht der Dip-Test-Statistik. Es war in der Zeitung unklar.
Meine Analyse ist gut: Die Dip-Test-Statistik steigt, wenn die Verteilung von einer unimodalen Verteilung abweicht.
Bimodalitätstest und Silverman-Test können auch einfach in R berechnet werden und machen die Arbeit gut.
Kommentare
- Bitte registrieren Sie & führen Sie Ihre Konten zusammen. Informationen dazu finden Sie im Abschnitt Mein Konto in unserem Hilfezentrum .
Schreibe einen Kommentar