Il y a deux façons d'interpréter votre première question, qui se reflètent dans les deux façons que vous lui avez posées: «Les espèces sont-elles associées aux plantes hôtes?» »et« Les espèces sont-elles indépendantes des plantes hôtes, étant donné l'effet de la pluie? »
La première interprétation correspond à un modèle d' indépendance conjointe , qui stipule que les espèces et les hôtes sont dépendants, mais conjointement indépendamment de la pluie:
ps h r= ps hpr
où est la probabilité qu'une observation tombe dans le cellule où espèces d'index, type d'hôte, et la valeur de la pluie, est la probabilité marginale de la cellule où l'on s'effondre sur la variable pluie, et est la probabilité marginale de pluie.ps h r( s , h , r )shrps h( s , h , ⋅ )pr
La deuxième interprétation correspond à un modèle d' indépendance conditionnelle , qui stipule que les espèces et les hôtes sont indépendants selon qu'il a plu:
ps h | r= ps | rph | r oups h r= ps rph r/ pr
où est la probabilité conditionnelle de la cellule , étant donné une valeur de . ( s , h , r ) rps h | r(s,h,r)r
Vous pouvez tester ces modèles en R ( loglin
cela fonctionnerait bien aussi mais je suis plus familier glm
):
count <- c(12,15,10,13,11,12,12,7)
species <- rep(c("a", "b"), 4)
host <- rep(c("c","c", "d", "d"), 2)
rain <- c(rep(0,4), rep(1,4))
my.table <- xtabs(count ~ host + species + rain)
my.data <- as.data.frame.table(my.table)
mod0 <- glm(Freq ~ species + host + rain, data=my.data, family=poisson())
mod1 <- glm(Freq ~ species * host + rain, data=my.data, family=poisson())
mod2 <- glm(Freq ~ (species + host) * rain, data=my.data, family=poisson())
anova(mod0, mod1, test="Chi") #Test of joint independence
anova(mod0, mod2, test="Chi") #Test of conditional independence
Ci-dessus, mod1
correspond à l'indépendance conjointe et mod2
correspond à l'indépendance conditionnelle, alors que mod0
correspond à un modèle d' indépendance mutuelle . Vous pouvez voir les estimations des paramètres à l'aide de , etc. Comme d'habitude, vous devez vérifier si les hypothèses du modèle sont respectées. Dans les données que vous avez fournies, le modèle nul correspond en fait de manière adéquate.pshr=psphprsummary(mod2)
Une autre façon d'aborder votre première question serait d'effectuer le test exact de Fischer ( fisher.test(xtabs(count ~ host + species))
) sur la table 2x2 repliée (première interprétation) ou le test de Mantel-Haenszel ( mantelhaen.test(xtabs(count ~ host + species + rain))
) pour les tables 2x2 stratifiées ou d'écrire un test de permutation qui respecte la stratification (deuxième interprétation).
Pour paraphraser votre deuxième question, la relation entre l'espèce et l'hôte dépend-elle de la pluie?
mod3 <- glm(Freq ~ species*host*rain - species:host:rain, data=my.data, family=poisson())
mod4 <- glm(Freq ~ species*host*rain, data=my.data, family=poisson())
anova(mod3, mod4, test=”Chi”)
pchisq(deviance(mod3), df.residual(mod3), lower=F)
Le modèle complet mod4
est saturé, mais vous pouvez tester l'effet en question en regardant la déviance mod3
comme je l'ai fait ci-dessus.