Standabweichung bei vielen Würfelwürfen interpretieren

Univariate Statistik.

Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon Student33344 » Mi 31. Jan 2024, 18:48

Hallo Froum, ich bin neu hier und hofe möglichst wenig Formfehler zu machen. :)

Ich hab einen Zufallszahlengenerator programmiert und möchte beweisen das dieser "Fair" ist.

Zu diesem Zweck habe ich einen Würfelsimulator gebaut der 6000 mal würfelt mithilfe des Zufallszahlengenerator.

Ich erwarte das jede Zahl 1000 mal gewürfelt wird im perfekten gleichverteilten Fall.

Men Ergebnis ist:
Erzeugte Zufallszahl - Anzahl
Zahl 1 -978
Zahl 2 -988
Zahl 3 - 1019
Zahl 4 - 971
Zahl 5 -1006
Zahl 6 - 1038

Ich habe mit Chi-Qudrat folgendes Ergebnis: 3.31

Mit Alpha = 0,05 und 5 Freiheitsgraden ist der kritische Wert 11,070

Damit ist die Hypothese bestätigt das die Werte diskret gleichverteilt sind.

Nun wollte ich noch die Standardabweichung nutzen um einen zusätzlichen "Beweis" darzulegen.

Diese beträgt 23.49.

Ist das nun hoch oder nicht? Welche Standardaweichung würde ich erwarten bei einem fairen Würfel mit 1/6 Wahrscheinlichkeit für jede Seite?

ChatGpt hat mir eine Formel gegeben mit ( 1/12* (b - a + 1)²-1 ) * n aber ich finde diese nicht im Netz. Das Ergebnis wäre aus dieser Formel: 132,29

Da 23,49 kleiner ist als 132,29 bin ich also mit meinem Zufallsgenerator im Bereich der "Fairness". Aber ich glaube das stimmt nicht.

Ich finde diese Formel als "Varianz Gleichverteilung – diskreter Fall" aber ohne n. Also mit den Anzahl der Würfelwürfen die ja egtl eine ROlle spielen oder nicht?

Was mache ich falsch? :-/
Student33344
Grünschnabel
Grünschnabel
 
Beiträge: 5
Registriert: Mi 31. Jan 2024, 18:27
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon bele » Mi 31. Jan 2024, 19:02

Du kannst ja mal mit der Varianz und der Standardabweichung der Zahlenfolge 1, 2, 3, 4, 5, 6 vergleichen...

Wenn Du findest, dass die Zahl der Würfe eine Rolle spielen sollte, dann verwechselst Du vielleicht Standardabweichung und Standardfehler?

LG, Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5782
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon Student33344 » Do 1. Feb 2024, 12:38

Wenn ich mit der Zahlenfolge 1,2,3,4,5,6 vergleiche komme ich dann nicht immer auf eine Standardabweichung von 0 weil die Zufallsvariable diskret gleichverteilt ist oder verstehe ich da was falsch?

Oh danke, Standardfehler klingt interessant auf den ersten Blick. Ich lese mich mal ein zu dem Thema. :)
Student33344
Grünschnabel
Grünschnabel
 
Beiträge: 5
Registriert: Mi 31. Jan 2024, 18:27
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon Student33344 » Do 1. Feb 2024, 13:10

Ich lese jetzt auch viel zur Stichprobenstandardabweichung. Irgendwie scheint es unzählige Möglichkeiten zu geben irgendwas zu berechnen aber nichts davon sagt irgendwas aus? :-/
Student33344
Grünschnabel
Grünschnabel
 
Beiträge: 5
Registriert: Mi 31. Jan 2024, 18:27
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon bele » Do 1. Feb 2024, 14:16

Hallo Student33344,

Zahl 1 -978
Zahl 2 -988
Zahl 3 - 1019
Zahl 4 - 971
Zahl 5 -1006
Zahl 6 - 1038

[...]

Nun wollte ich noch die Standardabweichung nutzen um einen zusätzlichen "Beweis" darzulegen.

Diese beträgt 23.49.

ich habe mal versucht, das mit Deinen konkreten Zahlen nachzurechnen. In R:

Code: Alles auswählen
c(rep(1, 978), rep(2, 988), rep(3, 1019), rep(4, 971), rep(5, 1006), rep(6, 1038)) |>
  length()
#> [1] 6000

c(rep(1, 978), rep(2, 988), rep(3, 1019), rep(4, 971), rep(5, 1006), rep(6, 1038)) |>
  sd()
#> [1] 1.711872


Es stimmt also, dass es genau 6000 Simulationsdurchgänge sind, aber deren Standardabweichung beträgt 1,7 und nicht 23,49. Du hast also sowohl ein Verständnisproblem mit den Grundbegriffen als auch ein Programmierproblem aus dem Rechenfehler resultieren.

Wenn ich hingegen die Zahlen von 1 bis 6 tausend mal wiederhole, also perfekte Gleichverteilung erzwinge, dann sieht das so aus:

Code: Alles auswählen
rep(c(1,2,3,4,5,6), 1000) |>
  sd()
#> [1] 1.707967


Dann ist die Standardabweichung auch 1,71. Dein Zufallszahlengenerator scheint besser zu funktionieren als Deine Standardabweichungsbestimmung.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5782
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

folgende User möchten sich bei bele bedanken:
Student33344

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon Student33344 » Fr 2. Feb 2024, 15:30

bele hat geschrieben:Hallo Student33344,

Zahl 1 -978
Zahl 2 -988
Zahl 3 - 1019
Zahl 4 - 971
Zahl 5 -1006
Zahl 6 - 1038

[...]

Nun wollte ich noch die Standardabweichung nutzen um einen zusätzlichen "Beweis" darzulegen.

Diese beträgt 23.49.

ich habe mal versucht, das mit Deinen konkreten Zahlen nachzurechnen. In R:

Code: Alles auswählen
c(rep(1, 978), rep(2, 988), rep(3, 1019), rep(4, 971), rep(5, 1006), rep(6, 1038)) |>
  length()
#> [1] 6000

c(rep(1, 978), rep(2, 988), rep(3, 1019), rep(4, 971), rep(5, 1006), rep(6, 1038)) |>
  sd()
#> [1] 1.711872


Es stimmt also, dass es genau 6000 Simulationsdurchgänge sind, aber deren Standardabweichung beträgt 1,7 und nicht 23,49. Du hast also sowohl ein Verständnisproblem mit den Grundbegriffen als auch ein Programmierproblem aus dem Rechenfehler resultieren.

Wenn ich hingegen die Zahlen von 1 bis 6 tausend mal wiederhole, also perfekte Gleichverteilung erzwinge, dann sieht das so aus:

Code: Alles auswählen
rep(c(1,2,3,4,5,6), 1000) |>
  sd()
#> [1] 1.707967


Dann ist die Standardabweichung auch 1,71. Dein Zufallszahlengenerator scheint besser zu funktionieren als Deine Standardabweichungsbestimmung.

LG,
Bernhard



Ich glaube auch, ich habe eine andere Abweichung berechnet.

Ich berechne im Fall "6000 mal Würfel" die Standardabweichung der Häufigkeiten jeder einzelnen Zahl. Der Wert selbst ist für mich irrelevant.

Stelle dir vor ich habe einen Würfel auf dem 6 Symbole drauf sind:
Auto, Haus, Stuhl, Boot, Flasche, Fahrrad
Mit Symbolen kann man nicht rechnen und man kann nicht sagen das ein Konfidenzinterval zwischen Haus und Stuhl liegt.

Nun möchte die Standardabweichung berechnen und berechne eigentlich nur wie weit streuen die Häufigkeiten der Symbole zum erwarteten Wert.

Ich erwarte 1000 mal Auto zu erhalten aber bekomme nur 978. Ok der Wert weicht um 22 ab von der Erwartung. Nun möchte "ausrechnen" ob 22 noch im Rahmen liegt oder ob diese Abweichung für eine Manipulation spricht.

22 selbst sagt ja erstmal nichts aus. Wenn ich 600 mal würfel erwarte ich 100 und 22 ist viel. Wenn ich 600.000 mal würfel erwartet ich 100.000 und 22 ist sehr wenig. Ich weiß das aber ich finde keine Kennzahl die mir das bestätigt.
Student33344
Grünschnabel
Grünschnabel
 
Beiträge: 5
Registriert: Mi 31. Jan 2024, 18:27
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon bele » Fr 2. Feb 2024, 16:04

Ok, ich verstehe, Du hast Dir da Deinen ganz eigenen Gleichverteilungstest gebastelt. Wenn Du bereits einen anderen Zufallszahlengenerator hättest, dem Du vertraust, dann könntest Du Dir die kritischen Werte durch Simulation selbst erstellen.

Wenn wir beispielsweise der Funktion sample.int aus R vertrauen würden, dann könnten wir hunderttausend Mal eine Stichprobe der größe 6000 ziehen, diese als Tabelle auszählen, daraus die Standardabweichung (hier als Stichprobenstandardabweichung) berechnen und uns von den hunderttausend so gewonnenen Standardabweichungen interessante Quantile ausgeben lassen. Etwa so

Code: Alles auswählen
> replicate(100000, sample.int(6, 6000, 1) |> table() |> sd()) |>
+   quantile(c(.01, .025, .05, .25, .5, .75, .95, .975, .99))
      1%     2.5%       5%      25%      50%      75%      95%    97.5%      99%
10.52616 12.83745 15.12614 23.20345 29.56349 36.43625 46.99787 50.59259 54.79416
>
>
> round(.Last.value, 2)
   1%  2.5%    5%   25%   50%   75%   95% 97.5%   99%
10.53 12.84 15.13 23.20 29.56 36.44 47.00 50.59 54.79


Naja, den Nachkommastellen trau ich auch nicht. Aber je nachdem wie wichtig das ist, könnte man den Rechner auch für mehr als hunderttausend Wiederholungen mal eine Nacht lang laufen lassen.
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5782
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

folgende User möchten sich bei bele bedanken:
Student33344

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon Student33344 » Sa 3. Feb 2024, 20:27

bele hat geschrieben:Ok, ich verstehe, Du hast Dir da Deinen ganz eigenen Gleichverteilungstest gebastelt. Wenn Du bereits einen anderen Zufallszahlengenerator hättest, dem Du vertraust, dann könntest Du Dir die kritischen Werte durch Simulation selbst erstellen.

Wenn wir beispielsweise der Funktion sample.int aus R vertrauen würden, dann könnten wir hunderttausend Mal eine Stichprobe der größe 6000 ziehen, diese als Tabelle auszählen, daraus die Standardabweichung (hier als Stichprobenstandardabweichung) berechnen und uns von den hunderttausend so gewonnenen Standardabweichungen interessante Quantile ausgeben lassen. Etwa so

Code: Alles auswählen
> replicate(100000, sample.int(6, 6000, 1) |> table() |> sd()) |>
+   quantile(c(.01, .025, .05, .25, .5, .75, .95, .975, .99))
      1%     2.5%       5%      25%      50%      75%      95%    97.5%      99%
10.52616 12.83745 15.12614 23.20345 29.56349 36.43625 46.99787 50.59259 54.79416
>
>
> round(.Last.value, 2)
   1%  2.5%    5%   25%   50%   75%   95% 97.5%   99%
10.53 12.84 15.13 23.20 29.56 36.44 47.00 50.59 54.79


Naja, den Nachkommastellen trau ich auch nicht. Aber je nachdem wie wichtig das ist, könnte man den Rechner auch für mehr als hunderttausend Wiederholungen mal eine Nacht lang laufen lassen.


Oh danke! Das erklärt nun endlich warum ich nichts zu meiner Teststrategie im Netz finde.

Ich habe nun mal die Standardabweichung wie du in deinem Beispiel.
Die perfekte Gleichverteilung erzeugt ein Standardabweichung von 1.707967. Mein Zufallsgenerator erzeugt den Wert 1.711872 was sehr nah dran liegt. Ich habe mal Testweise berechnet mit "manipulierten" Werten, also bei einer Zahl mal 100 aus der Häufigkeit entfernt und diese 100 der Häufigkeit einer anderen Zahl hinzugefügt. Dann wird die Differenz schon größer zwischen Standardabweichung perfekte Verteilung vs. Standardabweichung manipuliertes Ergebnis. Also man kann theoretisch die Standardabweichung entsprechend Vergleichen oder ergbit das keinen Sinn aus sicht der Statstik?
Student33344
Grünschnabel
Grünschnabel
 
Beiträge: 5
Registriert: Mi 31. Jan 2024, 18:27
Danke gegeben: 3
Danke bekommen: 0 mal in 0 Post

Re: Standabweichung bei vielen Würfelwürfen interpretieren

Beitragvon bele » So 4. Feb 2024, 12:47

Wüsste nicht, warum man das nicht machen sollte. Der Chiquadrat-Test hat sich aber nunmal durchgesetzt und wahrscheinlich gibt es Gründe dafür. Vielleicht ist es leichter, dafür kritische Werte anzugeben oder er hat Vorteile wenn man andere Verteilungen untersuchen will oder vielleicht sind beide auch irgendwie gleichwertig. Das kann ich Dir nicht sagen.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5782
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1358 mal in 1345 Posts

folgende User möchten sich bei bele bedanken:
Student33344


Zurück zu Mittelwert, Standardabweichung & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast