Verteilungsfunktion von Potenzgesetzen

Neue Frage »

WinnieHut Auf diesen Beitrag antworten »
Verteilungsfunktion von Potenzgesetzen
Meine Frage:
Hallo alle zusammen, ich beschäftige mich momentan im Zuge einer Seminararbeit mit Potenzgesetzten.
In einem Artikel den ich dazu gefunden habe (https://arxiv.org/pdf/cond-mat/0412004.pdf ab Seite 3), beschreibt der Autor folgendes :
- wird mit der Funktion: x=(1?r)^(?1/(2.5?1)) 1. Mio Werte für x berechnet, wobei r eine zufällige Zahl 0<r<1 ist und in einem Histogramm eingetragen(mit log scale) so erhält man einen gerade linie die hinten hinhaus starkt zum schwingen anfängt.
Die passt auch soweit bei mir
Nun aber sagt der Autor müsse man eine "Cumulative distribution function" auf x anwenden um die Schwingungen zu entfernen. Und das ist mein Problem wie kann ich diese anwenden?

Meine Ideen:
Mein Ansatz war natürlich, die "Cumulative distribution function" auf x stupide anzuwenden. Allerdings heist das ja nichts anderes als die Stammfunktion von x zu bilden. Leider ist der Exponent von x -2/3. Wird dieser nun integriert wird dieser ja positiv. Ich habe dann ja kein Potenzgesetz in der Form x^-a mehr sondern der Form x^a. Das Potenzgesetz wird mit steigendem x also immer größer.
Wie man in dem Artkel auf Seite 3 Abb.3d) sehen kann erhählt der Autor dort eine schöne gerade Linie. So etwas möchte ich am Ende auch haben, aber leider fehlt mir dazu die Formel
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von WinnieHut
mit der Funktion: x=(1?r)^(?1/(2.5?1))

Mach das bitte lesbar. Vorher lohnt es sich nicht, hier inhaltlich zu diskutieren.
WinnieHut Auf diesen Beitrag antworten »

Oh Sry, da ist beim Kpieren wohl etwas schief gegangen. Hier die richige Formel:

HAL 9000 Auf diesen Beitrag antworten »

Ok, du simulierst die stetige Zufallsgröße mit Dichte für , sonst Null. Zugehörig ist die Verteilungsfunktion ebenfalls für , sonst Null (das ergibt dann beiläufig bemerkt den Skalierungsfaktor in der Dichte ), und mit genau dieser Verteilungsfunktion simulierst du per Inversionsmethode deine Werte. Soweit so gut, das ist plausibel.

Die "cumulative distribution function" (=Verteilungsfunktion) deiner Grundgesamtheit ist ja eigentlich . Ich könnte mir aber vorstellen, dass die hier die empirische Verteilungsfunktion meinen, gewonnen aus deinen simulierten Daten . Das ist einfach

,

also die Treppenfunktion mit "Sprung" der Höhe bei jedem . Der Annäherung für wegen bekommt man dann natürlich für den doppeltlogarithmischen Plot von ungefähr eine Gerade der Steigung , na klar.

Das ganze macht aber nur Sinn für . So ganz langsam schwant mir, dass du das Konzept auch auf übertragen willst (speziell ) ? Ein Ding der Unmöglichkeit, jedenfalls nicht machbar ohne radikale Eingriffe im Modell (z.B. obere Kappungsgrenze o.ä.). unglücklich
WinnieHut Auf diesen Beitrag antworten »

vielen Dank für deine tolle Antwort! Ich habe habe jetzt eine ganze weile lang mich mit deinem Ansatz beschäftig. Ich glaub ich hab bis dahin einfach in die komplett falsche Richtung gedacht. Weile in der Tat, weiter unten befindet sich der Hinweis:
(in diesem Beispiel ging es um die Häufigkeit von Wörtern in Texten)
"in other words, if we rank the words in order, then by definition there are n words with frequency greater than or equal to that of the nth most common word. Thus the cumulative distribution P(x) is simply proportional to the rank n of a word"


Also handelt sich hierbei also wenn ich das richtig verstehe nicht um eine Empirische Verteilungsfunktion, da diese alle Werte aufnimmt, die kleiner oder gleich x sind.
Ich Suche also eine Funktion die mir die Anzhal aller Werte bestimmt die größer oder gleich x ist. Somit erhält jeder Wert von eine Frequenz. Ordner ich die Frequenzen dann entsprechend und trage sie über zwei logaritmische Achsen auf sollte ich theroretisch eine gearde Linie erhalten. Oder sehe ich das falsch?
HAL 9000 Auf diesen Beitrag antworten »

Ich kann mit dem Begriff "Frequenz" in dem Zusammenhang hier nichts anfangen, den würde ich eher der Dichte zuordnen. Ansonsten: Ja, es ist

,

d.h., in der Summe werden die Werte gezählt, die größer x sind.
 
 
WinnieHut Auf diesen Beitrag antworten »

Ich habe mich nun den Tag über versucht weiter in R einzuarbeiten. Bei der Umsetzung deiner Formel komme ich jedoch noch nicht ganz klar. Denn ich benötige ja . Also größer gleich. Ich denke daher das nicht anwendbar ist und ich die Funktion händisch über for-Schleifen nachbauen muss. Leider ist dies jedoch bei 1 Mio Werten sehr rechen/Zeit intensiv wie ich feststellen musste. Hast du zufällig eine andere Idee wie ich die Dichten in R in angemessener Zeit berechnen kann?
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von WinnieHut
und ich die Funktion händisch über for-Schleifen nachbauen muss.

