Vous êtes sur la page 1sur 14

Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr.

Zahidi

ANOVA à deux facteurs – avec R commander


(AovSum et FactoMineR)
Notions théoriques: voir tableau sale de cours:
1- Ouvrir une session de R et RStudio
2- Appliquer les étapes acquises pour importer le fichier dans R commander.
3- Test de normalité, test d’égalité des variances …
4- Graphes, boite de dispersion : variable total en fonction des stades.
5-

Dataset <-readXL("C:/Users/Hp/Desktop/ZahidiMasterFPT/ANOVA/AnovaPou.xlsx",

rownames=FALSE, header=TRUE, na="", sheet="Feuil1", stringsAsFactors=TRUE)

Cliquer sur Graphes, Boite de dispersion puis voir le graphique dans plot de R studio.

Boxplot( ~ Total, data=Dataset, id.method="y")

R répond

[1] "1063" "1228" "1174" "1173" "900" "1064" "896" "1118" "1175" "1238"

Boxplot( ~ vivant, data=Dataset, id.method="y")

R répond

[1] "900" "896" "2437" "890" "895" "881" "898" "891" "885" "1006"

Contrainte: ..????

Taper la ligne de commande suivante et soumettre avant d’écrire le modèle de


l’ANOVA.

> options(contrasts=c("contr.sum","contr.sum"))

Pour établir le modèle de l’analyse de variance : modèle linéaire, il faut :

- Cliquer sur Statistiques


- Ajustement de modèles
- Modèle linéaire
- Un tableau va apparaitre
- Avec un double clic choisir la variable dépendante (variable à expliquer
Y = total) dans la première case parmi la liste des variables.
- Avec un double clic également choisir les deux facteurs (variables
indépendantes variable explicative= date et stade) pour établir le
modèle.
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

- Pour valider ce modèle, cliquer sur OK


• LinearModel.1 <- lm(Total ~ Date + stade, data=Dataset)
• summary(LinearModel.1)

> LinearModel.1 <- lm(Total ~ Date + stade, data=Dataset)

> summary(LinearModel.1)

Call:

lm(formula = Total ~ Date + stade, data = Dataset)

Residuals:

Min 1Q Median 3Q Max

-29.642 -5.123 -1.709 1.318 129.385

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 4.86943 1.94530 2.503 0.0124 *

Date -0.01355 0.01804 -0.751 0.4526

stade[T.2 mue] -2.60204 2.04390 -1.273 0.2031

stade[T.3 mue] 0.61224 2.67609 0.229 0.8191

stade[T.4 mue] -0.73469 2.67609 -0.275 0.7837

stade[T.5 mue] 0.26531 2.67609 0.099 0.9210

stade[T.F1] 13.87347 2.07289 6.693 2.66e-11 ***

stade[T.F2] -2.68571 2.07289 -1.296 0.1952

stade[T.F3] -1.12653 2.07289 -0.543 0.5869

stade[T.L1] 4.18367 2.07289 2.018 0.0437 *

stade[T.L2f] 25.01633 2.07289 12.068 < 2e-16 ***

stade[T.L2m] 0.79592 2.07289 0.384 0.7010

stade[T.Lm] 3.07347 2.07289 1.483 0.1383

stade[T.N] -2.85306 2.07289 -1.376 0.1688

stade[T.PN] 4.87347 2.07289 2.351 0.0188 *


Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 13.25 on 2680 degrees of freedom

Multiple R-squared: 0.2767, Adjusted R-squared: 0.2729

F-statistic: 73.23 on 14 and 2680 DF, p-value: < 2.2e-16

Construire la table de l’ANOVA en cliquant sur :

-Modèle

- Tests d’hypothèse

- Table de l’ANOVA

R affiche les résultats de l’ANOVA

Anova(LinearModel.1, type="II")

Anova Table (Type II tests)

Response: Total

Sum Sq Df F value Pr(>F)

Date 99 1 0.5643 0.4526

stade 179773 13 78.8156 <2e-16 ***

Residuals 470222 2680

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Example two-way anova

data(senso)
res <- AovSum(Score~ Product + Day , data=senso)
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

res

R répond:

Ftest

SS df MS F value Pr(>F)

Product 2.0278 2 1.0139 3.4428 0.04148 *

Day 25.4725 1 25.4725 86.4959 1.18e-11 ***

Residuals 12.0742 41 0.2945

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Pour faire une interaction entre le produit et le jour, taper:

> res <- AovSum(Score~ Product + Day + Product:Day, data=senso)

> res

Ftest

SS df MS F value Pr(>F)

Product 1.7773 2 0.8886 2.9876 0.06206 .

Day 25.8418 1 25.8418 86.8787 1.804e-11 ***

Product:Day 0.4738 2 0.2369 0.7964 0.45813

Residuals 11.6004 39 0.2974

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Ttest

Estimate Std. Error t value Pr(>|t|)

(Intercept) 4.5842929 0.0871239 52.6181 < 2e-16 ***

Product - 1 0.2557071 0.1225836 2.0860 0.04357 *

Product - 2 -0.2509596 0.1203159 -2.0858 0.04358 *

Product - 3 -0.0047475 0.1266521 -0.0375 0.97029


Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Day - 1 0.8120707 0.0871239 9.3209 < 2e-16 ***

Day - 2 -0.8120707 0.0871239 -9.3209 < 2e-16 ***

Product - 1 : Day - 1 0.0279293 0.1225836 0.2278 0.82096

Product - 2 : Day - 1 -0.1454040 0.1203159 -1.2085 0.23412

Product - 3 : Day - 1 0.1174747 0.1266521 0.9275 0.35935

Product - 1 : Day - 2 -0.0279293 0.1225836 -0.2278 0.82096

Product - 2 : Day - 2 0.1454040 0.1203159 1.2085 0.23412

Product - 3 : Day - 2 -0.1174747 0.1266521 -0.9275 0.35935

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Ttest

Estimate Std. Error t value Pr(>|t|)

(Intercept) 4.590736 0.081464 56.3528 < 2e-16 ***

Product - 1 0.237057 0.120675 1.9644 0.05628 .

Product - 2 -0.284745 0.114663 -2.4833 0.01720 *

Product - 3 0.047688 0.118456 0.4026 0.68935

Day - 1 0.803378 0.086382 9.3003 < 2e-16 ***

Day - 2 -0.803378 0.086382 -9.3003 < 2e-16 ***

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Dans R
- Taper la ligne de commande suivante pour importer le fichier depuis le
bureau :

donnees=read.table(file.choose(),header=TRUE,sep="\t")
- Taper entrée et choisir le fichier du répertoire.
- Taper entrée on vous donne le choix du fichier
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Taper pour s'assurer :

is.data.frame(donnees)

R répond

[1] TRUE fichier est importé.

Pour afficher les noms des colonnes: taper la fonction

names(donnes)

R répond
[1] "Date" "Stade" "Position" "Vivant" "Mort" "Parasite" "Total"

Taper la ligne de commande (ou bien installer la library):

library(FactoMineR)
R répond
Warning message:
le package ‘FactoMineR’ a été compilé avec la version R 3.3.3

Taper la ligne de commande suivante :


?AovSum
starting httpd help server ... done
Taper la ligne suivante:
data(donnees)
> res <- AovSum(Score~ Product + Day , data=senso)
> res
Ftest
SS df MS F value Pr(>F)
Product 2.0278 2 1.0139 3.4428 0.04148 *
Day 25.4725 1 25.4725 86.4959 1.18e-11 ***
Residuals 12.0742 41 0.2945
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Ttest
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.590736 0.081464 56.3528 < 2e-16 ***
Product - 1 0.237057 0.120675 1.9644 0.05628 .
Product - 2 -0.284745 0.114663 -2.4833 0.01720 *
Product - 3 0.047688 0.118456 0.4026 0.68935
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Day - 1 0.803378 0.086382 9.3003 < 2e-16 ***


Day - 2 -0.803378 0.086382 -9.3003 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> data(senso)
> res <- AovSum(Score~ Product + Day , data=senso)
> res <- AovSum(Score~ Product + Day + Product:Day, data=senso)
> res
Ftest
SS df MS F value Pr(>F)
Product 1.7773 2 0.8886 2.9876 0.06206 .
Day 25.8418 1 25.8418 86.8787 1.804e-11 ***
Product:Day 0.4738 2 0.2369 0.7964 0.45813
Residuals 11.6004 39 0.2974
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Ttest
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.5842929 0.0871239 52.6181 < 2e-16 ***
Product - 1 0.2557071 0.1225836 2.0860 0.04357 *
Product - 2 -0.2509596 0.1203159 -2.0858 0.04358 *
Product - 3 -0.0047475 0.1266521 -0.0375 0.97029
Day - 1 0.8120707 0.0871239 9.3209 < 2e-16 ***
Day - 2 -0.8120707 0.0871239 -9.3209 < 2e-16 ***
Product - 1 : Day - 1 0.0279293 0.1225836 0.2278 0.82096
Product - 2 : Day - 1 -0.1454040 0.1203159 -1.2085 0.23412
Product - 3 : Day - 1 0.1174747 0.1266521 0.9275 0.35935
Product - 1 : Day - 2 -0.0279293 0.1225836 -0.2278 0.82096
Product - 2 : Day - 2 0.1454040 0.1203159 1.2085 0.23412
Product - 3 : Day - 2 -0.1174747 0.1266521 -0.9275 0.35935
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Notions théoriques

Définition
• Étude simultanée d’un facteur A à p modalités et d’un facteur B à q modalités.
• Pour chaque couple de modalités (A, B) :

o On a un échantillon ( et ).
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

o Tous les sont de mêmes tailles .

Conditions d'applications de l'ANOVA


• les populations étudiées suivent une distribution normale

• les variances des populations sont toutes égales


(HOMOSCEDASTICITE)
• les échantillons de tailles sont prélevés aléatoirement et
indépendamment dans les populations.
Procédure de calcul d'une ANOVA
• Déterminer si les échantillons varient de la même manière.
• Si nous démontrons l'homogénéité des variances, alors nous pouvons comparer
les moyennes de ces échantillons.

Problèmes liés à l'égalité des variances


Test de l'homogénéité des variances
• : les variances sont homogènes
• : Au moins une des variances est différente des autres
→ utilisation d'un test de comparaison de plusieurs variances
Conclusion
• Si est rejetée : il est théoriquement impossible de comparer des échantillons
qui ne varient pas de la même manière.
• Si n’est pas rejetée : par conséquent, il est possible de comparer les
moyennes de tels échantillons.

ANOVA à deux facteurs - Calculs


Tests possibles
• Influence du facteur A seul
• Influence du facteur B seul
• Interaction des deux facteurs
o Si influence d'un facteur sur la moyenne des populations est différente en l'absence
ou en la présence de l'autre facteur

Hypothèses
: le facteur A n’a pas d’influence sur la moyenne des populations.

: le facteur B n’a pas d’influence sur la moyenne des populations.

: il n’y a pas d’interaction entre les facteurs A et B.

: au moins une des moyennes est différentes des autres.


Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Variances totale, factorielle, résiduelle


Pour chaque échantillon de taille , on calcule :
• Moyenne

Voir feuille 1 – 2 :
• variance expérimentale

Pour l'ensemble de l'expérience :


• Taille totale

• Moyenne générale

• Variance totale

Variance factorielle (variance intergroupe) :


• Dispersion des valeurs d’un échantillon à l’autre (influence du facteur) :

Variance résiduelle (variance intragroupe)


• Dispersion des valeurs à l’intérieur des échantillons (variabilité individuelle) :

Variance factorielle et variance résiduelle : estimation de la variance de la population ( )

MéthodeDécomposition de la variance factorielle

Tableau 33 : Décomposition de la variance factorielle

Exemple :
Problématique :
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Nous nous proposons d’analyser l’influence du temps et de trois espèces


ligneuses d’arbre sur la décomposition de la masse d’une litière constituée de
feuilles de Lierre. Pour ce faire, 24 sachets d’une masse identique de feuilles de
lierre ont été constitués, sachets permettant une décomposition naturelle. Puis une
première série de 8 sachets, choisis au hasard, a été déposée sous un chêne, une
deuxième sous un peuplier, et la dernière série sous un frêne. Après 2, 7, 10 et 16
semaines respectivement, deux sachets sont prélevés au hasard sous chaque arbre
et la masse résiduelle est déterminée pour chacun d’eux. Cette masse est exprimée
en pourcentage de la masse initiale.

Les valeurs observées sont données dans le tableau suivant :

Semaine Chêne Peuplier Frêne

2 85,10 85,20 84,30


87,60 84,90 85,75

7 75,90 73,00 72,80


72,85 75,70 70,80

10 71,60 74,15 67,10


66,95 71,85 64,95

16 62,10 67,25 58,75


64,30 60,25 59,00

Ecrire ce tableau sous forme standard, qui est celle utilisée dans la plupart des
logiciels et en particulier avec le logiciel R, c’est-à-dire avec trois colonnes, une pour
la semaine, une pour l’espèce et une pour la masse, et 24 lignes, une pour chaque sachet.

Sachets Semaine Espèces Masses


1 2 Chêne 85,10
2 2 Chêne 87,60
3 2 Peuplier 85,20
4 2 Peuplier 84,90
5 2
6 2 84,30
Frêne
7 7
85,75
.
Frêne
.
24
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Objectif :

Nous nous proposons d’utiliser l’analyse de la variance à deux facteurs. Nous


observons trois variables :

- Deux d’entre elles sont des variables contrôlées, l’espèce d’arbre, qualitative à
trois modalités, et la semaine qui peut être considérée comme qualitative à quatre
modalités.

- La troisième variable est une réponse quantitative. Donc l’analyse de la variance


à deux facteurs (semaine et espèce d’arbre) croisés, avec interaction, peut convenir,
entre autres méthodes d’analyse de ces données.

L’analyse de la variance à deux facteurs avec répétitions permet trois tests de


Fisher. Nous testons :

L’effet du premier facteur F1 : Nous testons l’égalité des I paramètres αi


correspondant aux I modalités du premier facteur

* H0 : les paramètres αi sont tous nuls


Contre

* H1 : les paramètres αi ne sont pas tous nuls.

Nous testons :

L’effet du deuxième facteur F2. Il consiste à tester l’égalité des J paramètres βj


correspondant aux J modalités du deuxième facteur

* H0 : les paramètres βj sont tous nuls

Contre

* H1 : les paramètres βj ne sont pas tous nuls.

Nous testons :
L’effet de l’interaction entre les facteurs F1 et F2. Il consiste à comparer
* H0 : les IJ paramètres (αβ)ij sont tous nuls

Contre

* H1 : les IJ paramètres (αβ)ij ne sont pas tous nuls.


Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Annexe :

Dataset <-

readXL("C:/Users/Hp/Desktop/ZahidiMasterFPT/ANOVA/Poudyna
MasterFPTRcmdr.xlsx",

rownames=FALSE, header=TRUE, na="",


sheet="PoudynaMasterFPT",

stringsAsFactors=TRUE)

Boxplot(Total~Stade, data=Dataset, id.method="y")

options(contrasts=c("contr.sum","contr.sum"))

LinearModel.1 <- lm(Total ~ Date + Stade, data=Dataset)

summary(LinearModel.1)

anova(LinearModel.1)

library(MASS, pos=17)

Confint(LinearModel.1, level=0.95)

Anova – Type I/II/III SS explained


ANOVA (and R)
The ANOVA Controversy
ANOVA is a statistical process for analysing the amount of variance that is contributed to a
sample by different factors. It was initially derived by R. A. Fisher in 1925, for the case of
balanced data (equal numbers of observations for each level of a factor).

When data is unbalanced, there are different ways to calculate the sums of squares for ANOVA.
There are at least 3 approaches, commonly called Type I, II and III sums of squares (this notation
seems to have been introduced into the statistics world from the SAS package but is now
widespread). Which type to use has led to an ongoing controversy in the field of statistics (for an
overview, see Heer [2]). However, it essentially comes down to testing different hypotheses about
the data.
Type I, II and III Sums of Squares
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

Consider a model that includes two factors A and B; there are therefore two main effects, and an
interaction, AB. The full model is represented by SS(A, B, AB).

Other models are represented similarly: SS(A, B) indicates the model with no interaction, SS(B,
AB) indicates the model that does not account for effects from factor A, and so on.

The influence of particular factors (including interactions) can be tested by examining the
differences between models. For example, to determine the presence of an interaction effect, an
F-test of the models SS(A, B, AB) and the no-interaction model SS(A, B) would be carried out.

It is convenient to define incremental sums of squares to represent these differences. Let

SS(AB | A, B) = SS(A, B, AB) – SS(A, B)


SS(A | B, AB) = SS(A, B, AB) – SS(B, AB)
SS(B | A, AB) = SS(A, B, AB) – SS(A, AB)
SS(A | B) = SS(A, B) – SS(B)
SS(B | A) = SS(A, B) – SS(A)

The notation shows the incremental differences in sums of squares, for example SS(AB | A, B)
represents “the sum of squares for interaction after the main effects”, and SS(A | B) is “the sum of
squares for the A main effect after the B main effect and ignoring interactions” [1].

The different types of sums of squares then arise depending on the stage of model reduction at
which they are carried out. In particular:

Type I, also called “sequential” sum of squares:


SS(A) for factor A.
SS(B | A) for factor B.
SS(AB | B, A) for interaction AB.
This tests the main effect of factor A, followed by the main effect of factor B after the main
effect of A, followed by the interaction effect AB after the main effects.
Because of the sequential nature and the fact that the two main factors are tested in a particular
order, this type of sums of squares will give different results for unbalanced data depending on
which main effect is considered first.
For unbalanced data, this approach tests for a difference in the weighted marginal means. In
practical terms, this means that the results are dependent on the realized sample sizes, namely
the proportions in the particular data set. In other words, it is testing the first factor without
controlling for the other factor (for further discussion and a worked example, see Zahn [4]).
Note that this is often not the hypothesis that is of interest when dealing with unbalanced
data.

Type II:
SS(A | B) for factor A.
SS(B | A) for factor B.
This type tests for each main effect after the other main effect.
Note that no significant interaction is assumed (in other words, you should test for interaction
first (SS(AB | A, B)) and only if AB is not significant, continue with the analysis for main
effects).
Faculté Polydisciplinaire Taroudant Master PACQ Cours de Statistique Pr. Zahidi

If there is indeed no interaction, then type II is statistically more powerful than type III (see
Langsrud [3] for further details).
Computationally, this is equivalent to running a type I analysis with different orders of the
factors, and taking the appropriate output (the second, where one main effect is run after
the other, in the example above).

Type III:
SS(A | B, AB) for factor A.
SS(B | A, AB) for factor B.
This type tests for the presence of a main effect after the other main effect and interaction.
This approach is therefore valid in the presence of significant interactions.
However, it is often not interesting to interpret a main effect if interactions are present
(generally speaking, if a significant interaction is present, the main effects should not be
further analysed).
If the interactions are not significant, type II gives a more powerful test.

NOTE: when data is balanced, the factors are orthogonal, and types I, II and III all give the same
results.
Summary: Usually the hypothesis of interest is about the significance of one factor while
controlling for the level of the other factors. This equates to using type II or III SS. In general, if
there is no significant interaction effect, then type II is more powerful, and follows the principle of
marginality. If interaction is present, then type II is inappropriate while type III can still be used,
but results need to be interpreted with caution (in the presence of interactions, main effects are
rarely interpretable).

Vous aimerez peut-être aussi