1.2
set.seed(123)
# respuesta
omega3 = sort.int(rnorm(48, 300, 20), partial = 24)
# factor
temp_coc = gl(4,12,48,c('40grad','50grad','60grad','70grad'))
# Aleatorizar tratamientos
y_aleat = sample(seq(48), 48, replace = F)
df = data.frame(temp_coc, y_aleat, omega3)
head(df)
## temp_coc y_aleat omega3
## 1 40grad 5 277.5378
## 2 40grad 25 274.6921
## 3 40grad 22 277.2373
## 4 40grad 47 266.2661
## 5 40grad 32 285.4222
## 6 40grad 45 279.4799
boxplot(df$omega3 ~ df$temp_coc)
# ANOVA
mod1 = aov(omega3 ~ temp_coc, df)
s_mod1 = summary(mod1)
s_mod1
## Df Sum Sq Mean Sq F value Pr(>F)
## temp_coc 3 12681 4227 47.82 6.73e-14 ***
## Residuals 44 3890 88
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
p_valor = s_mod1[[1]][1,5]
ifelse(p_valor<0.05, 'Rechazo Ho', 'No Rechazo Ho')
## [1] "Rechazo Ho"
1.3 Comparacion de medias posterior al análisis de varianza
# Tukey
TukeyHSD(mod1, 'temp_coc')
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = omega3 ~ temp_coc, data = df)
##
## $temp_coc
## diff lwr upr p adj
## 50grad-40grad 14.554078 4.305495 24.80266 0.0024659
## 60grad-40grad 34.845399 24.596816 45.09398 0.0000000
## 70grad-40grad 40.802039 30.553455 51.05062 0.0000000
## 60grad-50grad 20.291321 10.042738 30.53990 0.0000216
## 70grad-50grad 26.247961 15.999377 36.49654 0.0000001
## 70grad-60grad 5.956639 -4.291944 16.20522 0.4161834
# Duncan
library(agricolae)
duncan.test(mod1, 'temp_coc', console = T)
##
## Study: mod1 ~ "temp_coc"
##
## Duncan's new multiple range test
## for omega3
##
## Mean Square Error: 88.40047
##
## temp_coc, means
##
## omega3 std r Min Max
## 40grad 277.8761 8.215587 12 260.6677 287.4992
## 50grad 292.4302 2.525685 12 288.7905 295.8417
## 60grad 312.7215 10.084089 12 298.7618 331.1742
## 70grad 318.6782 13.343091 12 302.5858 343.3791
##
## Alpha: 0.05 ; DF Error: 44
##
## Critical Range
## 2 3 4
## 7.735812 8.134982 8.396712
##
## Means with the same letter are not significantly different.
##
## omega3 groups
## 70grad 318.6782 a
## 60grad 312.7215 a
## 50grad 292.4302 b
## 40grad 277.8761 c
1.4 Revision de supuestos del análisis 1.4.1 Normalidad de los residuos H0:ϵij∼N(0,σ2e)
res1 = residuals(mod1)
shapiro.test(res1)
##
## Shapiro-Wilk normality test
##
## data: res1
## W = 0.97825, p-value = 0.5082
library(nortest)
ad.test(res1)
##
## Anderson-Darling normality test
##
## data: res1
## A = 0.31923, p-value = 0.5239
lillie.test(res1)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: res1
## D = 0.074254, p-value = 0.7302
sf.test(res1)
##
## Shapiro-Francia normality test
##
## data: res1
## W = 0.97862, p-value = 0.443
cvm.test(res1)
##
## Cramer-von Mises normality test
##
## data: res1
## W = 0.04447, p-value = 0.5913
hist(res1)
qqnorm(res1, pch = 16)
qqline(res1)
prediccion1 = mod1$fitted.values
plot(df$omega3, prediccion1, pch = 16, col=df$temp_coc)
1.4.2 Homegeneidad de varianzas de los tratamientos (Homocedasticidad)
bt1 = bartlett.test(df$omega3 ~ df$temp_coc)
ifelse(bt1$p.value<0.05, 'Homocedasticidad', 'Heterocedasticidad')
## [1] "Homocedasticidad"
nota: si hubiesemos rechazado la igualdad de varianzas, se puede correr una análisis de varianza especial
oneway.test(omega3 ~ temp_coc, data = df, var.equal = FALSE)
##
## One-way analysis of means (not assuming equal variances)
##
## data: omega3 and temp_coc
## F = 41.153, num df = 3.000, denom df = 20.277, p-value = 8.276e-09
1.4.3 Independencia de los residuales
plot(res1, type='l')
acf(res1)
1.5 Conclusión Si existen diferencias estadisticas entre los tratamientos de temperatura de cocción sobre el contenido omega3, siendo 50, 60, 70 grados iguales entre ellos y a su vez diferentes con 40 grados.