Hallo zusammen,
ich würde gerne meinen Datensatz bzw. eine Variable davon auf Normalverteilung prüfen.
Dies hätte ich mit dem Shapiro-Wilk-Test gemacht. R sagt mir aber, dass das nur bis zu einer Stichprobengröße von 5.000 geht.
Meine Stichprobe ist allerdings deutlich größer (um die 19.000)
Welcher Test gibt es für so eine große Stichprobe, der auf Normalverteilung/Poissonverteilung prüft? (ich schätze es ist poissonverteilt)
Danke und Liebe Grüße
Prüfen auf Normalverteilung/Shapiro Test für große n
Re: Prüfen auf Normalverteilung/Shapiro Test für große n
Hallo filou94,
darf ich als Gegenfrage stellen, warum Du so etwas machen willst? Wenn das echte und nicht etwa simulierte Daten sind, dann sind die weder normal- noch Poisson-verteilt und bei n=19000 ist die Power eines solchen Tests sehr, sehr groß. p ist also sowieso kleiner als 0,05.
Poisson oder Normalverteilung klärt sich ganz oft schon an der Frage, ob negative Zahlen und ob Nachkommastellen vorkommen. Wenn beides vernachlässigbar ist, dann sind auch die Unterschiede zwischen Normal- und Poissonverteilung meist vernachlässigbar.
Kurzum: Wenn es dafür keine Standard-R-Funktion gibt, dann solltest Du das, was Du machen willst, hinterfragen. In praktischen Fragestellungen geht es in aller Regel nicht darum, ob etwas normalverteilt, sondern ob es ausreichend ähnlich einer Normalverteilung ist. Und das testen die üblichen Verdächtigen leider nicht.
Bis dahin schlage ich vor, von Deinen 19000 erstmal eine Zufallsstichprobe der Größe 5000 zu ziehen und die auf Normalverteilung zu prüfen. Sehr gut möglich, dass sich die Frage dann schon signifikant erledigt.
LG,
Bernhard
darf ich als Gegenfrage stellen, warum Du so etwas machen willst? Wenn das echte und nicht etwa simulierte Daten sind, dann sind die weder normal- noch Poisson-verteilt und bei n=19000 ist die Power eines solchen Tests sehr, sehr groß. p ist also sowieso kleiner als 0,05.
Poisson oder Normalverteilung klärt sich ganz oft schon an der Frage, ob negative Zahlen und ob Nachkommastellen vorkommen. Wenn beides vernachlässigbar ist, dann sind auch die Unterschiede zwischen Normal- und Poissonverteilung meist vernachlässigbar.
Kurzum: Wenn es dafür keine Standard-R-Funktion gibt, dann solltest Du das, was Du machen willst, hinterfragen. In praktischen Fragestellungen geht es in aller Regel nicht darum, ob etwas normalverteilt, sondern ob es ausreichend ähnlich einer Normalverteilung ist. Und das testen die üblichen Verdächtigen leider nicht.
Bis dahin schlage ich vor, von Deinen 19000 erstmal eine Zufallsstichprobe der Größe 5000 zu ziehen und die auf Normalverteilung zu prüfen. Sehr gut möglich, dass sich die Frage dann schon signifikant erledigt.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Prüfen auf Normalverteilung/Shapiro Test für große n
mit einem n von 19000 detektierst du jede noch so kleine Abweichung von der Normalverteilung.
Ich vermute es kommt dir nicht auf die "nich so kleine Abweichung" an, sondern aAussagekraft igben erwähnte praktische Abweichung/Verteilung. Schau dir ein histogramm an und nutze dein Vorwissen zu den Daten, das hat vermutlich mehr Aussagekraft als der blöde Shapiro Test.
Ich vermute es kommt dir nicht auf die "nich so kleine Abweichung" an, sondern aAussagekraft igben erwähnte praktische Abweichung/Verteilung. Schau dir ein histogramm an und nutze dein Vorwissen zu den Daten, das hat vermutlich mehr Aussagekraft als der blöde Shapiro Test.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
![Bild](https://i.creativecommons.org/l/by/4.0/88x31.png)
Re: Prüfen auf Normalverteilung/Shapiro Test für große n
Hallo Filou,
hast Du schon diagnostische Grafiken angewendet?
Gruß, Jörg
hast Du schon diagnostische Grafiken angewendet?
Code: Alles auswählen
x <- rnorm(7000)
shapiro.test(x)
par(mfcol=c(1,2))
hist(x); qqnorm(x)
x <- rt(7000, 6) # die t-Verteilung verläuft etwas flacher als N
hist(x); qqnorm(x)
x <- rpois(7000, 0.2) # linkssteil (=rechtsschief), diskret
hist(x); qqnorm(x)
x <- rlnorm(7000) # linkssteil (=rechtsschief), stetig
hist(x); qqnorm(x)
hist(-x); qqnorm(-x) # -x rechtssteil (=linksschief), stetig
x <- c(rnorm(1000), rnorm(1000, mean=10)) # zweigipflig
hist(x); qqnorm(x)
x <- c(rnorm(1000), rnorm(200, mean=10)) # zweigipflig
hist(x); qqnorm(x)
x <- c(rnorm(1000), rnorm(200, mean=10, sd=0.3)) # zweigipflig
hist(x); qqnorm(x)
Re: Prüfen auf Normalverteilung/Shapiro Test für große n
Tja, filou hat sich nicht mehr gemeldet, wahrscheinlich will er nicht üder die Sinnhaftigkeit seines Ansinnes diskutieren. Eine mögliche Kopf-durch-die-Wand Antwort auf die enger gefasst Ausgangsfrage wäre: Es gibt ein package nortest, das verschiedene Normalverteilungstests enthält und zumindest in den Hilfetesten für keinen davon eine Höchstzahl an Datensätzen angibt. Wenn der Wunsch nach Normalverteilungstest also weiter besteht, könnte man es damit versuchen.
https://cran.r-project.org/package=nortest
Lg,
Bernhard
https://cran.r-project.org/package=nortest
Lg,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte