Para iniciar se instalará el paquete de importación “data.table”. En este caso resulta útil para importar un archivo en formato “txt” (Si ya dispone del paquete, no es necesario ejecutar este paso)

install.packages("data.table")

Invocar ahora la biblioteca “data.table”

library(data.table)

Datos de un experimento realizado con el objetivo de controlar pulgones (Aphis gossypii Glover) en el cultivo de pepino, instalado en un diseño completamente al azar con 6 repeticiones. La variable de respuesta medida fue el número de pulgones vivos encontrados después de la aplicación de producto indicados para su control.

Importe el archivo “pulgones.txt” desde una ubicación en Internet y cree el objeto DICt de la siguiente manera:

DICt<- fread("https://archive.org/download/pulgones/pulgones.txt",header=T, sep="\t", dec=",")

Para visualizar el contenido de los primeros seis registros del archivo “DICt” ejecute:

print(head(DICt))   

Para visualizar de forma compacta la estructura de los datos ejecute:

str(DICt)

Es necesario cargar en la memoria las variables del archivo DICt, para acceder directamente a cada una de las variables, esto se logra mediante el uso del comando “attach”

attach(DICt)

Definición del modelo y análisis de la varianza

Se crea un objeto tipo factor TRt con la columna trat

TRt<- factor(trat)

Se crea el vector de datos pul con la columna pulgones

pul<-as.vector(pulgones)

Luego el vector pul se convierte a un vector pul1 de tipo numérico

pul1<-as.numeric(pul)

Diagrama de cajas de dispersión (Box plot)

plot(pul1~TRt, xlab="Productos", ylab="Cantidad de Pulgones")

Análisis de varianza usando la función (aov) Analysis of Variance

m0<-aov(pul1~TRt)    
anova(m0)

Se invoca para su uso el paquete “agricolae”

library(agricolae)

Coeficiente de variación

cv.model(m0)

Análisis gráfico de los residuos

par(mfrow = c(2,2))
plot(m0)

Evaluación de los Supuestos del modelo estadístico matemático

Prueba de normalidad Shapiro-Wilk

Hipótesis

Ho: Los residuos siguen la distribución normal

Ha: Los residuos no siguen la distribución normal

Prueba de normalidad Shapiro-wilk para los residuos

shapiro.test(m0$res)

Para construir el gráfico QQ plot y verificar la normalidad, se invoca el paquete “car”

library(car)
par(mfrow = c(1,1))
qqPlot(m0)

Gráfico de predichos contra residuos estandarizados

para evaluar los supuestos de homogeneidad de varianzas e independencias

Valores predichos

fit <- fitted(m0)
res <- residuals(m0)
res_standard <- rstandard(m0)
res_student <- rstudent(m0)

Gráfico de predichos contra residuos estandarizados para verificar la homogeneidad de varianzas e independencia de los residuos

plot(fit,res_standard,xlab="Valores preditos", ylab="Residuos estandarizados",abline(h=0))

Analizando la figura anterior, sugiere que el principal problema de este conjunto de datos puede ser la heterocedasticidad. La variabilidad de los errores presenta una forma de cono o trompeta.

Prueba de homocedasticidad (homogeneidad de las varianzas)

Prueba de Bartlett

bartlett.test(pul1~TRt)

Otra forma de realizar la prueba de Bartlett que brinda los mismos resultados

bartlett.test(m0$res, TRt)

Prueba de Levene

leveneTest(pul1~TRt)

Transformación de los datos

Transformación logarítmica: Es utilizada cuando consta de cierta proporcionalidad entre las medias y las desviaciones estándar de los tratamientos.

m1 <- lm (log(pul1) ~ TRt)
anova(m1)
cv.model(m1)

Transformación box cox

Para realizar la transformación box cox es necesario invocar el paquete MASS

library(MASS)
boxcox(m0)

Ampliando la gráfica

boxcox(m0, lam = seq(-1, 1, 1/10))
boxcox(m0)
abline(boxcox(m0),v=0.2)

Para encontrar el valor de lambda

bc<-boxcox(m0)
(lambda <- bc$x[which.max(bc$y)])

Análisis de varianza, ajuste con la variable transformada

realmente, y^(lambda) es llamada transformación de Tukey

m2 <- aov (pul1^0.2 ~ TRt, data = DICt)
anova(m2)
cv.model(m2)

La “y” transformada debería ser: (y ^ (lambda) -1) / lambda, en lugar de y ^ (lambda).

m3<-lm(((pul1^lambda-1)/lambda) ~ TRt)
anova(m3)
cv.model(m3)

Análisis gráfico de los residuo

par(mfrow = c(2,2))
plot(m2)
par(mfrow = c(1,1))

Prueba de normalidad Shapiro-Wilk

Hipótesis

Ho: Los residuos siguen la distribución normal

Ha: Los residuos no siguen la distribución normal

Prueba de normalidad Shapiro-wilk para los residuos

shapiro.test(m2$res)
shapiro.test(m3$res)

Prueba de homocedasticidad (homogeneidad de las varianzas)

Prueba de Bartlett

bartlett.test(m2$res, TRt)
bartlett.test(m3$res, TRt)

Pruebas de comparación múltiple de medias

Método de la diferencia mínima significativa, Least Significant Difference (LSD)

outLSD <-LSD.test(m3, "TRt",console=TRUE)

Prueba de Tukey

outHSD<-HSD.test(m3, "TRt",console=TRUE)

Prueba de Student-Newman-Keuls (SNK)

SNK.test(m3, "TRt",console=TRUE)

Prueba de Scheffé

scheffe.test(m3, "TRt",console=TRUE)

Prueba de Duncan

duncan.test(m3, "TRt",console=TRUE)

Prueba de Bonferroni

LSD.test(m2, "TRt", p.adj= "bon",console=TRUE)

Prueba de Scott-Knott

Para realizar la prueba de Scott-Knott se invoca el paquete “ScottKnott”

library(ScottKnott)

Se realiza la prueba con un nivel de significancia de 5%, utilizando la información del modelo generado con la función aov

sk <- SK(m2, which= "TRt"dispersion="se", sig.level=0.05)
summary(sk)

Para desvincular de la memoria las variables archivo DBA, ejecute lo siguiente:

detach(DICt)

Para borrar todos los objetos del Script, ejecute lo siguiente:

rm(list=ls())

Regresar a la página principal de Scripts