Wie ist die Verteilung dieser Daten?


8

Ich habe die Daten erhalten, die Verteilung der Daten geplottet und die Funktion qqnorm verwendet, aber es scheint, dass sie keiner Normalverteilung folgt. Welche Verteilung sollte ich also verwenden, um die Daten zu beschreiben?

Empirische kumulative Verteilungsfunktion Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Ein Diagramm des Histogramms kann auch zur Überprüfung nützlich sein. Es könnte wie eine Skew-T-Verteilung aussehen, anstatt ein Mischungsmodell zu benötigen.
John

1
Können Sie uns etwas darüber erzählen, warum Sie versuchen, diese Verteilung zu beschreiben? Schließlich gibt es viele Alternativen, um eine bekannte mathematische Funktion zu benennen: Kernel-Glättungen, Zusammenfassungen von n Buchstaben, das ECDF selbst und so weiter. Alle sind angemessene Beschreibungen in entsprechenden Einstellungen.
whuber

Antworten:


11

Ich schlage vor, Sie versuchen es mit Lambert W x F- Verteilungen mit schwerem Schwanz oder verzerrten Lambert W x F- Verteilungen (Haftungsausschluss: Ich bin der Autor). In R sind sie im LambertW- Paket implementiert .

Sie entstehen aus einer parametrischen, nicht-linearen Transformation einer Zufallsvariablen (RV) , zu einer schweren Schwanz (schiefe) Version . Da Gauß ist, reduziert sich der Lambert W x F mit schwerem Schwanz auf Tukeys Verteilung. (Ich werde hier die Heavy-Tail-Version skizzieren, die verzerrte ist analog.)Y Lambert W × F F hXFYLambert W×FFh

γ R U N ( 0 , 1 ) ×δ0γRUN(0,1)×Z

Z=Uexp(δ2U2)

δ>0 ZUδ=0ZU

Wenn Sie den Gaußschen Wert nicht als Basis verwenden möchten, können Sie andere Lambert W-Versionen Ihrer bevorzugten Distribution erstellen, z. B. t, uniform, gamma, exponentiell, beta, ... Für Ihren Datensatz ist jedoch ein Double Heavy- Schwanz Lambert W x Gaußsche (oder eine schiefe Lambert W xt) Verteilung scheint ein guter Ausgangspunkt zu sein.

library(LambertW)
set.seed(10)

### Set parameters ####
# skew Lambert W x t distribution with 
# (location, scale, df) = (0,1,3) and positive skew parameter gamma = 0.1
theta.st <- list(beta = c(0, 1, 3), gamma = 0.1)
# double heavy-tail Lambert W x Gaussian
# with (mu, sigma) = (0,1) and left delta=0.2; right delta = 0.4 (-> heavier on the right)
theta.hh <- list(beta = c(0, 1), delta = c(0.2, 0.4))

### Draw random sample ####
# skewed Lambert W x t
yy <- rLambertW(n=1000, distname="t", theta = theta.st)

# double heavy-tail Lambert W x Gaussian (= Tukey's hh)
zz =<- rLambertW(n=1000, distname = "normal", theta = theta.hh)

### Plot ecdf and qq-plot ####
op <- par(no.readonly=TRUE)
par(mfrow=c(2,2), mar=c(3,3,2,1))
plot(ecdf(yy))
qqnorm(yy); qqline(yy)

plot(ecdf(zz))
qqnorm(zz); qqline(zz)
par(op)

ecdf und qqplot von Lambert W x F-Verteilungen mit verzerrtem / schwerem Schwanz

θ=(β,δ)ββ=(μ,σ)β=(c,s,ν)t

### Parameter estimation ####
mod.Lst <- MLE_LambertW(yy, distname="t", type="s")
mod.Lhh <- MLE_LambertW(zz, distname="normal", type="hh")

layout(matrix(1:2, ncol = 2))
plot(mod.Lst)
plot(mod.Lhh)

Geben Sie hier die Bildbeschreibung ein

Da dieser schweren Schwanz Generation auf einem basiert bijektive Transformationen von RVs / Daten, Sie können schwere Schwänze von Daten entfernen und überprüfen , ob sie sind schön jetzt, das heißt, wenn sie Gaussian sind (und testen Sie es Normalitätstests verwendet wird ).

### Test goodness of fit ####
## test if 'symmetrized' data follows a Gaussian
xx <- get_input(mod.Lhh)
normfit(xx)

Geben Sie hier die Bildbeschreibung ein

Dies funktionierte ziemlich gut für den simulierten Datensatz. Ich schlage vor, Sie probieren es aus und sehen, ob Sie auch Gaussianize()Ihre Daten können .

Wie @whuber jedoch betonte, kann Bimodalität hier ein Problem sein. Vielleicht möchten Sie also die transformierten Daten (ohne die schweren Schwänze) einchecken, was mit dieser Bimodalität los ist, und Ihnen so Einblicke in die Modellierung Ihrer (ursprünglichen) Daten geben.


+1 Sehr klar und schön illustriert: Sie haben einige Arbeit investiert, um diese Ideen mit uns zu teilen, und ich danke Ihnen.
whuber

γRθδ

1
@ Macro: Ich habe im ursprünglichen Beitrag Änderungen vorgenommen, um diese beiden Punkte zu verdeutlichen.
Georg M. Goerg

Ich bin ein Fan und habe hier mit der Arbeit an einer Scikit-Learn-ähnlichen Version begonnen: github.com/gregversteeg/gaussianize
Greg Ver Steeg

7

Dies sieht aus wie eine asymmetrische Verteilung, die in beiden Richtungen längere Schwänze aufweist als die Normalverteilung.

  • Sie können die Langschwanzigkeit erkennen, da die beobachteten Punkte sowohl auf der linken als auch auf der rechten Seite extremer sind als unter der Normalverteilung erwartet (dh sie befinden sich jeweils unter und über der Linie).

  • Sie können die Asymmetrie erkennen, da im rechten Schwanz das Ausmaß, in dem die Punkte extremer sind als unter Normalverteilung zu erwarten, größer ist als im linken Schwanz.

Ich kann mir keine "Dosen" -Distributionen vorstellen, die diese Form haben, aber es ist nicht allzu schwer, eine Distribution mit den oben angegebenen Eigenschaften zu "kochen".

Hier ist ein simuliertes Beispiel (in R):

set.seed(1234)
x=rexp(1e3)
y=-rexp(1e3,rate=2)
z=c(x,y)
qqnorm(z)
qqline(z) # see below for the plot. 
plot( ecdf(z) ) # see below for plot (2nd plot)

exponential(1)exponential(2)

Dieses Beispiel erzeugt ein ziemlich ähnliches qqplot und eine empirische CDF (qualitativ) zu dem, was Sie sehen:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein


1
+1 Mischungsmodelle sind nützlich. Insbesondere, wenn Sie Daten haben, die unter zwei oder mehr verschiedenen Umständen generiert werden.
Seth

+1 Die Verwendung flexibler Verteilungen kann ebenfalls in Betracht gezogen werden.

@Procrastinator, auf welche flexiblen Distributionen beziehen Sie sich (oder ist das ein technischer Begriff)?
Makro

Zum Beispiel Skew-t-Verteilungen: 1 , 2 , 3 , 4 , 5 . Sie sind unimodal, enthalten einen Skewness-Parameter und einen Kurtosis-Parameter und vermeiden die Annahme in Mischungsmodellen, dass zwei oder mehr Populationen die Beobachtungen erzeugen, wie @Seth erwähnt.

1
t

0

Um herauszufinden, welche Verteilung am besten passt, würde ich zuerst einige potenzielle Zielverteilungen identifizieren: Ich würde über den realen Prozess nachdenken, der die Daten generiert hat, dann würde ich einige potenzielle Dichten an die Daten anpassen und ihre Loglikelihood-Scores vergleichen, um sie zu sehen welche potenzielle Verteilung am besten passt. Dies ist in R mit der Funktion fitdistr in der MASS-Bibliothek einfach.

Wenn Ihre Daten wie das z von Macro sind, dann:

>fitdistr(z,'cauchy',list(location=mean(z),scale=sqrt(sd(z))))$loglik
[1] -2949.068

> fitdistr(z,'normal')$loglik
[1] -3026.648

> fitdistr(z,'t')$loglik
[1] -2830.861

Dies gibt die t-Verteilung als die beste Anpassung (von denen, die wir versucht haben) für die Makrodaten. Bestätigen Sie dies mit einigen qqplots mit den Parametern von fitdistr.

> qqplot(z,rt(length(z),df=2.7))  

Vergleichen Sie dann dieses Diagramm mit den anderen Verteilungsanpassungen.


1
t

@Macro Viele Standardverteilungen können sowohl mit verzerrten als auch mit schweren Schwänzen umgehen. F und Gamma kommen zusammen mit fast allen 3 und 4 Parameterverteilungen in den Sinn. Ich habe gerade eine Antwort hinzugefügt, damit das Originalplakat eine Vorstellung davon hat, wie die Anpassungsgüte quantifiziert und numerische Vergleiche durchgeführt werden können.
Seth

Ich verstehe, aber ich versuche nur herauszufinden, ob eine "Standard" -Distribution hier funktionieren würde. Gamma und F sind beide nicht negativ und ich glaube nicht, dass Gamma diese Art von Form erreichen kann, selbst wenn Sie die Daten entsprechend verschoben haben, sodass sie nicht negativ waren.
Makro

Seth und @Macro, der EDF-Plot in der Frage weist Bimodalität auf. Vergessen Sie also, eine gute Übereinstimmung mit einer herkömmlichen Distribution zu erzielen, wenn dieser zweite Modus erfasst werden muss. Derzeit haben wir kein wirksames Kriterium für die Empfehlung einer Passform. Was ist, wenn das OP Residuen von rückläufigen Hochwasserdaten oder finanziellen Katastrophen aufweist und daher eine gute Passform im oberen Schwanz haben muss? Was ist, wenn es für ihn / sie wichtig ist, die Modi zu trennen? Die Antworten sind je nach Anwendung sehr unterschiedlich. Verteilungsanpassung muss mehr als eine blinde mathematische Übung sein!
whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.