Tengo un conjunto de datos que tiene 8 tratamientos, junto con los datos de éxito. Utilicé un glm binomial para analizar los datos, pero generó algunos valores de coeficiente inesperados para algunos de los tratamientos y no estoy seguro de qué hacer al respecto.
Aquí están los datos y el resumen:
treatment = as.factor(c("A", "A", "A", "A", "B", "B", "B", "B", "C", "C", "C", "C",
"D", "D", "D", "D", "E", "E", "E", "E", "F", "F", "F", "F", "G",
"G", "G", "G", "H", "H", "H", "H"))
rep = c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4,
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
success = c(1, 1, 1, 2, 14, 17, 15, 18, 0, 0, 0, 0, 18, 18, 17, 18, 4,
4, 2, 4, 2, 4, 1, 1, 1, 0, 0, 1, 8, 6, 6, 2)
total = c(20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20)
data = data.frame(treatment,rep,success,total)
data$perc = data$success/data$total
library(tidyverse)
data %>% group_by(treatment) %>% summarize(mean = mean(perc))
Podemos ver que la media de los tratamientos B y D es de 0,8 y 0,88 respectivamente.
Ahora realiza un glm:
model.glm = glm(cbind(success,total) ~ treatment-1,data = data,family="binomial")
logit2prob <- function(logit){
odds <- exp(logit)
prob <- odds / (1 + odds)
return(prob)
}
SuccessProb = logit2prob(coef(model.glm))
SuccessProb = round(logit2prob(coef(model.glm)),2)
SuccessProb
Podemos ver que las estimaciones, utilizando un glm, para B y D son de 0,44 y 0,47, respectivamente. Estas no se acercan a las estimaciones de resumen.
Si utilizamos un anova, los resultados son mejores.
model.aov = aov(perc ~ treatment-1,data=data)
SuccessProb.aov = coef(model.aov)
SuccessProb.aov
Aquí, las estimaciones para B y D son de 0,8 y 0,89. Mucho mejor que el glm.
¿Alguien sabe qué estoy haciendo mal?