Test de Kolmogorov-Smirnov dans R (avec exemples)



Le test de Kolmogorov-Smirnov est utilisé pour tester si un échantillon provient ou non d’une certaine distribution.

Pour effectuer un test de Kolmogorov-Smirnov à un ou deux échantillons dans R, nous pouvons utiliser la fonction ks.test() .

Ce didacticiel montre un exemple d’utilisation pratique de cette fonction.

Exemple 1 : un échantillon de test de Kolmogorov-Smirnov

Supposons que nous disposions des exemples de données suivants :

#make this example reproducible
seed(0)

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

Connexe : Un guide des dpois, ppois, qpois et rpois dans R

Le code suivant montre comment effectuer un test de Kolmogorov-Smirnov sur cet échantillon de 100 valeurs de données pour déterminer si elles proviennent d’une distribution 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

À partir du résultat, nous pouvons voir que la statistique de test est de 0,97725 et que la valeur p correspondante est de 2,2e-16 . Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle. Nous disposons de suffisamment de preuves pour affirmer que les données de l’échantillon ne proviennent pas d’une distribution normale.

Ce résultat ne devrait pas être surprenant puisque nous avons généré les exemples de données à l’aide de la fonction rpois() , qui génère des valeurs aléatoires qui suivent une distribution de Poisson .

Exemple 2 : Test de Kolmogorov-Smirnov à deux échantillons

Supposons que nous disposions des deux exemples d’ensembles de données suivants :

#make this example reproducible
seed(0)

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

Le code suivant montre comment effectuer un test de Kolmogorov-Smirnov sur ces deux échantillons pour déterminer s’ils proviennent de la même distribution :

#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

À partir du résultat, nous pouvons voir que la statistique de test est de 0,99 et la valeur p correspondante est de 1,299e-14 . Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle. Nous disposons de suffisamment de preuves pour affirmer que les deux échantillons d’ensembles de données ne proviennent pas de la même distribution.

Ce résultat ne devrait pas non plus être surprenant puisque nous avons généré des valeurs pour le premier échantillon en utilisant la distribution de Poisson et des valeurs pour le deuxième échantillon en utilisant ladistribution normale .

Ressources additionnelles

Comment effectuer un test Shapiro-Wilk dans R
Comment effectuer un test d’Anderson-Darling dans R
Comment effectuer des tests de normalité multivariés dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *