Test di kolmogorov-smirnov in r (con esempi)


Il test di Kolmogorov-Smirnov viene utilizzato per verificare se un campione proviene o meno da una determinata distribuzione.

Per eseguire un test di Kolmogorov-Smirnov a uno o due campioni in R, possiamo utilizzare la funzione ks.test() .

Questo tutorial mostra un esempio di come utilizzare questa funzionalità nella pratica.

Esempio 1: campione del test Kolmogorov-Smirnov

Supponiamo di avere i seguenti dati di esempio:

 #make this example reproducible
seed(0)

#generate dataset of 100 values that follows a Poisson distribution with mean=5
data <- rpois(n= 20 , lambda= 5 )

Correlati: una guida a dpois, ppois, qpois e rpois in R

Il codice seguente mostra come eseguire un test di Kolmogorov-Smirnov su questo campione di 100 valori di dati per determinare se provengono da una distribuzione normale:

 #perform Kolmogorov-Smirnov test
ks.test(data, “ pnorm ”)

	One-sample Kolmogorov–Smirnov test

data:data
D = 0.97725, p-value < 2.2e-16
alternative hypothesis: two-sided

Dal risultato, possiamo vedere che la statistica del test è 0,97725 e il corrispondente valore p è 2,2e-16 . Poiché il valore p è inferiore a 0,05, rifiutiamo l’ipotesi nulla. Abbiamo prove sufficienti per affermare che i dati del campione non provengono da una distribuzione normale.

Questo risultato non dovrebbe sorprendere poiché abbiamo generato i dati di esempio utilizzando la funzione rpois() , che genera valori casuali che seguono una distribuzione di Poisson .

Esempio 2: test di Kolmogorov-Smirnov a due campioni

Supponiamo di avere i seguenti due set di dati di esempio:

 #make this example reproducible
seed(0)

#generate two datasets
data1 <- rpois(n= 20 , lambda= 5 )
data2 <- rnorm( 100 )

Il codice seguente mostra come eseguire un test di Kolmogorov-Smirnov su questi due campioni per determinare se provengono dalla stessa distribuzione:

 #perform Kolmogorov-Smirnov test
ks.test(data1, data2)

	Two-sample Kolmogorov–Smirnov test

data: data1 and data2
D = 0.99, p-value = 1.299e-14
alternative hypothesis: two-sided

Dal risultato, possiamo vedere che la statistica del test è 0,99 e il corrispondente valore p è 1,299e-14 . Poiché il valore p è inferiore a 0,05, rifiutiamo l’ipotesi nulla. Abbiamo prove sufficienti per affermare che i due set di dati campione non provengono dalla stessa distribuzione.

Anche questo risultato non dovrebbe sorprendere poiché abbiamo generato valori per il primo campione utilizzando la distribuzione di Poisson e valori per il secondo campione utilizzando la distribuzione normale .

Risorse addizionali

Come eseguire un test di Shapiro-Wilk in R
Come eseguire un test di Anderson-Darling in R
Come eseguire test di normalità multivariati in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *