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)
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")
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)
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.
bartlett.test(pul1~TRt)
Otra forma de realizar la prueba de Bartlett que brinda los mismos resultados
bartlett.test(m0$res, TRt)
leveneTest(pul1~TRt)
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)
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)])
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))
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)
bartlett.test(m2$res, TRt)
bartlett.test(m3$res, TRt)
outLSD <-LSD.test(m3, "TRt",console=TRUE)
outHSD<-HSD.test(m3, "TRt",console=TRUE)
SNK.test(m3, "TRt",console=TRUE)
scheffe.test(m3, "TRt",console=TRUE)
duncan.test(m3, "TRt",console=TRUE)
LSD.test(m2, "TRt", p.adj= "bon",console=TRUE)
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())