Re: tester l'hypothèse nulle sur une ACC

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Wed May 12 2004 - 12:32:39 MEST


At 17:34 11/05/2004 +0200, Stéphane Boyer wrote:
>Bonjour,
>J'ai traité un tableau espèces-milieux avec une ACC sous ADE4.
>Plusieurs reviewers reprochent à mon analyse l'absence de "null model analyses"
>Tester cette hypothèse nulle permettrait de montrer que mes espèces ne se répartissent pas au hasard mais en fonction des caractéristiques des milieux....?
>est-il possible de tester de faire cette manip avec ADE4? Comment?

Vaste question de la machine infernale des p-values chère à notre ami du grand Nord!
(pour les non initiés voir Yoccoz, N. G. 1991. Use, overuse, and misuse of significance tests in evolutionary biology and ecology. Bulletin of the Ecological Society of America 72:106-111)

Une approche cohérente dit deux choses.
La première est que la CCA est d'abord une méthode descriptive des structures communautés-environnement et qu'à ce titre elle n'intervient que si il y a quelque chose à décrire.
Le plus simple : faire l'analyse du tableau de milieu et garder 3 facteurs. Faire l'acp du tableau faune et garder deux facteurs. Si la régression multiple des deux facteurs faunes sur les trois facteurs milieux n'est pas significative à un seuil de 10E-15 se faire grandement du souci sur l'emploi de la CCA. Exemple

 data(rpjdl)
 mil=dudi.pca(rpjdl$mil,scan=F,nf=3)
 mil=dudi.pca(rpjdl$mil,scan=F,nf=3)$li
 fau=dudi.pca(rpjdl$fau,scan=F,nf=2,scal=F)$li
 anova(lm(I(fau[,1])~I(mil[,1])+I(mil[,2])+I(mil[,3])))
Analysis of Variance Table

Response: I(fau[, 1])
             Df Sum Sq Mean Sq F value Pr(>F)
I(mil[, 1]) 1 193.7 193.7 489.91 <2e-16
I(mil[, 2]) 1 57.7 57.7 146.00 <2e-16
I(mil[, 3]) 1 0.2 0.2 0.58 0.45
Residuals 178 70.4 0.4
 anova(lm(I(fau[,2])~I(mil[,1])+I(mil[,2])+I(mil[,3])))
Analysis of Variance Table

Response: I(fau[, 2])
             Df Sum Sq Mean Sq F value Pr(>F)
I(mil[, 1]) 1 14.6 14.6 54.76 5.2e-12
I(mil[, 2]) 1 38.3 38.3 143.25 < 2e-16
I(mil[, 3]) 1 1.8 1.8 6.85 0.0096
Residuals 178 47.6 0.3

Ces calculs sans aucun intérêt garantissent que l'hypothèse nulle d'absence de lien entre faune et environnement est totalement stupide. Cette hypothèse nulle est d'abord l'hypothèse que les auteurs des mesures sont des imbéciles car faire une manip dans laquelle la faune ne dépend pas de l'environnement relève de l'héroïsme.

La seconde dit que si les tests ci-dessus ne sont pas énormément significatifs, par exemple :
 data(doubs)
 mil=dudi.pca(doubs$mil,scan=F,nf=3)$li
 fau=dudi.pca(doubs$poi,scan=F,nf=2,scal=F)$li
 anova(lm(I(fau[,1])~I(mil[,1])+I(mil[,2])+I(mil[,3])))
Analysis of Variance Table

Response: I(fau[, 1])
            Df Sum Sq Mean Sq F value Pr(>F)
I(mil[, 1]) 1 414 414 21.79 8.1e-05
I(mil[, 2]) 1 281 281 14.78 0.0007
I(mil[, 3]) 1 93 93 4.92 0.0356
Residuals 26 494 19
 anova(lm(I(fau[,2])~I(mil[,1])+I(mil[,2])+I(mil[,3])))
Analysis of Variance Table

Response: I(fau[, 2])
            Df Sum Sq Mean Sq F value Pr(>F)
I(mil[, 1]) 1 29.7 29.7 6.61 0.016
I(mil[, 2]) 1 97.4 97.4 21.67 8.4e-05
I(mil[, 3]) 1 0.8 0.8 0.17 0.683
Residuals 26 116.9 4.5

c'est que les équilibres nombre de sites - nombre d'espèces - nombre de variables sont défavorables. Il vaut mieux s'orienter vers l'analyse de co-inertie et son test de permutations.

Enfin, si on tient au test classique de la CCA utiliser la librairie vegan de J. Oksanen :

library(vegan)
cca1=cca(rpjdl$fau,rpjdl$mil)
permutest.cca(cca1,1000)

Permutation test for cca
Call:
cca(X = rpjdl$fau, Y = rpjdl$mil)

Test for significance of all constrained eigenvalues
Pseudo-F: 1.908
Significance: <0.001
Based on 1000 permutations under reduced model.

cca1=cca(doubs$poi,doubs$mil)
Error in cca.default(doubs$poi, doubs$mil) :
        All row sums must be >0 in the community data matrix

Ah, la fonction ne tolère pas les lignes de 0. On ne peut pas tout avoir !

 

Daniel Chessel - chessel@biomserv.univ-lyon1.fr



This archive was generated by hypermail 2b30 : Tue Sep 07 2004 - 13:30:56 MEST