Ich versuche die Ausgabe der Kolmogorov-Smirnov-Testfunktion zu verstehen (zwei Beispiele, zweiseitig). Hier ist ein einfacher Test.
x <- c(1,2,2,3,3,3,3,4,5,6)
y <- c(2,3,4,5,5,6,6,6,6,7)
z <- c(12,13,14,15,15,16,16,16,16,17)
ks.test(x,y)
# Two-sample Kolmogorov-Smirnov test
#
#data: x and y
#D = 0.5, p-value = 0.1641
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, y) : cannot compute exact p-value with ties
ks.test(x,z)
#Two-sample Kolmogorov-Smirnov test
#data: x and z
#D = 1, p-value = 9.08e-05
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, z) : cannot compute exact p-value with ties
ks.test(x,x)
#Two-sample Kolmogorov-Smirnov test
#data: x and x
#D = 0, p-value = 1
#alternative hypothesis: two-sided
#
#Warning message:
#In ks.test(x, x) : cannot compute exact p-value with ties
Es gibt ein paar Dinge, die ich hier nicht verstehe.
Aus der Hilfe geht hervor , dass sich der p-Wert auf die Hypothese bezieht
var1=var2
. Hier würde dies jedoch bedeuten, dass der Test (p<0.05
) sagt :ein. Kann ich nicht sagen
X = Y
;b. Kann das sagen
X = Z
;c. Kann ich nicht sagen
X = X
(!)
Abgesehen davon, dass x von sich selbst (!) Verschieden ist, ist es für mich auch ziemlich seltsam, dass x=z
die beiden Verteilungen keine überlappende Unterstützung haben. Wie ist das möglich?
Nach der Definition des Tests
D
soll die maximale Differenz zwischen den beiden Wahrscheinlichkeitsverteilungen, sondern zum Beispiel in dem Fall ,(x,y)
sollte es seinD = Max|P(x)-P(y)| = 4
(in dem Fall , wennP(x)
,P(y)
nicht normalisiert ist) oderD=0.3
(wenn sie normiert ist). Warum unterscheidet sich D davon?Ich habe absichtlich ein Beispiel mit vielen Bindungen gemacht , da die Daten, mit denen ich arbeite, viele identische Werte haben. Warum verwirrt dies den Test? Ich dachte, es berechnete eine Wahrscheinlichkeitsverteilung, die durch wiederholte Werte nicht beeinflusst werden sollte. Irgendeine Idee?
quelle
dgof::ks.test(x,y,simulate.p.value=TRUE, B=1000)
als auchMatching::ks.boot(x,y, nboots=1000)
( sekhon.berkeley.edu/matching/ks.boot.html ) getestet . Sowohl D als auch der berechnete p-Wert sind in beiden Fällen absolut identisch. Das lässt mich denken, dass KS vielleicht gar nicht so schlecht ist, auch wenn man mehrere Bindungen hat und die Methode nicht garantiert funktioniert? Der Grund, warum ich KS mag, ist, dass es nicht parametrisch ist, dh ich muss keine Verteilung für die Samples annehmen.D(x,y) = sqrt(100/20)*0.3=0.67
, was immer noch anders ist.So berechnen Sie das D (aus
ks.test
Code):quelle