Andreas Mattheiss wrote:
> Hallo,
>
> uuups -
>
> Am Sat, 21 Jul 2012 00:03:30 +0200 schrieb Andreas Mattheiss:
>
>> gibt es Aerger: die Standardnormalverteilung hat die Varianz 1, die
>> - auf diese Art aequivalente Dreiecksverteilung - haette dann die
>> Varianz 1, wenn a=18^0.5 ist (a ist die hier bestimmende "Ecke" der
>> Verteilung).
>
> da habe ich ein Vorzeichen ᅵbersehen - es muss heissen: a=6^0.5=2.45.
> Das deckt sich jetzt gut mit der nach meiner Idee ermittelten
> "aequivalenten" Dreiecksverteilung (a=2.35). Es waere interessant
> herauszufinden, wo der Unterschied herkommt;
Ich sehe keinen Grund fᅵr eine Gleichheit.
> ob es wirklich ein unterschiedliches Verstaendnis von "Aequivalenz" ist,
Das ist es wohl. Ich kann zumindest kein stochastisches Prinzip hinter der
minimalen quadratischen Abweichung zwischen den Verteilungsfunktionen
erkennen. Die Momentengleichheit dagegen ist wichtig: Ich weiᅵ ja nicht, was
Dein "Manager" macht, aber auch er wird (mind.) eine stochastische Variable
als Output haben. Und von der willst Du sicher zumindest die niedrigen
Momente korrekt heraus bekommen (also im Einklang mit den Momenten, die sich
mit der eigentlich gewᅵnschten Verteilung ergᅵben). Dazu ist es aber
notwendig, dass zumindest die niedrigen Momente der Eingangsverteilung
stimmen. Trivialbeispiel Random Walk: Mit Deiner Methode bekᅵmest Du da eine
um 4% zu kleine Diffusionskonstante heraus. Was nᅵtzt da dann die minimale
quadratischen Abweichung zwischen den Verteilungsfunktionen?
> oder ob beide Ansaetze auf das
> gleiche fᅵhren wᅵrden und die Differenz der etwas laessigen
> "Integration" im Tabellenkalkulationsprogramm geschuldet ist
> (Trapezsummen, zu grosse Schrittweite, man kann logischerweise nicht
> von -inf bis +inf aufaddieren etc.).
Nein, der Grund ist nicht numerischer Natur. Dein Integral ist analytisch
lᅵsbar und wird fᅵr a=2.349805 minimal.
Nochmal zum g77:
> Ich bin da wohl etwas anspruchsvoll. Ich bestimme die Dichte der vom
> Zufallsgenerator ausgeworfenen Zahlen so, dass ich sie sortiere und
> dann einfach bei 5000 Versuchen ᅵber 100 Versuche
> 100/((x(n+100)-x(x))*5000) berechne, fᅵr alle Versuche.
Ich verstehe Deine Methode nicht wirklich. Was z.B. ist x(x)? Ach so, damit
ist x(n) gemeint. Du wertest also die Steigungen in der empirisch gewonnen
Verteilungsfunktion aus, okay. Hast Du Dir ᅵberlegt, "Zappler" welcher Grᅵᅵe
bei 5000*100 Ziehungen denn zu erwarten sind?
Eine direktere und leicht zu analysierende Test-Methode ist die Unterteilung
von [0,1] in k Zᅵhltᅵpfe ("bins"). Nach der Ziehung von N Zufallszahlen
sollten deren Zᅵhlerstᅵnde binomialverteilt mit p=1/k sein, also um den
Mittelwert Np=N/k schwanken und die relative Schwankung wie sqrt((k-1)/N)
gegen Null gehen.
Eine indirekte, einfachere (wenn auch nicht 100%ig wasserdichte) Methode ist
es, das zweite Moment <xᅵ> zu bestimmen. Dessen Abweichungen von 1/3 sollten
auch ~ sqrt(1/N) verschwinden.
http://picload.org/image/drgawwa/g77_rand.png zeigt, dass g77s rand() diese
Bedingungen erfᅵllt. Angesichts des verwendeten Algorithmus' in rand() (Park
and Miller, minstd) war auch nicht zu erwarten, dass er die Gleichverteilung
nicht richtig hinbekᅵme (Probleme machen eher Korrelationen und geringe
Sequenzlᅵnge). Das heiᅵt nicht, dass Du rand() bedenkenlos verwenden
solltest. Du darfst ja ruhig hohe Ansprᅵche haben, die sollten aber immer
relativ zur hᅵchtsmᅵglichen Messlattenposition sein. D.h. Du solltest Dir
vorher ᅵberlegen, welches Ergebnis der ideale Zufallszahlengenerator liefern
wᅵrde.
Warum verwendest Du eigentlich g77? gfortran hat einen moderneren RNG namens
random_number().
> Vielleicht reichen 5000 Versuche einfach nicht, erstaunlich.
Fluktuationen verschwinden gemeinhin wie sqrt(1/N), das sind bei N=5000
immerhin noch gut 1%.
Ciao
Bernd