Este programa compara medias muestrales entre grupos utilizando eltest ANOVA.
Queremos evaluar si la dosis de alcohol tiene un efecto apreciable en el tiempo (segundos) que se tarda en hacer operaciones matemáticas sencillas.
Se eligen 20 voluntarios que cumplen ciertos criterios de admisión en el estudio.
Se dividen aleatoriamente en cuatro grupos, recibiendo cada grupo distintas dosis de alcohol.
tiempo<-c(42,39,48,43,44,45,46,45,39,43,64,61,50,55,58,56,55,62,59,60)
dosis<-c(rep(1,5),rep(2,5),rep(3,5),rep(4,5))
Armamos el dataframe indicando cual es la variable factor
datos<-data.frame(dosis = factor(dosis,labels=
c('Sin Alcohol','Dosis Baja','Dosis Media','Dosis Alta')),tiempo)
head(datos)
## dosis tiempo
## 1 Sin Alcohol 42
## 2 Sin Alcohol 39
## 3 Sin Alcohol 48
## 4 Sin Alcohol 43
## 5 Sin Alcohol 44
## 6 Dosis Baja 45
plot(datos, col = "violet")
Aplicamos el Test de anova. Es muy importante indicar el orden en que se dan los argumentos. El primer argumento es siempre la variable dependiente.
res<-aov(tiempo ~ dosis,data=datos)
summary(res)
## Df Sum Sq Mean Sq F value Pr(>F)
## dosis 3 1067.8 355.9 25.38 2.54e-06 ***
## Residuals 16 224.4 14.0
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
calculamos el tiempo medio de respuesta para cada dosis
tapply(datos$tiempo,datos$dosis,mean)
## Sin Alcohol Dosis Baja Dosis Media Dosis Alta
## 43.2 43.6 57.6 58.4
validación para medir independencia y para ver si cumplen la hipótesis de normalidad
plot(res$residuals, col = "blue")
dfr <- data.frame(Residuos = res$residuals)
ggplot(dfr, aes(x = Residuos)) +
geom_histogram(aes(y =..density..),
breaks = seq(-10, 10, by = 1),
colour = "blue",
fill = "white") + geom_density(size= 1.2,colour = "green") +
stat_function(fun = dnorm, args = list(mean = mean(res$residuals),
sd = sd(res$residuals)),colour = "magenta", size = 1.2)
para ver si todos tienen la misma varianza, max / min tendrÃa que dar 1
desviaciones <- tapply(res$residuals, dosis, sd)
desviaciones
## 1 2 3 4
## 3.271085 2.792848 5.412947 2.880972
max(desviaciones)/min(desviaciones)
## [1] 1.938146
Gráfico de tiempo en función de la dosis
plotmeans(tiempo~dosis, col = "violet")
Test de Tukey
print(TukeyHSD(res))
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = tiempo ~ dosis, data = datos)
##
## $dosis
## diff lwr upr p adj
## Dosis Baja-Sin Alcohol 0.4 -6.376451 7.176451 0.9982132
## Dosis Media-Sin Alcohol 14.4 7.623549 21.176451 0.0000854
## Dosis Alta-Sin Alcohol 15.2 8.423549 21.976451 0.0000459
## Dosis Media-Dosis Baja 14.0 7.223549 20.776451 0.0001171
## Dosis Alta-Dosis Baja 14.8 8.023549 21.576451 0.0000625
## Dosis Alta-Dosis Media 0.8 -5.976451 7.576451 0.9862341
plot(TukeyHSD(res))