Bonjour,

Je suis débutant en R et je souhaiterais écrire un script me permettant des faire des ANOVA en routine sur l'ensemble de mes variables, ainsi que de récupérer certains résultats sous forme de tableau à la fin.


Mon modèle est par exemple le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
> modele <- lm(taille ~ id_genotype + ht05cov:id_genotype)




j'obtiens les résultats de l'anova type I comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
> anova(modele)
Analysis of Variance Table
 
Response: taille
                    Df  Sum Sq Mean Sq F value   Pr(>F)   
id_genotype          7  544.84   77.83  2.3197 0.042340 * 
id_genotype:ht05cov  7  730.36  104.34  3.1096 0.009592 **
Residuals           43 1442.81   33.55                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1





Je veux aussi les résultats de type III, j'ai trouvé ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
> drop1(modele,~.,test="F")
Single term deletions
 
Model:
taille ~ id_genotype + ht05cov:id_genotype
                    Df Sum of Sq     RSS     AIC F value    Pr(F)   
<none>                           1442.81  216.41                    
id_genotype          6    779.38 2222.19  229.46  3.8713 0.003551 **
id_genotype:ht05cov  7    730.36 2173.17  226.16  3.1096 0.009592 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


J'aimerai donc écrire un script
- qui réaliserait ces opérations à la suite pour toutes les variables de mes données
- qui récupère ensuite certains de ces résultats et qui les liste sous cette forme (le R² étant le rapport entre le SS du facteur sur le SS total):


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
		Type	Df	R²modèle	R²id_génotype	F	p-val
variable1	I	xx	xx		xx		xx	xx
variable1	III	xx	xx		xx		xx	xx
variable2	I	xx	xx		xx		xx	xx
variable2	III	xx	xx		xx		xx	xx
variable3	I	xx	xx		xx		xx	xx
variable3	III	xx	xx		xx		xx	xx


Auriez-vous quelques pistes pour m'aiguiller?

Merci bcp

Pierre