GNU R: ks.test
Beispiel: Test auf Normalverteilung
[Bearbeiten]Erstellen wir zunächst einen Vektor mit 20 standard-normalverteilten Elementen (mean=0 und sd=1 sind default-Werte für die Funktion rnorm und können im Funktionsaufruf auch weggelassen werden).
> x <- rnorm(20, mean=0, sd=1) > x [1] -0.7685445027 -2.6086489321 -1.1975688308 0.0004820549 -2.2016151319 [6] -0.1426615516 -1.2764168586 -0.6125727896 1.3486793510 0.6269263033 [11] -1.8587557887 0.6096185051 1.4032017285 1.7415871020 1.4178943117 [16] -0.4930871916 -0.1126935784 0.7253699582 -0.0046471234 -0.6717901917
Als zweites erstellen wir einen normalverteilten Vektor (mu=5, sd=1/3).
> y <- rnorm(20, mean=5, sd=1/3) > y [1] 5.114893 4.921354 4.990195 4.810592 5.804219 5.089406 5.094644 4.461275 [9] 5.009742 5.203696 4.872939 4.872820 4.619840 5.376655 4.964439 5.477723 [17] 5.302163 5.579908 4.970858 4.900186
Jetzt erstellen wir noch einen nicht-normalverteilten Vektor.
z <- c(1,1,1,1,1,45,99) > z [1] 1 1 1 1 1 45 99
Wenden wir nun den Kolmogorow-Smirnow-Test auf diese Vektoren an:
> ks.test(x, "pnorm") One-sample Kolmogorov-Smirnov test data: x D = 0.1498, p-value = 0.7059
Der p-Wert ist größer als 0.05 => Die Nullhypothese kann nicht widerlegt werden. Man kann den Schluss ziehen, dass Normalverteilung vorliegt.
> ks.test(y, "pnorm", mean=5, sd=1/3) One-sample Kolmogorov-Smirnov test data: y D = 0.2196, p-value = 0.2505
Der p-Wert ist größer als 0.05 => Die Nullhypothese kann nicht widerlegt werden. Man kann den Schluss ziehen, dass Normalverteilung vorliegt.
> ks.test(z, "pnorm") One-sample Kolmogorov-Smirnov test data: z D = 0.8413, p-value = 9.935e-05
Der p-Wert ist kleiner als 0.05 => Die Nullhypothese kann widerlegt werden. Man kann den Schluss ziehen, dass keine Normalverteilung vorliegt.
Achtung! Der p-Wert alleine kann auch in die Irre führen:
> x=rnorm(2000) > ks.test(x,"pnorm") One-sample Kolmogorov-Smirnov test data: x D = 0.0344, p-value = 0.01768
Hier ist der p-Wert klar kleiner als 0.05, was fälschlicherweise zum Verwerfen der Nullhypothese führen könnte (Fehler 1. Art).