set.seed(2002)
area_dh <- c(rnorm(40,1,0.2),
rnorm(40,1.5,0.3),
rnorm(40,4,0.25)) # centimetros^2
dosis_i <- gl(3,40,120, c("D0","D2","D5")) # Dosis control / Dosis baja / Dosis alta de inóculo (hongo)
df <- data.frame(area_dh,dosis_i)
head(df)## area_dh dosis_i
## 1 0.9786818 D0
## 2 1.3228890 D0
## 3 1.2776526 D0
## 4 1.1405556 D0
## 5 1.4515000 D0
## 6 0.9607001 D0
boxplot(area_dh ~ dosis_i, data = df,
col = c("#CAE1FF", "#BCD2EE", "#A2B5CD"),
xlab = "Dosis del inóculo",
ylab = "Área de daño") * Causa - efecto: Mayor dosis del inóculo, mayor área dañada.
\[H_0: \tau_0 = \tau_2 = \tau_5 = 0 \\ H_a: Si~hay~efecto~de~la~dosis\]
aov_mpara = aov(area_dh ~ dosis_i, data = df) # Área de daño (variable respuesta) en función de la dosis del inóculo
summary(aov_mpara)## Df Sum Sq Mean Sq F value Pr(>F)
## dosis_i 2 211.89 105.94 1594 <2e-16 ***
## Residuals 117 7.78 0.07
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
media_d <- tapply(area_dh, dosis_i, FUN = mean)
media_d## D0 D2 D5
## 0.9956956 1.4733646 4.0228301
media_global <- mean(media_d)
media_global## [1] 2.163963
efectos <-media_d-media_global
efectos## D0 D2 D5
## -1.1682678 -0.6905988 1.8588666
Efecto 0 -> igual a la media global
Efecto de D5 positivo -> área de daño de D5 muy grande respecto a la media global
Efecto de D0 negativo -> por debajo de la media global -> daño menos -> bueno
Efecto de D2 negativo -> por debajo de la media global
¿Qué nos interesa? Área de daño pequeña, estar por debajo de la media
TukeyHSD(aov_mpara)## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = area_dh ~ dosis_i, data = df)
##
## $dosis_i
## diff lwr upr p adj
## D2-D0 0.477669 0.3408051 0.6145328 0
## D5-D0 3.027134 2.8902706 3.1639983 0
## D5-D2 2.549465 2.4126017 2.6863293 0
Comparacion de pares: D2-D0, D5-D0, D5-D2
p adj = probabilidad ajustada, p-valor que cuando es menos que el 5% rechaza la igualdad
par(las=1) # Horizontal writing of labels.
plot(TukeyHSD(aov_mpara))dtt<-duncan.test(aov_mpara,"dosis_i", group=TRUE,console=TRUE,main="dosis_i")##
## Study: dosis_i
##
## Duncan's new multiple range test
## for area_dh
##
## Mean Square Error: 0.06647806
##
## dosis_i, means
##
## area_dh std r Min Max
## D0 0.9956956 0.2103224 40 0.5032344 1.468125
## D2 1.4733646 0.3122326 40 0.7258436 2.113421
## D5 4.0228301 0.2402280 40 3.5046680 4.627105
##
## Alpha: 0.05 ; DF Error: 117
##
## Critical Range
## 2 3
## 0.1141793 0.1201671
##
## Means with the same letter are not significantly different.
##
## area_dh groups
## D5 4.0228301 a
## D2 1.4733646 b
## D0 0.9956956 c
dtt## $statistics
## MSerror Df Mean CV
## 0.06647806 117 2.163963 11.91487
##
## $parameters
## test name.t ntr alpha
## Duncan dosis_i 3 0.05
##
## $duncan
## Table CriticalRange
## 2 2.800776 0.1141793
## 3 2.947653 0.1201671
##
## $means
## area_dh std r Min Max Q25 Q50 Q75
## D0 0.9956956 0.2103224 40 0.5032344 1.468125 0.8670405 0.9784721 1.112136
## D2 1.4733646 0.3122326 40 0.7258436 2.113421 1.3260786 1.4635046 1.676952
## D5 4.0228301 0.2402280 40 3.5046680 4.627105 3.8701394 3.9975565 4.137719
##
## $comparison
## NULL
##
## $groups
## area_dh groups
## D5 4.0228301 a
## D2 1.4733646 b
## D0 0.9956956 c
##
## attr(,"class")
## [1] "group"
plot(dtt, variation="IQR" )data(sweetpotato)
model <- aov(yield~virus, data=sweetpotato)
out <- duncan.test(model, "virus",
main = "yield of sweetpotato, Dealt with different virus")
plot(out, variation="IQR" )duncan.test(model,"virus", alpha = 0,01, console = TRUE)##
## Study: model ~ "virus"
##
## Duncan's new multiple range test
## for yield
##
## Mean Square Error: 22.48917
##
## virus, means
##
## yield std r Min Max
## cc 24.40000 3.609709 3 21.7 28.5
## fc 12.86667 2.159475 3 10.6 14.9
## ff 36.33333 7.333030 3 28.0 41.8
## oo 36.90000 4.300000 3 32.1 40.4
##
## Alpha: 0 ; DF Error: 8
##
## Critical Range
## 2 3 4
## Inf Inf Inf
##
## Means with the same letter are not significantly different.
##
## yield groups
## oo 36.90000 a
## ff 36.33333 a
## cc 24.40000 a
## fc 12.86667 a
kruskal.test(area_dh, dosis_i)##
## Kruskal-Wallis rank sum test
##
## data: area_dh and dosis_i
## Kruskal-Wallis chi-squared = 96.37, df = 2, p-value < 2.2e-16
PMCMRplus::kwAllPairsNemenyiTest(area_dh, dosis_i)##
## Pairwise comparisons using Tukey-Kramer-Nemenyi all-pairs test with Tukey-Dist approximation
## data: area_dh and dosis_i
## D0 D2
## D2 0.00011 -
## D5 3.2e-14 4.8e-08
##
## P value adjustment method: single-step
## alternative hypothesis: two.sided