Bases des tests statistiques

Hypothèses
On oppose deux hypothèses complémentaires : H0 et H1,
l’hypothèse H0 formule ce que l’on souhaite rejeter/réfuter,
l’hypothèse H1 formule ce que l’on souhaite montrer.
Par exemple, si on veut montrer l’hypothèse "lot non conforme", H0 et H1 s’opposent sous la forme :
H0 : "lot conforme" contre H1 : "lot non conforme".
Notion de risque
Le risque (de première espèce) est le pourcentage de chances de rejeter H0, donc d’accepter H1,
alors que H0 est vraie. On veut que ce risque soit aussi faible que possible.
Il s’écrit sous la forme : 100α%, avec α ]0, 1[ (par exemple, 5%, soit α = 0.05).
Le réel α est alors la probabilité de rejeter H0 alors que H0 est vraie.
Le rejet de H0 est dit "significatif" si elle est rejetée au risque 5%.
Test statistique
Un test statistique est une procédure qui vise à apporter une réponse à la question :
Est-ce que les données nous permettent de rejeter H0, donc d’accepter H1, avec un faible risque de
se tromper ?
Types de test statistique sur un paramètre :
Lorsque le test statistique porte sur un paramètre inconnu θ, on dit que le test est
bilatéral si H1 est de la forme H1 : θ 6 = . . .
unilatéral à gauche (sens de <) si H1 est de la forme H1 : θ < . . .
unilatéral à droite (sens de >) si H1 est de la forme H1 : θ > . . .
p-valeur
La p-valeur est le plus petit réel α ]0, 1[ calculé à partir des données tel que l’on puisse se
permettre de rejeter H0 au risque 100α%. Autrement écrit, la p-valeur est une estimation ponctuelle
de la probabilité critique de se tromper en rejetant H0 alors que H0 est vraie.

Les logiciels actuels travaillent principalement avec cette p-valeur.
p-valeur : définition mathématique
La définition mathématique d’une p-valeur repose sur la notion de statistique de test. On appelle
statistique de test un estimateur (var fonction d’un ou plusieurs n-échantillons) tel que sa loi (ou,
éventuellement, sa loi approchée) soit connue si H0 est vraie, et qu’elle diffère selon que H0 ou H1
soit vraie. Dès lors, la p-valeur est définie par la probabilité qu’une réalisation quelconque de cette
statistique de test indique un désaccord avec H0 au moins aussi élevé que la réalisation de cette
statistique de test correspondante aux données, ceci si H0 était vraie.
Degré de significativité
La p-valeur nous donne un degré de significativité du rejet de H0.
Le rejet de H0 est dit :
significatif si p-valeur ]0.01, 0.05], symbolisé par ?,
très significatif si p-valeur ]0.001, 0.01], symbolisé par ??,
hautement significatif si p-valeur < 0.001, symbolisé par ? ? ?.
Il y a non rejet de H0 si p-valeur > 0.05.
En cas de non-rejet de H0
S’il y a non-rejet de H0, sauf convention, on ne peut rien conclure du tout (avec le risque considéré).
Éventuellement, on peut dire que H0 est plausible (elle "semble pouvoir être admise").
En revanche, peut-être qu’un risque de départ plus élevé ou la disposition de plus de données
peuvent conduire à un rejet de H0.

Comparer deux échantillons par un test de Student

Pour connaître la démarche complète de comparaison de moyennes (ou médianes) de deux ou plusieurs échantillons :

lien vers la page "Comparaison de moyennes avec R ou alternatives quand la moyenne ne le permet pas"

Étape 0 - Vérifier la normalité puis comparer la variance

shapiro.test(vecteur1)

shapiro.test(vecteur2)

var.test(vecteur1, vecteur2)

Étape 1 - Réaliser un test de Student pour comparer deux échantillons

  • vecteur 1 et 2 sont les échantillons à comparer.

  • var.equal=T parmet d'indiquer l'égalité de variance entre les échantillons (à vérifier avant).

resultat = t.test(vecteur1, vecteur2, var.equal=F)

Étape 2 - Analyser les résultats d'un test de Student

    • p-value < 0.05 - différence significative avec une probabilité de 95%

    • p-value < 0.01 - différence significative avec une probabilité de 99%

    • p-value < 0.001 - différence significative avec une probabilité de 99‰

#Récupérer la p-value : probabilité que les deux échantillons soient d'une même population

resultat$p.value

#Afficher le nombre de degré de liberté (pour calcul du test manuellement), de l'intervalle de confiance à 95% par défaut, le résultat t du test

resultat$parameter

resultat$conf.int

resultat$statistic

Exemple de test de Student

# Comparaison de x et y

x = c(1,3,2,3,2,5,3,4,2,4,4)

y = c(3,2,8,8,3,2,3,5,6,7,5)

t.test(x,y)

2- Comparer un échantillon à une moyenne d'une population

# Voici l'âge d'étudiants

x <- c(18,19,20,21,18,19,18,19,18,18,18,18,18,18,18)

# On se demande si l'âge moyen des étudiants est de 18

t.test(x, mu=18) # La réponse est c'est possible ! (p-value > 0.05)

t.test(x, mu=20) # En revanche, ce ne peut être 20 ans (p-value < 0.05)

3- Généraliser une comparaisons de plus de 3 échantillons en faisant des tests de Student paire à paire

La fonction pairwise.t.test() permet de réaliser des comparaisons paire à paire.

Contrairement à une boucle, il tiendra compte de l'ensemble des p-values pour éviter les fausses significativités inhérentes à la répétition des tests de Student. C'est une solution simple qui tient donc compte de la tous les échantillons (ajustement de la p-value) pour éviter les différences faussement significatives dues au hasard.

data(mtcars)

mtcars$carb[mtcars$carb>=4] <- 4

pairwise.t.test(mtcars$mpg,mtcars$carb)-> mon_resultat ; mon_resultat

Et voilà! tous les tests de Student ont été fait en une ligne (on peut changer aussi la méthode d'ajustement de la p-value en jouant sur l'argument p.adjust.method de la fonction pariwise.t.test()).

On peut aussi déterminer les groupes de moyennes juste après en utilisant la fonction catego() de mon packages {KefiR}.

library(KefiR)

catego(mon_resultat)

Il en résulte des groupes de moyennes (à côté).

Remarque : on peut aussi définir un groupe control pour la fonction catego() (compaison avec des étoiles).

$groups

categories groups

"1" "a"

"2" "ab"

"3" "bc"

"4" "c"

Remarque, code pour installer KefiR :

install.packages("devtools")

require(devtools) # Risque d'erreur si RTools non installé.

devtools::install_github("Antoine-Masse/KefiR")

library("KefiR")

4- Comparer des données appariées

Lorsque l'on souhaite suivre une population sur le temps et comparer ses différentes moyennes obtenues, on doit tenir compte du fait que ces moyennes sont toujours faites avec les mêmes individus.

Tenir compte du fait que l'individu le plus bas a des chances de rester bas ou l'inverse.

# Comparaison de x et y

t0 = c(1,3,2,3,2,5,3,4,2,4,4)

tn = c(3,2,8,8,3,2,3,5,6,7,5)

t.test(t0,tn, paired=T)


Modifié le: mercredi 29 juin 2022, 09:36