Principes d'expérimentation :
planification des expériences et analyse de leurs résultats
Utilisation de R pour l'exemple du paragraphe 7.5
par Emmanuel Nowak
| 7.5.1 Présentation et données |
| 7.5.2 Analyse des résultats |
7.5 Exemple 2 : expérience en blocs aléatoires complets et bandes croisées
1° Présentation générale
Se référer au paragraphe correspondant du livre. Il s'agit de comparer 8 mélanges fourragers associés à 2 doses d'engrais azoté. Un mélange est déterminé par la variété d'avoine utilisée ainsi que la proportion d'avoine et de vesce. Les rendements obtenus s'expriment en tonnes de matière sèche par hectare.
2° Dispostif expérimental et données
Pour chacun des 16 objets ainsi définis, on dispose de 2 répétitions effectuées sur 2 blocs selon un dispositif en bandes croisées, exposé au paragraphe 7.1.3 du livre et représenté par la figure 7.5.1.
Il faut d'abord importer les données fournies dans le fichier 'exp075.txt' et diviser les valeurs des rendements qui y sont contenues par 100 pour obtenir les valeurs réelles en tonnes par ha. On suppose que ce fichier a été chargé dans 'C:\Dagnelie'. Par ailleurs, deux colonnes supplémentaires 'Prop' et 'Var', précisant la variété d'avoine et sa proportion déterminant le mélange, seront utiles pour la suite :
| exp075 <- read.table("C:/Dagnelie/expdonn/txt/exp075.txt",sep="\t",header=T) exp075$Rend <- exp075$Rend/100 mel <- exp075$Melan exp075$Prop <- factor(ifelse(mel %in% c(1,3,5,7),"50-50","25-75")) exp075$Var <- factor(ifelse(mel %in% 1:2,"A",ifelse(mel %in% 3:4,"B",ifelse(mel %in% 5:6,"C","AB")))) exp075[1:5,] |
Melan Azote Bloc Rend Prop Var 1 6 2 1 5.79 25-75 C 2 4 2 1 8.67 25-75 B 3 1 2 1 7.97 50-50 A 4 8 2 1 7.61 25-75 AB 5 5 2 1 8.69 50-50 C |
Enfin, les mélanges fourragers, doses d'azote et blocs sont des variables qualitatives et doivent être déclarées comme telles:
| exp075$Melan <- factor(exp075$Melan) exp075$Azote <- factor(exp075$Azote, labels=c("30","60")) exp075$Bloc <- factor(exp075$Bloc) |
1° Examen préliminaire
Des statistiques sommaires sur le rendement sont données par la fonction 'summary' :
| attach(exp075) summary(Rend) |
Min. 1st Qu. Median Mean 3rd Qu. Max. 3.550 5.465 6.275 6.697 8.018 10.610 |
Les représentations graphiques des données s'obtiennent à l'aide de la fonction 'stripchart', puisqu'on souhaite avoir le rendement (quantitatif) en fonction du mélange (qualitatif) ou de la dose d'azote. La fonction 'par' permet de modifier certains paramètres graphiques, en particulier de diviser la fenêtre, ici en deux (l'agrandir ensuite).
| par(mfrow=c(1,2),las=1) stripchart(Rend~Melan, vertical=T, pch=21, xlab="MÈlanges fourragers", ylab="Rendements (t/ha)") stripchart(Rend~Azote, at=c(1.2,1.8), vertical=T, pch=21, xlab="Azote (u/ha)", ylab="Rendements (t/ha)") detach(exp075) |

2° Première analyse de la variance
Il faut ici réaliser une analyse de la variance à trois facteurs croisés, en spécifiant dans un terme d'erreur les variations résiduelles qui serviront de base de comparaison pour les tests. Notons qu'une transformation logarithmique doit être appliquée aux données initiales afin de stabiliser les variances.
| model1 <- aov(log10(Rend)~Melan*Azote+Error(Melan*Azote*Bloc-Melan*Azote), data=exp075) summary(model1) |
Error: Bloc
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 1 0.037397 0.037397
Error: Melan:Bloc
Df Sum Sq Mean Sq F value Pr(>F)
Melan 7 0.136850 0.019550 4.7651 0.02825 *
Residuals 7 0.028719 0.004103
---
Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1
Error: Azote:Bloc
Df Sum Sq Mean Sq F value Pr(>F)
Azote 1 0.096953 0.096953 28.448 0.118
Residuals 1 0.003408 0.003408
Error: Melan:Azote:Bloc
Df Sum Sq Mean Sq F value Pr(>F)
Melan:Azote 7 0.090646 0.012949 1.9118 0.2060
Residuals 7 0.047413 0.006773
|
Le carré moyen du facteur blocs vaut 0,0374 et ne sert de base de comparaison pour aucun test. Le carré moyen de l'interaction mélanges-blocs vaut 0,0041 et sert de base de comparaison pour tester l'effet du facteur mélanges, etc.
Remarque : avant d'interpréter les résultats de l'analyse de la variance, il faut en vérifier la validité des conditions d'application. La procédure est exactement la même que celle de l'exemple du paragraphe 5.4. Elle n'est donc pas reprise dans cette page.
3° Deuxième analyse de la variance
Dans cette analyse, les carrés moyens des trois interactions faisant intervenir le facteur blocs sont regroupés en une seule composante dite résiduelle. Cette composante sert de base de comparaison pour les tests (le facteur blocs ne devant cependant pas être testé par rapport à cette composante, il ne faut pas tenir compte du degré de signification obtenu pour celui-ci). Il s'agit donc d'un modèle classique d'analyse de la variance à trois facteurs où la seule interaction spécifiée est celle entre mélanges et azote.
| model21 <- aov(log10(Rend)~Melan*Azote+Bloc, data=exp075) summary(model21) |
Df Sum Sq Mean Sq F value Pr(>F) Melan 7 0.136850 0.019550 3.6868 0.0161474 * Azote 1 0.096953 0.096953 18.2838 0.0006631 *** Bloc 1 0.037397 0.037397 7.0524 0.0179873 * Melan:Azote 7 0.090646 0.012949 2.4420 0.0694847 . Residuals 15 0.079540 0.005303 --- Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 |
Si l'on souhaite subdiviser les sommes des carrés des écarts, il suffit de remplacer 'Melan' par 'Prop*Var' dans le modèle précédent :
| model22 <- aov(log10(Rend)~Prop*Var*Azote+Bloc, data=exp075) summary(model22) |
Df Sum Sq Mean Sq F value Pr(>F) Prop 1 0.030384 0.030384 5.7299 0.0301935 * Var 3 0.040384 0.013461 2.5386 0.0956951 . Azote 1 0.096953 0.096953 18.2838 0.0006631 *** Bloc 1 0.037397 0.037397 7.0524 0.0179873 * Prop:Var 3 0.066082 0.022027 4.1540 0.0249769 * Prop:Azote 1 0.000156 0.000156 0.0293 0.8663200 Var:Azote 3 0.063962 0.021321 4.0207 0.0276862 * Prop:Var:Azote 3 0.026528 0.008843 1.6676 0.2164392 Residuals 15 0.079540 0.005303 |
4° Interprétation
Le fait d'augmenter le nombre de degrés de liberté du carré moyen servant de base de comparaison pour tester l'effet du facteur azote rend ce facteur très hautement significatif. Pour obtenir un intervalle de confiance de la différence des logarithmes des rendements entre les deux niveaux d'azote, il faut tout d'abord connaître les moyennes en question :
| attach(exp075) tapply(log10(Rend),Azote,mean) |
30 60 0.7553309 0.8654178 |
Il reste ensuite à déterminer le quantile de la loi de Student à 15 degrés de liberté correspondant à une probabilité à gauche de 0,975 :
| qt(0.975,df=15) |
[1] 2.131450 |
Les résultats s'obtiennent alors en suivant la même procédure qu'au paragraphe 7.4.2.3°, soit un accroissement de 29% lié aux 30 unités supplémentaires d'azote par hectare, avec des limites de confiance égales à 14 et 46%.
Enfin, la fonction 'xtabs' permet d'obtenir la somme des (logarithmes des) rendements pour chaque combinaison de proportion et de variété, qu'il faut diviser par les effectifs correspondants, obtenus par la fonction 'table', pour avoir finalement la moyenne.
| xtabs(log10(Rend)~Prop+Var)/table(Prop,Var) # données transformées |
Var Prop A AB B C 25-75 0.7643565 0.7005505 0.9000533 0.7532817 50-50 0.7972652 0.8489720 0.8254129 0.8931025 |
| xtabs(Rend~Prop+Var)/table(Prop,Var) # données initiales |
Var Prop A AB B C 25-75 5.9850 5.2150 7.9825 5.6725 50-50 6.4700 7.2925 7.0025 7.9525 |
5° Modèles des analyses de la variance
Contrairement aux notations présentées dans le livre et correspondant à celles des logiciels Minitab et SAS, l'interaction entre deux facteurs A et B est désignée par A:B. La mention A*B est ici la notation abrégée de A+B+A:B.
Le fonctionnement du terme Error peut être résumé de la façon suivante. La somme des carrés des écarts est décomposée en fonction de tous les éléments qui apparaissent dans le modèle, y compris la composante d'erreur. Chaque élément n'apparaissant pas dans la composante d'erreur est alors testé, en utilisant comme carré moyen de comparaison celui correspondant :
-au premier terme d'ordre supérieur de la partie Error contenant l'élément, s'il y en a un,
-à la résiduelle (contenant les interactions non explicitées) sinon.
Le choix du terme d'erreur doit donc être guidé par les espérances mathématiques des carrés moyens du modèle utilisé. Ainsi, les modèles de la deuxième analyse de la variance auraient dû, en toute rigueur, faire apparaître le facteur bloc dans un terme d'erreur afin qu'il ne soit pas testé par rapport à la variation dite résiduelle.
| Haut de la page |
| Autres illustrations avec R |
Dernière mise à jour : janvier 2005