Há duas maneiras de interpretar sua primeira pergunta, que se refletem nas duas maneiras que você fez: "As espécies estão associadas às plantas hospedeiras?" e "As espécies são independentes das plantas hospedeiras, dado o efeito da chuva?"
A primeira interpretação corresponde a um modelo de independência conjunta , que afirma que espécies e hospedeiros são dependentes, mas conjuntamente independentes de chover:
ps h r= ps hpr
pshr(s,h,r)shrpsh(s,h,⋅)pr
A segunda interpretação corresponde a um modelo de independência condicional , que afirma que espécies e hospedeiros são independentes, independentemente de chover:
psh|r=ps|rph|rps h r= ps rph r/ pr
ps h | r( s , h , r ) célula, dado um valor de r.
Você pode testar esses modelos em R ( loglin
também funcionaria bem, mas estou mais familiarizado 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
Acima, mod1
corresponde à independência conjunta e mod2
à independência condicional, enquanto mod0
corresponde a um modelo de independência mútuaps h r= psphpr. Você pode ver as estimativas de parâmetros usando summary(mod2)
, etc. Como sempre, verifique se as suposições do modelo são atendidas. Nos dados que você forneceu, o modelo nulo realmente se encaixa adequadamente.
Uma maneira diferente de abordar sua primeira pergunta seria executar o teste exato de Fischer ( fisher.test(xtabs(count ~ host + species))
) na tabela 2x2 recolhida (primeira interpretação) ou o teste de Mantel-Haenszel ( mantelhaen.test(xtabs(count ~ host + species + rain))
) para tabelas 2x2 estratificadas ou escrever um teste de permutação que respeite a estratificação (segunda interpretação).
Parafraseando sua segunda pergunta, a relação entre espécies e hospedeiro depende se choveu?
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)
O modelo completo mod4
está saturado, mas você pode testar o efeito em questão observando o desvio de mod3
como fiz acima.
A regressão logística parece apropriada para o seu problema. A variável que você está tentando prever é a probabilidade de uma observação (que é da espécie A ou da espécie B) ser da espécie A. As covariáveis sãoh o s t , r a i n e opcionalmente h o s t * r um i n .
O comando R seria:
e você estará interessado nop -valores das encostas. Lembre-se de que você está testando várias hipóteses.
fonte
Inicialmente, sugeri tentar uma das técnicas de ordenação restrita do
vegan
pacote, mas, pensando bem, duvido que isso seja útil, pois você realmente tem duas tabelas de contingência. Espero que a segunda parte deste exemplo [PDF: R Demonstration - Categorical Analysis] seja útil.fonte