El diseño consta de bloques (o parcelas enteras) en los que se aplica un factor (el factor de parcela completa) al azar. Dentro de cada parcela / bloque completo, se divide en unidades más pequeñas y los niveles del segundo factor se aplican aleatoriamente a las partes más pequeñas de toda la parcela. La clave es que la unidad experimental es diferente para cada factor.
En este ejemplo, se plantan campos enteros con uno de los tres tipos de avena. Estas son las parcelas completas, de las cuales hay 18. Cada parcela completa se divide en cuatro parcelas divididas, a cada una de las cuales se le asignó aleatoriamente uno de los cuatro niveles de nitrógeno. Se determinó el rendimiento (en bushels / acre) de avena. Son de interés las diferencias en la variedad de avena y los niveles de nitrógeno.
library(readxl)
sp.oats<- read_xlsx("C:/Users/Equipo/Downloads/oats.xlsx")
sp.oats<- within(sp.oats, nitroF<-factor(sp.oats$nitro))
head(sp.oats)
## # A tibble: 6 x 6
## observation replicate variety nitro yield nitroF
## <dbl> <chr> <chr> <dbl> <dbl> <fct>
## 1 1 I Victory 0 111 0
## 2 2 I Victory 0.2 130 0.2
## 3 3 I Victory 0.4 157 0.4
## 4 4 I Victory 0.6 174 0.6
## 5 5 I Golden.rain 0 117 0
## 6 6 I Golden.rain 0.2 114 0.2
library(lattice)
library(car)
## Loading required package: carData
library(carData)
library(agricolae)
with(sp.oats, xyplot(yield ~ nitroF | variety))
with(sp.oats, xyplot(yield ~ nitroF | variety, groups = replicate))
with(sp.oats, xyplot(yield ~ nitroF | variety, groups = replicate, aspect = "xy"))
with(sp.oats, xyplot(yield ~ nitroF | variety, groups = replicate, aspect = "xy", type = "o"))
with(sp.oats, xyplot(yield ~ nitroF | variety, groups = replicate, aspect = "xy", type = "a"))
\(*\)variedad= factor de la parcela principal. Parcela dividida dada por una subparcela de terreno.
\(*\)Dosis de nitrógeno= factor de la subparcela.
\(*\)variedad se bloquea; bloque y variedad constituyen la unidad experimental de la parcela principal.
\[y_{ijk}=\mu+τ_i+γ_k+η_{ik}+β_j+(αβ)_{ij}+ϵ_{ijk}\]
\(-Y:\) \[y_{ijk}:~Rendimiento~ avena ~(Variable~ respuesta)\\ τ_i: ~Efecto~ de~ la~ variedad\\ γ_k: ~Efecto~ del~ bloqueo\\ η_{ik}: ~Error~ de~ la~ parcela~ principal\\ β_j:~ Efecto~ del ~nitrógeno\\ (αβ)_{ij}: ~Efecto~ de ~la~ interacción ~variedad:nitrógeno\\ ϵ_{ijk}:~ Error ~de~ las~ subparcelas\]
res.bad <- lm(yield ~ variety * nitroF, data = sp.oats)
anova(res.bad)
## Analysis of Variance Table
##
## Response: yield
## Df Sum Sq Mean Sq F value Pr(>F)
## variety 2 1786.4 893.2 1.7949 0.1750
## nitroF 3 20020.5 6673.5 13.4108 8.367e-07 ***
## variety:nitroF 6 321.7 53.6 0.1078 0.9952
## Residuals 60 29857.3 497.6
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
res.good <- aov(yield ~ variety * nitroF + Error(replicate:variety), data = sp.oats)
summary(res.good)
##
## Error: replicate:variety
## Df Sum Sq Mean Sq F value Pr(>F)
## variety 2 1786 893.2 0.612 0.555
## Residuals 15 21889 1459.2
##
## Error: Within
## Df Sum Sq Mean Sq F value Pr(>F)
## nitroF 3 20020 6673 37.686 2.46e-12 ***
## variety:nitroF 6 322 54 0.303 0.932
## Residuals 45 7969 177
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
res.good2 <- aov(yield ~ variety * nitroF + replicate:variety, data = sp.oats)
summary(res.good2)
## Df Sum Sq Mean Sq F value Pr(>F)
## variety 2 1786 893 5.044 0.0106 *
## nitroF 3 20020 6673 37.686 2.46e-12 ***
## variety:nitroF 6 322 54 0.303 0.9322
## variety:replicate 15 21889 1459 8.240 1.61e-08 ***
## Residuals 45 7969 177
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot(res.good2, 1)
plot(res.good2, 2)
plot(res.good2, 3)
plot(res.good2, 4)
plot(res.good2, 6)
#plot(res.good2, 5) ESTE GRÁFICO NO ES POSIBLE CORRERLO YA QUE SE MUESTRA UN ERROR EN LA LONGITUD DE DATOS (GRADOS DE LBERTAD), PROBANDO CON OTROS DATOS QUE FUERON USADOS POR OTROS COMPAÑEROS ES POSIBLE PERO EL GRAFICO SE MUESTRA MUY DESORDENADO Y CON MENOS DATOS DE LOS QUE EN REALIDAD FUE MEDIDO EL MODELO
boxCox(res.good2)
#### Dado que la gráfica de Box-Cox es buena, no es necesario realizar ninguna transformación. Aún necesita identificar qué niveles de nitrógeno son diferentes.
with(sp.oats, HSD.test(yield, nitroF, DFerror = 45, MSerror = 117))
library(gplots)
##
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
plot.stuff <- with(sp.oats, HSD.test(yield, nitroF, DFerror = 45, MSerror = 117))
names(plot.stuff)
## [1] "statistics" "parameters" "means" "comparison" "groups"
plot.stuff$means
## yield std r Min Max Q25 Q50 Q75
## 0 79.38889 19.39417 18 53 117 63.25 72.0 94.25
## 0.2 98.88889 21.84407 18 64 140 83.75 95.0 112.50
## 0.4 114.22222 22.31738 18 81 161 97.75 115.0 124.75
## 0.6 123.38889 22.99908 18 86 174 106.25 121.5 139.00
plot.stuff$groups
## yield groups
## 0.6 123.38889 a
## 0.4 114.22222 a
## 0.2 98.88889 b
## 0 79.38889 c
barplot2(plot.stuff$means[,1])
# Añadiendo algunas etiquetas
barplot2(plot.stuff$means[, 1], names.arg = rownames(plot.stuff$means), xlab = "Nitrogeno",
ylab = "Rendimiento por Acre")
# Añadiendo algunas barras de error
mu.i <- plot.stuff$means[, 1]
se.i <- qt(1 - 0.05/2, 45) * plot.stuff$means[, 2]
bp <- barplot2(mu.i, names.arg = rownames(plot.stuff$means), xlab = "Nitrogeno",
ylab = "Rendimiento por Acre", plot.ci = TRUE, ci.l = mu.i - se.i, ci.u = mu.i +
se.i)
# Agrupandolos conjuntamente
text(bp, 0, plot.stuff$groups[1, 3], cex = 1, pos = 3)
#Es esto correcto?
plot.stuff$groups
## yield groups
## 0.6 123.38889 a
## 0.4 114.22222 a
## 0.2 98.88889 b
## 0 79.38889 c
order(plot.stuff$groups[, 1])
## [1] 4 3 2 1
plot.stuff$groups[order(plot.stuff$groups[, 1]), 3]
## NULL
# Esto es mejor
bp <- barplot2(mu.i, names.arg = rownames(plot.stuff$means), xlab = "Nitrogeno",
ylab = "Rendimiento por Acre", plot.ci = TRUE, ci.l = mu.i - se.i, ci.u = mu.i +
se.i)
text(bp, 0, plot.stuff$groups[order(plot.stuff$groups[, 1]), 3], cex = 1, pos = 3)
# Algunas veces es más fácil hacerlo manualmente
bp <- barplot2(mu.i, names.arg = rownames(plot.stuff$means), xlab = "Nitrogeno",
ylab = "Rendimiento por Acre", plot.ci = TRUE, ci.l = mu.i - se.i, ci.u = mu.i +
se.i)
text(bp, 0, c("A", "B", "C", "C"), cex = 1, pos = 3)
\(*\)En este experimento, desea medir los efectos de tres factores sobre la cantidad de glucógeno en el hígado. En su experimento, hay 6 ratas (parcelas completas).
\(*\)A cada rata, se le asignó al azar una de las tres dietas alimentarias (T1, T2 y T3).
\(*\)De cada rata, se extrajo el hígado y se dividió en cuatro segmentos. Cada segmento se preparó utilizando uno de dos productos químicos diferentes (P1 y P2).
\(*\)Finalmente, se midió el nivel de glucógeno de cada pedazo de hígado usando dos técnicas analíticas diferentes (A y B).
\(*\)La unidad experimental de la dieta es la rata. La unidad experimental para la preparación química del hígado es una tira de hígado. La unidad experimental de la técnica analítica es un trozo de hígado. Todos son diferentes.
library(readxl)
spp.rat<- Glicogeno_ratas_Parcelas_divididas_divididas <- read_excel("Glicogeno.ratas Parcelas divididas-divididas.xlsx")
head(spp.rat)
## # A tibble: 6 x 5
## glycogen food rat prep method
## <dbl> <chr> <chr> <chr> <chr>
## 1 127 T1 Remy P1 A
## 2 126 T1 Remy P1 B
## 3 127 T1 Remy P2 A
## 4 121 T1 Remy P2 B
## 5 124 T1 Remy P1 A
## 6 125 T1 Remy P1 B
p<-as.vector(spp.rat$prep)
m<-as.vector(spp.rat$method)
factor(m):factor(p)
## [1] A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2
## [16] B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1
## [31] A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1 B:P1 A:P2 B:P2 A:P1
## [46] B:P1 A:P2 B:P2
## Levels: A:P1 A:P2 B:P1 B:P2
X_Y<-xyplot(spp.rat$glycogen~(factor(m):factor(p))|spp.rat$food, groups=spp.rat$rat, aspect="xy")
with(spp.rat, X_Y)
#### Este es un diseño loco, pero sucede. El tratamiento, la preparación y el método tienen EM denominador diferente para su prueba f.
fact.bad <- lm(glycogen ~ food * prep * method, data = spp.rat)
anova(fact.bad)
## Analysis of Variance Table
##
## Response: glycogen
## Df Sum Sq Mean Sq F value Pr(>F)
## food 2 3234.2 1617.12 27.2310 6.267e-08 ***
## prep 1 65.6 65.58 1.1043 0.3003
## method 1 91.5 91.48 1.5405 0.2226
## food:prep 2 173.7 86.84 1.4624 0.2451
## food:method 2 19.0 9.48 0.1596 0.8530
## prep:method 1 1.9 1.88 0.0316 0.8598
## food:prep:method 2 20.3 10.14 0.1708 0.8436
## Residuals 36 2137.9 59.39
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
sp.res <- aov(glycogen ~ food * prep + Error(rat/food), data = spp.rat)
summary(sp.res)
##
## Error: rat
## Df Sum Sq Mean Sq F value Pr(>F)
## food 2 3763 1881.3 96.32 0.0103 *
## food:prep 1 580 579.7 29.68 0.0321 *
## Residuals 2 39 19.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Error: rat:food
## Df Sum Sq Mean Sq
## food 1 87.5 87.5
##
## Error: Within
## Df Sum Sq Mean Sq F value Pr(>F)
## prep 1 20.5 20.51 0.683 0.414
## food:prep 2 114.3 57.16 1.905 0.163
## Residuals 38 1140.3 30.01
sp.res <- aov(glycogen ~ food * prep * method + Error(rat/food:prep), data = spp.rat)
summary(sp.res)
##
## Error: rat
## Df Sum Sq Mean Sq F value Pr(>F)
## food 2 3763 1881.3 96.32 0.0103 *
## food:prep 1 580 579.7 29.68 0.0321 *
## Residuals 2 39 19.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Error: rat:food:prep
## Df Sum Sq Mean Sq F value Pr(>F)
## food 1 87.50 87.50 1.485 0.347
## prep 1 20.51 20.51 0.348 0.615
## method 1 214.85 214.85 3.647 0.196
## food:prep 2 126.04 63.02 1.070 0.483
## Residuals 2 117.81 58.91
##
## Error: Within
## Df Sum Sq Mean Sq F value Pr(>F)
## method 1 48.7 48.69 1.971 0.171
## food:method 2 7.7 3.83 0.155 0.857
## prep:method 1 14.2 14.22 0.576 0.454
## food:prep:method 2 9.1 4.54 0.184 0.833
## Residuals 29 716.3 24.70