Un agrónomo desea determinar el efecto de diferentes fuentes de nitrógeno en la producción de una materia seca sobre cebada forrajera. Hay cinco fuentes a ser comparadas: \((NH_4)_2 SO_4\) , \(NH_4NO_3\), \(CO(NH_2)_2\), \(Ca(NO_3)_2\), \(NaNO_3\) y un tratamiento control sin nitrógeno. Se desea aplicar los resultados sobre un rango bastante amplio de condiciones, se hicieron ensayos sobre cuatro tipos de suelo.
Para el diseño experimental se eligió un diseño en bloques completamente aleatorizado con los tipos de suelo como factor de bloqueo, se localizaron seis parcelas en cada uno de los cuatro tipos de suelo, y se asignó aleatoriamente los tratamientos a las parcelas dentro de cada tipo de suelo. La variable de interés es la producción en (kg/parcela) de cebada bajo varias fuentes de nitrógeno.
Los datos obtenidos de realizar este experimento se presentan en la tabla 7.3.
library(readxl)
ferti1 <- read_excel("fertilidad.xlsx")
ferti1$tratamiento <- factor(ferti1$tratamiento,
levels = c("Control", "CaNO32", "CONH22",
"NaNO3", "NH42SO4", "NH4NO3"))
ferti1$nombre <- factor(ferti1$nombre,
levels = c( "Sin nitrógeno", "Nitrato de calcio",
"Urea", "Nitrato de sodio",
"Sulfato de amonio", "Nitrato de amonio"))
ferti1$tipo_suelo <- factor(ferti1$tipo_suelo,
levels = c("I", "II", "III", "IV"))
library(ggplot2)
g1 <- ggplot(ferti1, aes(nombre, produccion, col = tipo_suelo))
g1 + geom_point() +
geom_line(aes(group = tipo_suelo)) +
theme(axis.text.x = element_text(angle = 30, hjust = 1))
Se propone:
\[ y_{ij} = \mu + \alpha_i + \beta_j + \epsilon_{ij}, \qquad i = 1, 2, \cdots, 6, \quad j = 1, 2, \cdots, 4 \\ \epsilon_{ij} \sim \mathcal{N}(0,\sigma^2) \quad i.i.d. \] ## Hipótesis.
Como hipótesis principal se propone:
\[ H_0: \alpha_1 = \alpha_2 = \alpha_3 = \alpha_4 = \alpha_5 = \alpha_6 = 0 \\ H_A: \textrm{Alguna } \alpha_i \textrm{ diferente de } 0 \] También se tiene una hipótesis de verificiación en cuanto al bloque:
\[ H_0: \beta_1 = \beta_2 = \beta_3 = \beta_4 = 0 \\ H_A: \textrm{Alguna } \alpha_i \textrm{ diferente de } 0 \]
modelo1 <- aov(produccion ~ nombre + tipo_suelo,
data = ferti1)
summary(modelo1)
## Df Sum Sq Mean Sq F value Pr(>F)
## nombre 5 256.15 51.23 16.85 1.10e-05 ***
## tipo_suelo 3 192.75 64.25 21.13 1.22e-05 ***
## Residuals 15 45.62 3.04
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model.tables(modelo1, type = "effects", se = TRUE)
## Tables of effects
##
## nombre
## nombre
## Sin nitrógeno Nitrato de calcio Urea Nitrato de sodio Sulfato de amonio
## -5.492 0.183 -1.492 -0.142 5.408
## Nitrato de amonio
## 1.533
##
## tipo_suelo
## tipo_suelo
## I II III IV
## -4.008 -0.342 3.975 0.375
##
## Standard errors of effects
## nombre tipo_suelo
## 0.8719 0.7119
## replic. 4 6
model.tables(modelo1, type = "means", se = TRUE)
## Tables of means
## Grand mean
##
## 30.84167
##
## nombre
## nombre
## Sin nitrógeno Nitrato de calcio Urea Nitrato de sodio Sulfato de amonio
## 25.35 31.03 29.35 30.70 36.25
## Nitrato de amonio
## 32.38
##
## tipo_suelo
## tipo_suelo
## I II III IV
## 26.83 30.50 34.82 31.22
##
## Standard errors for differences of means
## nombre tipo_suelo
## 1.233 1.007
## replic. 4 6
# Estimador de la varianza del error aleatorio
varErr <- summary(modelo1)[[1]]$"Mean Sq"[3]
# Estimación de la desviación estándar del error aleatorio
desvErr <- sqrt(varErr)
La estimación de la varianza de los errores aleatorios es de: 3.04. Es decir estimación de la desviación estándar de los errores es de: 1.74.
residuales <- residuals(modelo1)
residualesEstandarizados <- rstandard(modelo1) # Residuales estudentizados internos
residualesEstudentizado <- rstudent(modelo1) # Residuales estudentizados externos
shapiro.test(residuales)
##
## Shapiro-Wilk normality test
##
## data: residuales
## W = 0.96731, p-value = 0.6013
shapiro.test(residualesEstandarizados)
##
## Shapiro-Wilk normality test
##
## data: residualesEstandarizados
## W = 0.96731, p-value = 0.6013
shapiro.test(residualesEstudentizado)
##
## Shapiro-Wilk normality test
##
## data: residualesEstudentizado
## W = 0.96563, p-value = 0.5613
bartlett.test(produccion ~ nombre,
data = ferti1)
##
## Bartlett test of homogeneity of variances
##
## data: produccion by nombre
## Bartlett's K-squared = 2.8214, df = 5, p-value = 0.7275
bartlett.test(produccion ~ tipo_suelo,
data = ferti1)
##
## Bartlett test of homogeneity of variances
##
## data: produccion by tipo_suelo
## Bartlett's K-squared = 1.6051, df = 3, p-value = 0.6582
No se tiene el orden o la secuencia de experimentación, por lo tanto no se puede verificar el supuesto de independencia.
par.orig <- par(no.readonly = TRUE)
par(mfrow = c(2, 2))
plot(modelo1)
par(par.orig)
ferti1$residuales <- residuales
ferti1$stdresiduales <- residualesEstandarizados
ferti1$studresiduales <- residualesEstudentizado
ferti1$predichos <- predict(modelo1)
library(ggplot2)
g1 <- ggplot(ferti1, aes(produccion, residuales))
g1 + geom_point() + geom_smooth(method = lm) +
geom_hline(yintercept = 0, col = "red")
library(ggplot2)
g1 <- ggplot(ferti1, aes(predichos, residuales))
g1 + geom_point() + geom_smooth(method = lm) +
geom_hline(yintercept = 0, col = "red")
predichosIC <- data.frame(predict(modelo1, interval = "confidence"))
ferti1$inf <- predichosIC$lwr
ferti1$sup <- predichosIC$upr
library(ggplot2)
g1 <- ggplot(ferti1, aes(nombre, produccion, col = tipo_suelo))
g1 + geom_point() +
geom_point(aes(nombre, predichos), shape = 4, size = 2) +
geom_errorbar(aes(ymax = sup, ymin = inf), width = 0.2) +
ylab("Producción (Kg/parcela)") +
xlab("Fertilizante") +
labs(title = "Producción vs fertilizante",
subtitle = "Tipo de suelo como bloque") +
geom_line(aes(nombre, predichos, group = tipo_suelo)) +
theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
guides(col = guide_legend(title = "Tipo de suelo"))
library(multcomp)
## Loading required package: mvtnorm
## Loading required package: survival
## Loading required package: TH.data
## Loading required package: MASS
##
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
##
## geyser
PruebaDunnet <- glht(modelo1, linfct = mcp(nombre = "Dunnett"))
summary(PruebaDunnet)
##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Dunnett Contrasts
##
##
## Fit: aov(formula = produccion ~ nombre + tipo_suelo, data = ferti1)
##
## Linear Hypotheses:
## Estimate Std. Error t value Pr(>|t|)
## Nitrato de calcio - Sin nitrógeno == 0 5.675 1.233 4.602 0.00141 **
## Urea - Sin nitrógeno == 0 4.000 1.233 3.244 0.02195 *
## Nitrato de sodio - Sin nitrógeno == 0 5.350 1.233 4.339 0.00264 **
## Sulfato de amonio - Sin nitrógeno == 0 10.900 1.233 8.839 < 0.001 ***
## Nitrato de amonio - Sin nitrógeno == 0 7.025 1.233 5.697 < 0.001 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)
(pruebaTukey <- TukeyHSD(modelo1))
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = produccion ~ nombre + tipo_suelo, data = ferti1)
##
## $nombre
## diff lwr upr p adj
## Nitrato de calcio-Sin nitrógeno 5.675 1.66867109 9.6813289 0.0038124
## Urea-Sin nitrógeno 4.000 -0.00632891 8.0063289 0.0504763
## Nitrato de sodio-Sin nitrógeno 5.350 1.34367109 9.3563289 0.0063062
## Sulfato de amonio-Sin nitrógeno 10.900 6.89367109 14.9063289 0.0000031
## Nitrato de amonio-Sin nitrógeno 7.025 3.01867109 11.0313289 0.0004979
## Urea-Nitrato de calcio -1.675 -5.68132891 2.3313289 0.7496184
## Nitrato de sodio-Nitrato de calcio -0.325 -4.33132891 3.6813289 0.9997870
## Sulfato de amonio-Nitrato de calcio 5.225 1.21867109 9.2313289 0.0076579
## Nitrato de amonio-Nitrato de calcio 1.350 -2.65632891 5.3563289 0.8760096
## Nitrato de sodio-Urea 1.350 -2.65632891 5.3563289 0.8760096
## Sulfato de amonio-Urea 6.900 2.89367109 10.9063289 0.0005982
## Nitrato de amonio-Urea 3.025 -0.98132891 7.0313289 0.1995232
## Sulfato de amonio-Nitrato de sodio 5.550 1.54367109 9.5563289 0.0046250
## Nitrato de amonio-Nitrato de sodio 1.675 -2.33132891 5.6813289 0.7496184
## Nitrato de amonio-Sulfato de amonio -3.875 -7.88132891 0.1313289 0.0608085
##
## $tipo_suelo
## diff lwr upr p adj
## II-I 3.6666667 0.7648371 6.5684962 0.0115167
## III-I 7.9833333 5.0815038 10.8851629 0.0000052
## IV-I 4.3833333 1.4815038 7.2851629 0.0028416
## III-II 4.3166667 1.4148371 7.2184962 0.0032348
## IV-II 0.7166667 -2.1851629 3.6184962 0.8908645
## IV-III -3.6000000 -6.5018295 -0.6981705 0.0131166
modelo2 <- aov(produccion ~ nombre, data = ferti1)
summary(modelo2)
## Df Sum Sq Mean Sq F value Pr(>F)
## nombre 5 256.1 51.23 3.869 0.0148 *
## Residuals 18 238.4 13.24
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Estimador de la varianza del error aleatorio
(varErr2 <- summary(modelo2)[[1]]$"Mean Sq"[2])
## [1] 13.2425
# Estimación de la desviación estándar del error aleatorio
(desvErr2 <- sqrt(varErr2))
## [1] 3.639025
PruebaDunnet2 <- glht(modelo2, linfct = mcp(nombre = "Dunnett"))
summary(PruebaDunnet2)
##
## Simultaneous Tests for General Linear Hypotheses
##
## Multiple Comparisons of Means: Dunnett Contrasts
##
##
## Fit: aov(formula = produccion ~ nombre, data = ferti1)
##
## Linear Hypotheses:
## Estimate Std. Error t value Pr(>|t|)
## Nitrato de calcio - Sin nitrógeno == 0 5.675 2.573 2.205 0.14468
## Urea - Sin nitrógeno == 0 4.000 2.573 1.554 0.41453
## Nitrato de sodio - Sin nitrógeno == 0 5.350 2.573 2.079 0.18146
## Sulfato de amonio - Sin nitrógeno == 0 10.900 2.573 4.236 0.00213 **
## Nitrato de amonio - Sin nitrógeno == 0 7.025 2.573 2.730 0.05327 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- single-step method)
(pruebaTukey <- TukeyHSD(modelo2))
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = produccion ~ nombre, data = ferti1)
##
## $nombre
## diff lwr upr p adj
## Nitrato de calcio-Sin nitrógeno 5.675 -2.502653 13.852653 0.2826336
## Urea-Sin nitrógeno 4.000 -4.177653 12.177653 0.6361203
## Nitrato de sodio-Sin nitrógeno 5.350 -2.827653 13.527653 0.3402462
## Sulfato de amonio-Sin nitrógeno 10.900 2.722347 19.077653 0.0056028
## Nitrato de amonio-Sin nitrógeno 7.025 -1.152653 15.202653 0.1172482
## Urea-Nitrato de calcio -1.675 -9.852653 6.502653 0.9851439
## Nitrato de sodio-Nitrato de calcio -0.325 -8.502653 7.852653 0.9999946
## Sulfato de amonio-Nitrato de calcio 5.225 -2.952653 13.402653 0.3642271
## Nitrato de amonio-Nitrato de calcio 1.350 -6.827653 9.527653 0.9944171
## Nitrato de sodio-Urea 1.350 -6.827653 9.527653 0.9944171
## Sulfato de amonio-Urea 6.900 -1.277653 15.077653 0.1279938
## Nitrato de amonio-Urea 3.025 -5.152653 11.202653 0.8425115
## Sulfato de amonio-Nitrato de sodio 5.550 -2.627653 13.727653 0.3039622
## Nitrato de amonio-Nitrato de sodio 1.675 -6.502653 9.852653 0.9851439
## Nitrato de amonio-Sulfato de amonio -3.875 -12.052653 4.302653 0.6650810