[Mathe] Suche Verteilung

DaPhreak

Primus inter pares
ID: 30143
L
8 Mai 2006
2.417
295
Ich habe einen Zufallsprozess und würde gerne wissen, wie die Werte verteilt sind. Dazu habe ich die Wahrscheinlichkeitsdichtefunktion (PDF) und die kumulative Dichtefunktion (CDF) mal empirisch geschätzt.

Nun kann ich das leider keiner bekannten Verteilung zuordnen.

Kleiner Steckbrief:
:arrow: Mittelwert ist null.
:arrow: Die Verteilung ist symmetrisch (also alle ungeraden Momente sind null).
:arrow: Die Varianz im Experiment war ungefähr 12,7.
:arrow: Die Verteilung ist leptokurtisch (heavy-tailed), die Kurtosis ist ungefähr 17
(also µ[sub]4[/sub] / µ[sub]2[/sub][sup]2[/sup]).
:arrow: Noch ein paar Momente:
µ[sub]2[/sub] ? 12,7
µ[sub]4[/sub] ? 2745
µ[sub]6[/sub] ? 2,49 * 10[sup]6[/sup]
µ[sub]8[/sub] ? 3,6 * 10[sup]9[/sup]
:arrow: Bild PDF, CDF (empirisch):

Es ist ist definitiv keine:
:arrow: Gaussverteilung (sieht man ja schon an der Kurtosis).
:arrow: Laplace-Verteilung, die ist zu spitz.
:arrow: Cauchy-Verteilung, hab ich probiert zu fitten, haut vom tail nicht hin, Cauchy ist zu heavy-tailed (außerdem hat Cauchy ja 'ne unendliche Varianz).
:arrow: (Lévy) alpha-stabile Verteilung, hab ich auch probiert zu fitten, aber hat auch überhaupt nicht hingehauen.

So langsam gehen mir nun die Ideen aus, was es noch sein könnte. Noch jemand 'ne Idee, was ich mal testen könnte?
 
Hmm, ich sehe die Bilder nicht ;(

Vlt bringt es ja was, wenn man den Prozess an sich genauer analysiert... Was machst du den da, also wie sieht der Prozess aus und was misst du?
 
So langsam gehen mir nun die Ideen aus, was es noch sein könnte. Noch jemand 'ne Idee, was ich mal testen könnte?
Im Zweifelsfall ist alles Gauss und Abweichungen sind nur Messfehler. ;) Möglichkeiten wären auch noch die student's t Verteilung [1] oder ein gaussian mixture model [2].

Wo kommen denn die Daten her? Wenn sie nicht unbedingt gemessen sondern selbst generiert wurden, würde ich mal nachgucken, welche Zufallsgeneratoren / Verteilungsfunktionen MATLAB unterstützt.

Oder unter [3] gibt's 'nen C++ Zufallsgenerator, der diverse Verteilungsfunktionen unterstützt. Vielleicht bringt dich das 106-seitige Handbuch ja auf neue Ideen (zumindest enthält es 'ne Liste mit möglichen Verteilungsfunktionen).

MfG
Sven

[1] https://de.wikipedia.org/wiki/Studentsche_t-Verteilung
[2] https://en.wikipedia.org/wiki/Gaussian_mixture_model
[3] https://ftp.arl.mil/random
 
Dank euch schon mal für die Antworten.

Hmm, ich sehe die Bilder nicht ;(

Nicht? Hm, Mist, bei mir gehen sie...

Vlt bringt es ja was, wenn man den Prozess an sich genauer analysiert... Was machst du den da, also wie sieht der Prozess aus und was misst du?

Ähm, ja, das ist... schwierig. :biggrin:
Es sind synthetisch generierte Daten. Allerdings ist der Prozess so komplex, dass man die Dichte nicht analytisch berechnen kann. Ich habe einen Tensor der Größe 4x4x4 mit Elementen die i.i.d. zirkulär symmetrisch komplex Gaussverteilt sind. Ich weiß, dass dieser Tensor mit Wahrscheinlichkeit 1 einen Tensor-Rang von 7 hat und zerlege ihn deshalb in 7 Rang-1 Komponenten (bis ein paar Skalierungsinvarianzen ist die Zerlegung sogar eindeutig). Zu jeder Komponente kann ich deshalb drei Vektoren finden, deren äußeres Produkt die Komponente ergibt. Was ich mir anschaue sind die statistischen Eigenschaften dieser Vektoren (insgesamt also 21 Vektoren der Länge 4). Was ich schon weiß ist, dass die Elemente der Faktoren nicht korrelieren und dass sie auch zirkulär symmetrisch sind. Das einzige was mir noch fehlt ist eine Beschreibung der Verteilung des Real- und Imaginärteils. Ich glaube einfach nicht, dass man das berechnen kann.

Mathematisch runtergebrochen wäre die Fragestellung diese:
Gegeben seien 21 Zufallsvariablen X[sub]i[/sub], Y[sub]i[/sub], Z[sub]i[/sub], i=1, 2, ..., 7. Alle diese Zufallsvariablen haben eine identische Verteilung und sind statistisch unabhängig voneinander. Wie muss diese Verteilung aussehen, so dass die Zufallsvariable T, die entsteht durch:

T = Summe[sub]i=1...7[/sub] X[sub]i[/sub] * Y[sub]i[/sub] * Z[sub]i[/sub]

eine Normalverteilung hat.

Also falls Dir da 'ne mathematische Brechstange einfällt, lass es mich wissen. :mrgreen:
Hab schon versucht, die Dichte der Summe der Produkte irgendwie auszuintegrieren, aber das hat mich nicht wirklich weitergebracht.

Natürlich kann man schon anfangen mit zentralem Grenzwertsatz zu argumentieren, denn je mehr Komponenten ich summiere, desto eher wird die Summe normalverteilt, egal was die Produktterme für eine Verteilung haben. Die Antwort darauf lautet aber: 7 ist noch nicht genug. Ich habe den Zusammenhang zwischen Anzahl der Komponenten und Gauss-Ähnlichkeit mal untersucht. Dabei kam heraus:

Wenn ich N Zufallsvariablen X[sub]n[/sub], n=1, 2, ..., N habe und dann die normierte Summe bilde Z = 1/N*Summe[sub]n=1...N[/sub]X[sub]n[/sub], dann gilt für die Kurtosis von Z etwa kurt(Z) = 3+ek(X)/N, wobei ek(X) der Exzess von jeder der X[sub]n[/sub] ist. Sprich: Wenn X[sub]n[/sub] schon Gauss ist, bleibt die Summe Gauss (klar), anderenfalls konvergiert die Summe gegen Gauss bezüglich der Kurtosis mit 1/N. Dummerweise ist für das Produkt aus den drei Termen der Exzess ziemlich groß, sodass ek(X)/7 noch zu stark ist um das einigermaßen Gaussförmig aussehen zu lassen.

Im Zweifelsfall ist alles Gauss und Abweichungen sind nur Messfehler. ;)

Hehe, naja, oft aber nicht immer. Wenn ich nen inkohärenten Empfänger habe, dann quadriert der mal eben das Eingangssignal und schon wird aus meinem schönen Gaussverteilten Rauschen ein Chi Quadrat...

In dem Fall weiß ich aber, dass es nicht Gauss ist, man sieht's an der großen Kurtosis.

Möglichkeiten wären auch noch die student's t Verteilung [1] oder ein gaussian mixture model [2].

Stimmt, an GMMs hab ich noch gar nicht gedacht. Könnt ich mal versuchen zu fitten. Ich hatte halt auf eine elementare Verteilung gehofft. Aber ich probier mal, guter Tipp.

Wo kommen denn die Daten her? Wenn sie nicht unbedingt gemessen sondern selbst generiert wurden, würde ich mal nachgucken, welche Zufallsgeneratoren / Verteilungsfunktionen MATLAB unterstützt.

Wurden generiert, sogar mit Matlab, siehe oben.

Oder unter [3] gibt's 'nen C++ Zufallsgenerator, der diverse Verteilungsfunktionen unterstützt. Vielleicht bringt dich das 106-seitige Handbuch ja auf neue Ideen (zumindest enthält es 'ne Liste mit möglichen Verteilungsfunktionen).

Es ginge mir gar nicht so sehr darum, Zufallszahlen zu erzeugen, die der Verteilung folgen. Da würde mir ggf. schon was einfallen. Ich wollte zunächst mal verstehen, was für eine Dichte hier zugrunde liegt.

Aber vielleicht gibt's da ja gar keine geschlossene Form von...
 
So, will euch mal nicht vorenthalten wie es weiterging... Nach vielen Versuchen bin ich irgendwann auf die Pearson-Familie von Verteilungen gestoßen. Das tolle an denen ist, dass man Mittelwert, Varianz und Kurtosis unabhängig voneinander einstellen kann.

Den besten Fit habe ich mit einer Pearson Type VII - Verteilung hinbekomnmen. Ganz zufrieden bin ich zwar nicht, aber es ist dicht dran.

Parameter: alpha = Wurzel(2), m = 5/2.


(Die PDF, also die Dichtefunktion, links normal geplottet, rechts mit logarithmischer y-Achse, blau ist die empirische Schätzung, rot der Fit.)

Danke allen für die Mithilfe.