Was machst du denn da genau?

Nimm die geordnete Stichprobe , dann ist einfach für alle . Das Ordnen geschieht algorithmisch mit Aufwand , und das ist der Hauptteil der Arbeit!

Eigene Performancemessungen mit C (Single-Thread auf i4770k und 64Bit-Applikation) :

Für dauert die Simulation der Werte 0.27 Sekunden, und das anschließende Ordnen 1.33 Sekunden.
WinnieHut Auf diesen Beitrag antworten »

Ich bin bis jetzt für jeden Wert alle Werte durchgelaufen und hab mitgezählt welche >= sind. Also quasi Ein Mio Mal eine Mio. Werte durchlaufen.
Ahhh das mit dem Ordnen ist eine super Idee!! Danke! Allerdings wie ist das dann wenn manche der Stichproben öfter als 1 mal auftauchen? Die erhalten dann ja andere Dichten? Oder verstehe ich da gerade etwas komplett falsch?
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von WinnieHut
Allerdings wie ist das dann wenn manche der Stichproben öfter als 1 mal auftauchen?

Zum einen passiert das nicht wirklich bei stetigen Zufallsgrößen. Zum anderen ist das kein Problem - dann hat man eben an der Stelle nicht nur die Sprunghöhe , sondern eben oder oder wie oft der Wert eben vorkommt. In der Darstellung

Zitat:
Original von HAL 9000
für alle

bedeutet ein solches dann eben, dass das entsprechende Intervall leer ist und damit der Funktionswert gar nicht vorkommt, er wird eben "übersprungen". Augenzwinkern
WinnieHut Auf diesen Beitrag antworten »

Okay weil ich überlege gerade nur wie ich das in R anstelle. Weil sagen wir die Stichproben sind aufsteigend angeordnet. Die ersten zwei sind gleich, die dritte nicht mehr. Dann gilt doch für die erste Stichprobe aller Werte sind größergleich dieser Probe. Für die dritte jedoch gilt aller Werte sind größergleich. Ich muss also heraufinden wieviele Werte gleich sind, oder etwa nicht?
HAL 9000 Auf diesen Beitrag antworten »

Ich weiß nicht, was du da mit "muss herausfinden" meinst. Eigentlich wolltest du doch plotten, mit evtl. logarithmierten Achsen, oder nicht? Und bezogen auf die genannte geordnete Stichprobe liegen da die Punkte auf dieser Kurve.
WinnieHut Auf diesen Beitrag antworten »

Ja genau, ich versuch ja quasi einen " Rank/frequency plot" zu erstellen, ähnlich wie er in dem Artikel steht. Also wenn wir einen Beispieldatensatz mit 3 Elemten wählen, der wie folgt aussieht: [1, 1, 4] dann gilt ja quasi:



k/n ist also die frequency bzw. Dichte

Wenn ich das richtig verstehe muss ich ja genau so eine Tabelle erzeugen. in die x-Achse kommt dann der Rank und in die y-Achse die Dichte. Oder gibt es da einen einfacheren Weg?
HAL 9000 Auf diesen Beitrag antworten »

Du scheinst eine andere Auffassung vom Begriff Rang zu haben, als er in der Statistik üblich ist - insbesondere was Bindungen betrifft. unglücklich
WinnieHut Auf diesen Beitrag antworten »

Tut mir wirklich sehr leid. Ich merk schon, ich bin kein Mathematiker sondern Ingenieur der sich einfach ins falsche Seminar verirrt hat. Alzuviel Stochastik hatte ich nie, und das war im Bachelor der liegt schon ein Weilchen zurück verwirrt

Aber wenn ich das in deinem Link richtig verstehe kann ich ja zum Beispiel den Mittelwert zur Rang berechnung benutzen.Aalso sehe die Tabelle wie folgt aus:


Also x-Achse = Rank, y-Achse = k/n?
Letztlich möchte ich ja wirklich nur wie du sagt einen " Rank/frequency plot" erstellen. Das kann doch nicht so schwer sein traurig
Danke aber für deine Gedult soweit!!!
HAL 9000 Auf diesen Beitrag antworten »

In der letzten Zeile steht Rang 3 statt 2.

Ich frage mich ernsthaft, wieso du soviel Zeit in dieses Klein-Klein von Bindungen (d.h. Mehrfachvorkommen von Werten) investierst, wo dieser Fall bei deinen hier ja relevanten stetigen Größen nur mit Wahrscheinlichkeit 0 vorkommt. Erstaunt1

Überhaupt verstehe ich die ganze Diskussion nicht: Ich dachte, ausgehend von dem verlinkten Artikel willst du statt des Dichteplots (frequency) einen Verteilungsfunktionsplot (cumulative distribution) machen, weil der einfach robuster ist - er muss sich z.B. auf keine numerisch heiklen Dichteschätzungen verlassen. Und zu jenem Verteilungsfunktionsplot habe ich spätestens mit

Zitat:
Original von HAL 9000
Und bezogen auf die genannte geordnete Stichprobe liegen da die Punkte auf dieser Kurve.

alles gesagt, was ich zu dem Thema beitragen kann und will.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »