Ecco un piccolo retroscena della mia situazione: i miei dati si riferiscono al numero di prede mangiate con successo da un predatore. Poiché il numero di prede è limitato (25 disponibili) in ogni prova, ho avuto una colonna "Campione" che rappresenta il numero di prede disponibili (quindi, 25 in ogni prova) e un'altra chiamata "Conte" che era il numero di successo ( quante prede sono state mangiate). Ho basato la mia analisi sull'esempio del libro R su dati proporzionali (pagina 578). Le variabili esplicative sono Temperatura (4 livelli, che ho trattato come fattore) e Sesso del predatore (ovviamente, maschio o femmina). Quindi finisco con questo modello:
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial)
Dopo aver ottenuto la tabella Analisi della devianza, si scopre che Temperatura e Sesso (ma non l'interazione) hanno un effetto significativo sul consumo di prede. Ora, il mio problema: ho bisogno di sapere quali temperature differiscono, cioè devo confrontare le 4 temperature tra loro. Se avessi un modello lineare, userei la funzione TukeyHSD, ma dato che sto usando un GLM non posso. Ho cercato il pacchetto MASS e ho cercato di impostare una matrice di contrasto, ma per qualche motivo non funziona. Qualche suggerimento o riferimento?
Ecco il riepilogo che ottengo dal mio modello, se questo aiuta a renderlo più chiaro ...
y <- cbind(data$Count, data$Sample-data$Count)
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial)
> summary(model)
# Call:
# glm(formula = y ~ Temperature + Sex + Temperature * Sex, family=quasibinomial, data=data)
# Deviance Residuals:
# Min 1Q Median 3Q Max
# -3.7926 -1.4308 -0.3098 0.9438 3.6831
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -1.6094 0.2672 -6.024 3.86e-08 ***
# Temperature8 0.3438 0.3594 0.957 0.3414
# Temperature11 -1.0296 0.4803 -2.144 0.0348 *
# Temperature15 -1.2669 0.5174 -2.449 0.0163 *
# SexMale 0.3822 0.3577 1.069 0.2882
# Temperature8:SexMale -0.2152 0.4884 -0.441 0.6606
# Temperature11:SexMale 0.4136 0.6093 0.679 0.4990
# Temperature15:SexMale 0.4370 0.6503 0.672 0.5033
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# (Dispersion parameter for quasibinomial family taken to be 2.97372)
# Null deviance: 384.54 on 95 degrees of freedom
# Residual deviance: 289.45 on 88 degrees of freedom
# AIC: NA
# Number of Fisher Scoring iterations: 5
Temperature
come fattore? Non hai i valori numerici effettivi? Vorrei usarli come una variabile continua e quindi l'intero problema è controverso.
glht
funzione nelmultcomp
pacchetto . Per eseguire i test TukeyHSD per la temperatura, usalo in questo modoglht(my.glm, mcp(Temperature="Tukey"))
. E BTW: La formula modello può essere abbreviato in:model<-glm(y ~ Temperature*Sex data=predator, family=quasibinomial)
. Con l'asterisco ( ) vengono montate le interazioni e gli effetti principali.