Prüfen auf Normalverteilung/Shapiro Test für große n

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
filou94

Prüfen auf Normalverteilung/Shapiro Test für große n

Beitrag von filou94 »

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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Prüfen auf Normalverteilung/Shapiro Test für große n

Beitrag von bigben »

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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Prüfen auf Normalverteilung/Shapiro Test für große n

Beitrag von EDi »

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.
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
Bild.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Prüfen auf Normalverteilung/Shapiro Test für große n

Beitrag von jogo »

Hallo Filou,

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)
Gruß, Jörg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Prüfen auf Normalverteilung/Shapiro Test für große n

Beitrag von bigben »

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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten