Seite 1 von 1

Kolmogorov-Smirnov Test - Datenformate

Verfasst: Di Feb 02, 2021 11:29 pm
von Isegrim
Hallo,

als Anfänger habe ich mal eine Frage: Ich will zwei Datensätze vergleichen ob die aus der gleichen Verteilung kommen. Kein Problem mit:

Code: Alles auswählen

x=c(21,21,21,21,21,21,21,21,21,21)
y=c(18,20,11,21,43,20,18,18,15,22)

ks.test(x, y, alternative="two.sided", exact = T)
Jetzt ist es aber so, dass in x und y nicht meine normalen Daten (wie beobachtet) drinstehen, sondern die absoluten Häufigkeiten. Es gibt in beiden Stichproben nur Zahlen von 0-9. Sprich ich habe in Stichprobe x 21 eine 0 beobachtet, 21 mal eine 1, ... und in Stichprobe y 18 mal eine 0, 20 mal eine 1, usw.


Stichprobe x Stichprobe y
0 21 18
1 21 20
2 21 11
3 21 21
4 21 43
5 21 20
6 21 18
7 21 18
8 21 15
9 21 22

Wie kann ich das so testen (mit den absoluten oder den relativen Häufigkeiten) als ob ich die ursprünglichen Datensätze in den Test rein gebe bei denen halt die einzelnen Ausprägungen sooft vorkommen wie in den absoluten Häufigkeiten angegeben?

Re: Kolmogorov-Smirnov Test - Datenformate

Verfasst: Mi Feb 03, 2021 9:50 am
von jogo
Hallo Isegrim,

willkommen im Forum!
Die einfachste Variante ist wohl das Wiederherstellen der originalen Daten aus den Häufigkeiten.
Das kann die Funktion rep() erledigen.

Code: Alles auswählen

x=c(21,21,21,21,21,21,21,21,21,21)
y=c(18,20,11,21,43,20,18,18,15,22)

ks.test(x, y, alternative="two.sided", exact = T)

rep(seq(x)-1, x)
rep(seq(y)-1, y)
ks.test(rep(seq(x)-1, x), rep(seq(y)-1, y), alternative="two.sided", exact = TRUE)
ks.test(rep(seq(x), x), rep(seq(y), y), alternative="two.sided", exact = TRUE)
Gruß, Jörg

Re: Kolmogorov-Smirnov Test - Datenformate

Verfasst: Mi Feb 03, 2021 10:08 am
von Isegrim
Besten dank. Funktioniert...

Re: Kolmogorov-Smirnov Test - Datenformate

Verfasst: Mi Feb 03, 2021 10:10 am
von bigben
Ich frag nochmal nach:
  • Sind in Stichprobe x für jeden Wert zufällig 21 beobachtet worden oder wurde das vor Versuchsbeginn als Gleichverteilung festgesetzt? Dann könnte man auf Gleichverteilung testen statt auf gleiche Verteilungen.
  • Der ks.test ist für kontinuierliche Verteilungen konzipiert, hier liegen aber zwei diskrete Verteilungen vor. Deshalb sollte man überlegen, ob es noch passendere Testmöglichkeiten gibt. (Deshalb auch die Warnmeldungen hinsichtlich der Bindungen, die hier ja reichlich vorliegen)
  • Wenn die Werte 0 bis 9 für nominale Kategorien stehen und die "Beobachtungen" Zählwerte sind, dann böte sich hier vielleicht ein χ²-Test an?

    Code: Alles auswählen

    x=c(21,21,21,21,21,21,21,21,21,21)
    y=c(18,20,11,21,43,20,18,18,15,22)
    m <- matrix(c(x, y), byrow = TRUE, nrow = 2)
    print(m)
    chisq.test(m)
LG,
Bernhard

Re: Kolmogorov-Smirnov Test - Datenformate

Verfasst: Mi Feb 03, 2021 10:55 am
von Isegrim
Zur Erklärung:
Also die zweite Stichprobe ist die beobachtete, wir gehen aber von Gleichverteilung aus, gegen diese also hier getestet werden soll. Daher die erste Stichprobe. Das kann man sicherlich eleganter machen als ich.
Es soll aber speziell der KS Test sein, damit man sehen kann im Vergleich zu χ² wie sich die p-Werte unterscheiden, wie sensitiv der Test reagiert.