Aquí hay algunos antecedentes sobre mi situación: mis datos se refieren al número de presas que un depredador ha comido con éxito. Como la cantidad de presas es limitada (25 disponibles) en cada prueba, tenía una columna "Muestra" que representaba la cantidad de presas disponibles (25 en cada prueba), y otra llamada "Cuenta", que era la cantidad de éxito ( cuántas presas se comieron). Basé mi análisis en el ejemplo del libro R sobre datos de proporción (página 578). Las variables explicativas son Temperatura (4 niveles, que traté como factor) y Sexo del depredador (obviamente, hombre o mujer). Así que termino con este modelo:
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial)
Después de obtener la tabla Análisis de desviación, resulta que la temperatura y el sexo (pero no la interacción) tienen un efecto significativo en el consumo de presas. Ahora, mi problema: necesito saber qué temperaturas difieren, es decir, tengo que comparar las 4 temperaturas entre sí. Si tuviera un modelo lineal, usaría la función TukeyHSD, pero como estoy usando un GLM no puedo. He estado revisando el paquete MASS e intentando configurar una matriz de contraste, pero por alguna razón no funciona. ¿Alguna sugerencia o referencia?
Aquí está el resumen que obtengo de mi modelo, si eso ayuda a aclararlo ...
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
glht
multcomp
glht(my.glm, mcp(Temperature="Tukey"))
model<-glm(y ~ Temperature*Sex data=predator, family=quasibinomial)
Temperature
como factor? ¿No tienes los valores numéricos reales? Los usaría como una variable continua y luego todo este problema es discutible.Respuestas:
Anne, en breve explicaré cómo hacer comparaciones múltiples en general. Por qué esto no funciona en su caso específico, no lo sé; Lo siento.
Pero normalmente, puede hacerlo con el
multcomp
paquete y la funciónglht
. Aquí hay un ejemplo:Si desea calcular las comparaciones por pares entre el
rank
uso de HSD de Tukey, puede hacerlo de esta manera:Nota: Como @gung señaló en los comentarios, siempre que sea posible, debe incluir la temperatura como una variable continua en lugar de una categórica. Con respecto a la interacción: puede realizar una prueba de razón de probabilidad para verificar si el término de interacción mejora significativamente el ajuste del modelo. En su caso, el código se vería así:
Si esta prueba no es significativa, puede eliminar la interacción de su modelo. Quizás
glht
funcione entonces?fuente