|
|
Nous remercions Soudjata Radjassegarane du laboratoire de biologie
végétale de l'université de La Réunion de nous avoir communiqué ses
données. Toutefois, comme celles-ci n'ont pas encore fait l'objet
d'une publication, nous avons utilisé dans ces travaux pratiques des
données bruitées.
Saisir la fonction Scilab suivante sous Scilab : elle retourne une table
d'analyse de la variance.
function []=anova(n,moy,s2,alpha)
// Calcul de la table d'ANOVA
N=sum(n);
mg=sum(moy.*n)/N;
SSM=sum(n.*(moy-mg).^2);
SSE=sum((n-1).*s2);
k=length(n);
MSM = SSM/(k-1);
MSE = SSE/(N-k);
// Fisher
F = MSM/MSE;
// p-valeur
[p, pv] = cdff("PQ",F,k-1,N-k);
// Quantile de la loi de Fisher
x=cdff("F",k-1,N-k,1-alpha, alpha);
// Affichage de la table d'ANOVA
printf("\n"); printf("TABLE D''ANALYSE DE LA VARIANCE\n\n");
printf("Variabilite SS DF MS Fisher p-valeur\n");
printf("Interclasse %6.1f %3d %6.1f %4.1f %f\n",SSM,k-1,MSM,F,pv);
printf("Intraclasse %6.1f %3d %6.1f\n",SSE,N-k,MSE);
printf("Totale %6.1f\n\n",SSE+SSM);
printf("Quantile de la loi de Fisher d''ordre %f: \n",alpha);
printf("%f\n",x);
endfunction;
Trois traitements distincts sont appliqués sur une même plante, avec
deux répétitions par traitement. Chacune de ces six expériences
donne lieu à cinq mesures. Le résultat est une matrice dont les colonnes
sont les 5 mesures associées à chaque traitement-répétition A1, B1, C1,
A2, B2, C2 (traitements A, B et C).
M=[30.34 29.67 30.24 29.95 29.59 28.97
22.11 22.84 21.76 25.17 23.81 24.55
20.37 22.62 21.7 21.06 22.91 22.3
15.96 19.12 18.31 17.33 17.86 19.54
12.27 12.33 12.27 15.26 16.34 17.15
]
On prépare ensuite ces données pour l'analyse de la variance.
trait=3; // nombre de traitements
repet=2; // nombre de répétitions par traitement
data=list(); // liste vide
for i=1:trait
data(i)=M(:,i);
for j=2:repet
data(i)=[data(i);M(:,i+(j-1)*trait)];
end
end
// data(i) = vecteur des donnees du traitement i
n= []; moy=[]; s2=[];
// donnees d'entrees calculees pour l'analyse de la variance
for i=1:trait
n=[n,prod(size(data(i)))];
// effectifs
moy=[moy,sum(data(i))/n(i)];
// moyennes par traitement
s2=[s2,sum(data(i).*data(i))./(n(i)-1) - (n(i)./(n(i)-1) .* (moy(i).^2) )];
// variance par traitement
end
Question 1
Effectuer l'analyse de la variance avec un niveau de test de 5 %
et commenter les résultats.
|
alpha=0.05;
anova(n,moy,s2,alpha)
On obtient les résultats suivants (ne pas saisir ce qui suit sous
Scilab).
TABLE D'ANALYSE DE LA VARIANCE
Variabilite SS DF MS Fisher p-valeur
Interclasse 3.4 2 1.7 0.1 0.948722
Intraclasse 866.2 27 32.1
Totale 869.6
Quantile de la loi de Fisher d'ordre 0.050000:
3.354131
On ne rejette pas l'hypothèse nulle selon laquelle les traitements sont
sans effet car la valeur empirique du ``Fisher'' (ici 0.1) est bien
inférieure au quantile d'ordre 0.050000 (ici 3.354131). Il est
vraisemblable que les traitements sont sans effet sur
la décomposition de la litière.
Question 2
Reprendre la question précédente avec les données suivantes de taux de
survie.
|
trait=4; // nombre de traitements
repet=3; // nombre de répétitions par traitement
M=[97.9 69.19 59.73 72.68 92.79 76.1 67.37...
76.19 100.45 81.03 90.13 69.48
84.46 64.49 62.81 63.1 77.74 71.34 62.92...
78.29 95.11 67.82 88.77 62.36
]
|