TESTS STATISTIQUES: COMPARAISON, INDÉPENDANCE ET RÉGRESSION LINÉAIRE Les résultats donnés par R et SAS donnent les valeurs des tests, la valeur-p ainsi que les intervalles de confiance. TEST DE COMPARAISON DE MOYENNE Nous voulons tester si la moyenne d un vecteur est égale à une certaine valeur théorique. H0: µ=µ0 H1: µ>µ0 ou µ<µ0 ou µ µ0 On rejette H0 (on pourra dire qu il y a une différence significative) si la valeur-p est plus petite que le niveau de confiance choisi. Syntaxe en R: t.test(vecteur,alternative,mu,conf.level) où: vecteur: vecteur à tester alternative: hypothèse alternative: "two.sided"(valeur par défaut),"less"ou "greater" mu: moyenne testée (µ0) conf.level: 95% par défaut Exemple 1 (R) vecteur= c(seq(7,7.2,length=40),seq(7,8,length=20)) t.test(vecteur,mu=7.25) One Sample t-test data: vecteur t = -0.4888, df = 59, p-value = 0.6268 alternative hypothesis: true mean is not equal to 7.25 95 percent confidence interval: 7.165106 7.301561 sample estimates: mean of x 7.233333 1 sur 7
Dans l exemple 1, on ne rejette pas l hypothèse que la moyenne est égale à 7.25. On remarque aussi que 7.25 fait bien partie de l intervalle de confiance (7.165,7.301) à 95%. SAS En SAS, la procédure TTEST permet de faire les tests de comparaison de moyenne. PROC TTEST data=table_donnee h0=moyenne_theorique alpha=0.05 sides= ; var variable; où: sides=2 si H1: µ µ0 sides=l si H1: µ<µ0 sides=u si H1: µ>µ0 TEST DE COMPARAISON DE MOYENNES POUR DEUX ÉCHANTILLONS INDÉPENDANTS Deux vecteurs sont mesurés dans deux échantillons indépendants. Cela peut également représenter un sous-échantillon du même échantillon mais qui présente des caractéristiques différentes (exemple: hommes vs femmes). Nous voulons tester si la différences entre les deux est égale à une certaine valeur théorique (la plupart du temps 0). Une hypothèse à vérifier est l égalité des variances entre les deux échantillons. Celle-ci va déterminer la statistique de test calculée. Si les variances sont inégales, la statistique du test ajusté peut porter plusieurs nom («unpooled», «Welch» en R ou «Satterthwaite» en SAS). Dans le cas des variances égales, le test utilise la «Pooled variance». H0: µ2-µ1=0 (Il n y a pas de différence entre les deux variables pour les deux échantillons.) H1: µ2-µ1>0 ou µ2-µ1<0 ou µ2-µ1 0 Syntaxe R: t.test(vecteur,alternative,mu,conf.level, var.equal) où var.equal=true si les variances des deux échantillons sont égales. 2 sur 7
var.equal=false si les variances des deux échantillons ne sont pas égales. Syntaxe SAS proc ttest data=table_donnee h0=moyenne_theorique alpha=0.05 sides= ; class categorie; var variable; TEST DE COMPARAISON DE MOYENNE POUR DEUX ÉCHANTILLONS APPARIÉS Deux vecteurs sont mesurés dans la même population (mêmes observations, donc dépendants). Nous voulons tester si la différences entre les deux est égale à une certaine valeur théorique. H0: µ2-µ1=0 (Il n y a pas de différence entre les deux variables pour les deux échantillons.) H1: µ2-µ1>0 ou µ2-µ1<0 ou µ2-µ1 0 Syntaxe R: t.test(vecteur1,vecteur2,alternative,mu,conf.level, paired = TRUE) Syntaxe SAS: proc ttest data=table_donnee h0=moyenne_theorique alpha=0.05 sides=; paired variable1*variable2; Exemple 2 (R) note1=rbinom(100,size=100,p=0.8) note2=rnorm(100,80,4) var.test(note1,note2) #Pour voir si globalement le vecteur note1 est différent du vecteur note2 t.test(note1,note2, var.equal = FALSE) #Pour voir si pour chaque observation, il y a une différence entre note1 et note2 t.test(note1,note2,paired=true, var.equal = FALSE) 3 sur 7
TEST DU CHI-DEUX D INDÉPENDANCE Le test du chi-deux d indépendance permet de vérifier si deux variables qualitatives sont indépendantes. Par exemple, vérifier s il y a autant d hommes et de femmes dans chacune des villes ou dans chacune des catégories d une certaine variable. Pour faire ce test, un tableau croisé des deux variables (2 par 2) est utilisé. H0: les deux variables qualitatives sont indépendante. Pour que le test soit valide, il faut qu il y ait au moins 5 observations dans chacun des croisements du tableau 2 par 2. Si ce n est pas le cas, la correction de Yates permet de calculer une statistique ajustée. Cependant, dans le cas de petits échantillons, le test exact de Fisher est davantage recommandé. Syntaxe R sans la correction:chisq.test(table(variable1,variable2),correct=false) Syntaxe R avec la correction:chisq.test(table(variable1,variable2)) Syntaxe R pour le test exact de Fisher: fisher.test(table(variable1,variable2)) Exemple 3 (R) > sexe=c(rep("f",20),rep("h",20)) > ville=rep(c(rep("montreal",10),rep("laval",10)),2) > table(ville,sexe) sexe ville F H Laval 10 10 Montreal 10 10 > chisq.test(table(ville,sexe),correct=false) Pearson's Chi-squared test data: table(ville, sexe) X-squared = 0, df = 1, p-value = 1 > ville2=c(rep("montreal",22),rep("laval",18)) > table(ville2,sexe) sexe ville2 F H Laval 0 18 Montreal 20 2 > chisq.test(table(ville2,sexe)) 4 sur 7
Pearson's Chi-squared test with Yates' continuity correctiondata: table(ville2, sexe) X-squared = 29.1919, df = 1, p-value = 6.555e-08 Test d indépendance du Chi-deux en SAS proc freq data=table_donnee; tables variable1*variable2 / CHISQ; /*Pour avoir le test exact de Fisher*/ proc freq data=table_donnee; tables variable1*variable2 / CHISQ fisher; RÉGRESSION LINÉAIRE EN R La régression linéaire permet de trouver la relation linéaire entre une variable à prédire et une série de variables explicatives. Pour une régression linéaire simple (une seule variable explicative), la syntaxe R de base est la suivante: reg <- lm(y x1) Résultat > reg Call: lm(formula = y ~ x1) Coefficients: (Intercept) x1 22.348 0.958 5 sur 7
Le résultat de la commande lm donne une liste (objet R qui comprend plusieurs autres objets R). Pour avoir le tableau d analyse de variance (ANOVA), le R 2. il faut utiliser la commande suivante: summary(reg) Pour voir graphiquement la relation entre la variable à prédire et son prédicteur: plot(x,y,main="y selon la variable prédictive x1") Pour rajouter la droite de la régression: abline(reg) Y selon la variable prédictive x1 y 35 40 45 50 55 15 20 25 30 x1 Pour une régression linéaire multiple, la commande de régression est presque la même: reg=lm(y~x1+x2) #pour avoir les statistiques du test summary(reg) Obtenir les coefficients de la régression: coef(reg) ou reg$coefficients Obtenir les résidus de la régression: reg$residuals Obtenir les valeurs prédites: reg$fitted.values 6 sur 7
RÉGRESSION LINÉAIRE EN SAS proc glm data=table_donnee; model y=x1; quit; proc glm data=table_donnee; model y=x1 x2 ; quit; POUR ALLER PLUS LOIN EN SAS PROC FORMAT PROC TABULATE PROC SQL MACROS LIEN UTILE MONSUG (http://www.monsug.ca/) dans événements passés 7 sur 7