Cours 6 : Les statistiques avec R
XVII- Généralités XVIII- Les formules
XIX- Les sorties
XX- Les fonctions génériques
XX- Les fonctions génériques
XVII- Généralités
Fonctions d’analyse statistique disponibles
Package « stats » : contient les fonctions d'analyse statistique classiques (tests d’hypothèses classiques, modèles linéaires, distributions, résumés statistiques, séries temporelles, analyses multivariées). Il est chargé au démarrage. Accessibles avec
library(help="stats")
Packages spécifiques : d'autres packages de méthodes statistiques sont disponibles, distribués avec R ou à télécharger.
Exemples :
class : fonctions pour classification boot : fonctions bootstrap
stats4: fonctions stats utilisant S4
survival : analyse de survie
XVII- Généralités
Quelques fonctions dans « stats »:
Modélisation
SSlogis Modèle logistique aov Analyse de variance
glm Modèles linéaires généralisés lm Modèles linéaires
manova Analyse de variance multivariée ksmooth Kernel Regression Smoother ksmooth Kernel Regression Smoother
step Choix d’un modèle par l’algorithme Stepwise Tests
bartlett.test Test de Bartlett d’homogénéité de variances binom.test Test Binomial exact
chisq.test Test du Chi2
cor.test Test d’ Association/Correlation
t.test t-Test de Student de comparaison de moyennes var.test F Test de Fisher de comparaison de Variances wilcox.test Test de rang de Wilcoxon
ks.test Tests de Kolmogorov-Smirnov
XVII- Généralités
Estimation
density Estimation de densité par noyaux ecdf Fonction de répartition empirique Analyse des données
hclust Classifications hiérarchiques hclust Classifications hiérarchiques
kmeans Classifications par partitionnement princomp Analyse en composantes principales prccomp Analyse en composantes principales dist Calcul de matrices de distance
XVIII- Les formules
Syntaxe des principales fonctions : les formules
Certaines fonctions statistiques (en particulier les fonctions de modélisation) travaillent sur des formules (?formula):
fonction (formula=, data =…)
formula= de type réponse ~ prédicteurs
data= tableau de données éventuel dans lequel se trouvent les variables dans la formule.
réponse = variable à expliquer
predicteurs=ensemble des variables explicatives, séparées par des
symboles arithmétiques qui ont ici une signification particulière.
XVIII- Les formules
Exemple de formules : y~a : prédicteur a
y~a+b : prédicteurs a et b
y~M : autant de modèles que de predicteurs dans M (matrice) y ~ x - 1 ( ou y ~ 0 + x) : modèle sans terme constant.
y~log(b) y~log(b)
y ~ a + I(b+c) : predicteurs a et (b+c) y~a:b : interactions de a et b
y~a*b : a+b+a:b effets principaux et interaction entre a et b
y~(a+b)^2 : effets principaux a et b et interactions du second ordre a+b+a:b
y=a*b-a:b : a+b
XVIII- Les formules
Exemples de fonctions travaillant sur des formules
Exemple 1 : Régression linéaire simple (RLS)
de y sur x ( x et y quantitatives)
>
x=sample(s,200,replace=TRUE);y=3+7*x+rnorm(200,0,100)> regression=lm(y~x)
Exemple 2 : Régression linéaire multiple (RLM)
de la fertilité sur l’éducation et la mortalité infantile (toutes les variables sont quantitatives)
et la mortalité infantile (toutes les variables sont quantitatives)
> data(swiss)
>fit = lm(Fertility~ Education+Infant.Mortality,swiss)
Exemple 3 : Analyse de variance à un facteur. Ici, analyse de l’effet du facteur insecticide à 6 niveaux (spray) sur la réponse nombre d’insectes (count), basée sur l’observation de 12 cultures, tour à tour pulvérisées par les 6 insecticides (la réponse est quantitative, le facteur est un facteur)
> data(InsectSprays)
>anov=aov(sqrt(count) ~ spray, data = InsectSprays);anov
XVIII- Les formules
Autres syntaxes : D’autres fonctions travaillent sur des matrices, des vecteurs ou des data.frame (tests statistiques, analyse des
données)
XVIII- Les formules
Exemples de fonctions ne travaillant pas sur les formules
Exemple 4 : Test du chi2 : On veut tester le lien existant entre de variables
qualitatives X et Y à partir d’un échantillon sous forme de table de contingence (de croisement)
>O=matrix(c(442,514,38,6),nrow=2,byrow=TRUE)
> colnames(O)=c("homme","femme"); rownames(O)=c("voyant","aveugle")
> colnames(O)=c("homme","femme"); rownames(O)=c("voyant","aveugle") X2=chisq.test(O,correct=FALSE)
Exemple 5 : Test de student : on veut tester l’egalité entre deux moyennes au vu d’un échantillon de chaque sous-population x= (X1, . . . , Xn1) et y=(Y1, . . . , Yn2) :
>x = rnorm(100,1,1); y = rexp(200,1)
>st=t.test(x,y) #Test de student (resp. de Welch) d’égalité de moyennes si variances des
#variables égales (resp. diff érentes)
>x = rnorm(100,1,1); #avec sous populations identifiées par un facteur à deux niveaux
>z=rep(c(T,F),50) # de stratification
>st2=t.test(x~z)
XIX- Les Sorties
Pour afficher un bref résumé de l’analyse , taper le nom de l’objet créé par la fonction:
>regression #exemple 1 Call:
lm(formula = Y ~ X)
Coefficients: (paramètres estimés) (Intercept) X
Paramètres estimés.
Droite de régression : 10.91 30.53 y = x−
(Intercept) X -30.53 10.91
>anov Call:
aov(formula = sqrt(count) ~ spray, data = InsectSprays) Terms: (table d’analyse variance)
spray Residuals Sum of Squares 88.43787 26.05798 Deg. of Freedom 5 66
Residual standard error: 0.6283453 Estimated effects may be unbalanced
Somme des carrés intra-classe
Somme des carrés inter-classes (résiduels)
Ecart-type estimé des résidus Nbre de degres de libertés
XIX- Les Sorties
> X2
Pearson's Chi-squared test
data: tab
X-squared = 27.1387, df = 1, p-value = 1.894e-07
Valeur de la statistique de test du chi2
P(X>X-squared ) P(X>X-squared ) X v.a. de loi X²(1)
XIX- Les Sorties
> st
Welch Two Sample t-test data: x and y
t = -0.2178, df = 178.446, p-value = 0.8278
alternative hypothesis: true difference in means is not equal to Test t pour variances inégales
P(T>t )
T v.a. de loi T(178.446)
0
95 percent confidence interval:
-0.2648092 0.2121608
sample estimates: mean of x : 0.9544127 mean of y : 0.9807369
et x y
XIX- Les Sorties
Les fonctions statistiques de R retournent un objet de classe
empruntée au nom de la fonction (aov retourne un objet de classe
"aov", lm retourne un objet de classe "lm" , les tests retournent des objets de classe "htest " ).
Cet objet contient les résultats de l’analyse. C’est généralement une Cet objet contient les résultats de l’analyse. C’est généralement une
liste dont l'affichage est déterminé par sa classe (aov() et lm() produisent des listes différentes).
On peut regarder les éléments de l'objet liste crée et afficher les noms de la liste associée par les fonctions attributes() et
names().
XIX- Les Sorties
>names(regression) #ou names(fit)
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "xlevels" "call" "terms" "model"
[9] "xlevels" "call" "terms" "model"
> names(anov)
[1] "coefficients" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual"
[9] "contrasts" "xlevels" "call" "terms" "model"
XIX- Les Sorties
>attributes(X2)
$names
[1] "statistic" "parameter" "p.value" "method" "data.name" "observed"
[7] "expected" "residuals"
$class
[1] "htest
XIX- Les Sorties
Pour extraire les éléments de la liste , on utilise les fonctions du même nom que ces éléments :
>coefficients(fit) # ou fit$coefficients #coefficients de la regression
(Intercept) Education Infant.Mortality 48.8212736 -0.8166573 1.5187190 48.8212736 -0.8166573 1.5187190
>regression$residuals #ou residuals(regression) #residus observés
1 2 3 4 5 6 -123.946168 191.916329 -208.535569 64.916267 133.420840 84.429343 7 8 9 10 11 12 62.864581 46.774152 59.915367 -57.501492 -124.808049 166.122648 13 14 15 16 17 18 -31.454873 68.544191 15.157573 -84.833735 -8.562422 -85.613688 19 20 21 22 23 24 -23.749085 -90.788796 50.403354 39.877642 -53.584722 8.778597 25 26 27 28 29 30 1.148411 94.606969 28.210454 21.132875 -162.464691 -82.376306
XIX- Les Sorties
> X2$expected #tableau des effectifs théoriques
homme femme
voyant 458.88 497.12 aveugle 21.12 22.88
>X2$residuals
homme femme voyant -0.787994 0.7570801 aveugle 3.673039 -3.5289413
>sum(X2$residuals^2)
27.13874
la somme des carrés des résidus est la valeur du chi-deux
XX- Les fonctions génériques
Certaines fonctions sont aussi utilisées pour extraire les résultats désirés : les fonctions génériques.
Elles agissent spécifiquement en fonction de la classe de l'objet.
Les fonctions génériques ont une syntaxe unique pour tous les cas.
XX- Les fonctions génériques
Principales fonctions génériques permettant d'extraire des informations d'un objet qui résulte d'une analyse:
print() : retourne un résumé succint de l’analyse
summary() : retourne un résumé détaillé de l’analyse
df.residual() : retourne le nombre de degrés de libertés du résidu
coef (): retourne les coefficients estimés avec parfois leurs erreurs-standard coef (): retourne les coefficients estimés avec parfois leurs erreurs-standard residuals() : retourne les résidus
fitted() : retourne les valeurs ajustées par le modèle
logLik() : calcule la vraisemblance et le nombre de paramètres d’un modèle AIC() : calcule le critère d’information d’Akaike
anova():table d’analyse de la variance
plot() : graphique adapté à l’analyse. Résidus du modèle pour modélisation.
XX- Les fonctions génériques
Exemple : summary() permet d'afficher un résumé détaillé de l’analyse, spécifique à la classe de l’objet.
> apropos("^summary")
[1] "summary.aov" "summary.aovlist" "summary.glm"
[1] "summary.aov" "summary.aovlist" "summary.glm"
[4] "summary.infl" "summary.lm" "summary.manova"
[7] "summary.mlm" "summary.stepfun" "summaryRprof"
[10] "summary" "summary.connection" "summary.data.frame"
[13] "summary.Date" "summary.default" "summary.factor"
[16] "summary.matrix" "summary.POSIXct" "summary.POSIXlt"
[19] "summary.table"
>
XX- Les fonctions génériques
> summary(regression)
Call:
lm(formula = Y ~ X) Residuals:
Min 1Q Median 3Q Max
-206.89 -76.47 12.28 61.42 192.04 Tests de student de nullité des coefficients
Coefficient de détermination (=r²)
Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) -30.2553 34.3536 -0.881 0.386 X 7.4199 0.5869 12.642 4.31e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 96.41 on 28 degrees of freedom
Multiple R-Squared: 0.8509, Adjusted R-squared: 0.8456 F-statistic: 159.8 on 1 and 28 DF, p-value: 4.312e-13
coefficients
Test de fisher de
Significativite du
modèle
Ecart-type résiduel et nombre de dl des residus (n-2)
XX- Les fonctions génériques
>summary(anov)
Df Sum Sq Mean Sq F value Pr(>F) spray 5 88.438 17.688 44.799 < 2.2e-16 ***
Residuals 66 26.058 0.395 ---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Somme des carrés inter-classe
Variance inter-classe
Test de Fisher de significativité du modèle Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Somme des carrés intra-classe
Variance intra-classe