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