Sto cercando di capire l'output della funzione di test di Kolmogorov-Smirnov (due campioni, due facciate). Ecco un semplice 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
Ci sono alcune cose che non capisco qui.
Dal aiuto , sembra che il p-value si riferisce all'ipotesi
var1=var2
. Tuttavia, qui ciò significherebbe che il test dice (p<0.05
):un. Non posso dire questo
X = Y
;b. Posso dire questo
X = Z
;c. Non posso dirlo
X = X
(!)
Oltre a sembrare che x sia diverso da se stesso (!), È anche abbastanza strano per me x=z
, dato che le due distribuzioni non hanno supporto sovrapposto. Come è possibile?
Secondo la definizione del test,
D
dovrebbe essere la differenza massima tra le due distribuzioni di probabilità, ma ad esempio nel caso in(x,y)
cui dovrebbe essereD = Max|P(x)-P(y)| = 4
(nel caso in cuiP(x)
,P(y)
non siano normalizzati) oD=0.3
(se sono normalizzati). Perché D è diverso da quello?Ho intenzionalmente fatto un esempio con molti legami , poiché i dati con cui sto lavorando hanno molti valori identici. Perché questo confonde il test? Ho pensato che calcolasse una distribuzione di probabilità che non dovrebbe essere influenzata da valori ripetuti. Qualche idea?