febrero 21, 2017

Experimentos Factoriales


Gráfico condicionado en R, representando los resultados del experimento factorial descrito en el Capítulo 10 de Experimentación en Agricultura


coplot(Peso ~ Riego | Potasio, data=olivo, panel=panel.smooth,
       xlab="Peso de brotes (g de materia seca) de olivos: Riego vs Potasio")


Los datos y la explicación de Experimentos Factoriales, están minuciosamente detallados en las páginas 121–134, los siguientes códigos de R y SAS muestran una alternativa más de análisis.


Códigos de R

#***********************************************************
# EXPERIMENTACIÓN EN AGRICULTURA                              
# Fernández Escobar, R.; Trapero, A.; Domínguez, J. 2010       
# CAPÍTULO 10: EXPERIMENTOS FACTORIALES                   
#************************************************************
#### Importando datos
olivo <- read.csv("C:\\Users\\Administrator\\Desktop\\tabla 10.2.csv", header=TRUE)
olivo$Riego   <- factor(olivo$Riego,   levels = c(1,2), labels = c("Bajo", "Alto"))
olivo$Potasio <- factor(olivo$Potasio, levels = c(1,2), labels = c("Bajo", "Alto"))
olivo$Potasio
olivo$Riego
attach(olivo); olivo
#### Tratamientos e interacciones
replications(Peso ~ Riego*Potasio, data=olivo)
with(olivo, table(Riego, Potasio))
#### Representación visual de datos
# Gráfico de Interacciones
interaction.plot(Riego, Potasio, Peso) # opción 1
with(olivo, interaction.plot(x.factor=Riego, trace.factor=Potasio, 
                             response=Peso, fun=mean, type="b", legend=T,
                             ylab="Peso", main="Gráfico de interacción", pch=c(1,19))) # opción 2
# Gráfico condicionado
coplot(Peso ~ Riego | Potasio, data=olivo, panel=panel.smooth,
       xlab="Peso de brotes (g de materia seca) de olivos: Riego vs Potasio")

# Diagrama de caja y bigotes
library (ggplot2)
ggplot(olivo, aes(y=Peso, x=Riego:Potasio)) + geom_boxplot()
#### Análisis de Varianza para experimento factorial
resultados <- lm(Peso ~ factor(Rep) + Riego*Potasio, data = olivo)
anova(resultados)
# Medias calculadas en el ANOVA
resultados <- aov(Peso ~ factor(Rep) + Riego*Potasio, data = olivo)
model.tables(resultados, type = "means", se=T)
# Gráficos para evaluar la predicción del modelo
par(mfrow=c(1,2))
plot(resultados, which = 1) # Residuos vs ajustados
plot(resultados, which = 2) # Q-Q
# Gráficos de interacciones con el paquete "phia"
# installed.packages("phia")
library(phia)
gráficos <- interactionMeans(resultados); plot (gráficos)
#### Comparación de medias
# Comparación a posteriori LSD (opción 1)
library(agricolae)
LSD <- LSD.test(Peso, Riego:Potasio, DFerror = 15, MSerror = 2.322); LSD # DFerror and MSerror resultados de ANOVA
LSD <- pairwise.t.test(Peso, Riego:Potasio, p.adjust = "none", pool.sd = T); LSD
# Comparación a posteriori Tukey (opción 2)
Tukey <- TukeyHSD(resultados, conf.level = .95); Tukey
library(foreign)
tx <- with(olivo, interaction(Riego, Potasio)) 
amod <- aov(Peso ~ tx, data = olivo)
Tukey <- HSD.test(amod, "tx", group=TRUE); Tukey
library(multcomp)
tuk <- glht(amod, linfct = mcp(tx = "Tukey"))
summary(tuk); tuk.cld <- cld(tuk)
par(mfrow=c(1,1)); opar <- par(mai=c(1,1,1.5,1));plot(tuk.cld); par(opar) # dev.off() # reajustar marco de gráfico
#### ANOVA unifactorial y prueba de Bartlett para homegeneidad de varianzas
# Diseño Completamente Aleatorio para Peso (Riego)
anova <- aov(Peso ~ Riego, data=olivo); summary(anova)
model.tables(anova, type = "means", se=T)
bartlett.test(Peso ~ Riego, data = olivo)
# Diseño Completamente Aleatorio para Peso (Potasio)
anova <- aov(Peso ~ Potasio, data=olivo); summary(anova)
model.tables(anova, type = "means", se=T)
bartlett.test(Peso ~ Potasio, data = olivo)


Códigos de SAS


/***********************************************************
 EXPERIMENTACIÓN EN AGRICULTURA                             
 Fernández Escobar, R.; Trapero, A.; Domínguez, J. 2010      
 CAPÍTULO 10: EXPERIMENTOS FACTORIALES                 
************************************************************/

DATA olivo;
INPUT Riego$ Potasio$ Rep Peso;
CARDS;
Bajo   Bajo   1      11
Bajo   Bajo   2      13
Bajo   Bajo   3      12
Bajo   Bajo   4      14
Bajo   Bajo   5      15
Bajo   Bajo   6      13
Bajo   Alto   1      14
Bajo   Alto   2      13
Bajo   Alto   3      10
Bajo   Alto   4      15
Bajo   Alto   5      14
Bajo   Alto   6      11
Alto   Bajo   1      17
Alto   Bajo   2      19
Alto   Bajo   3      20
Alto   Bajo   4      17
Alto   Bajo   5      18
Alto   Bajo   6      16
Alto   Alto   1      21
Alto   Alto   2      19
Alto   Alto   3      22
Alto   Alto   4      21
Alto   Alto   5      23
Alto   Alto   6      20
;
ODS HTML;
PROC PRINT;

PROC MEANS MEAN STD STDERR;
       VAR peso;
       CLASS riego potasio;
RUN;

* ANOVA, separación de medias y test de igual de varianzas LSD y Tukey;
PROC GLM;
        CLASS Rep Riego Potasio;
        MODEL Peso = Rep Riego Potasio Riego*Potasio;
        LSMEANS Riego*Potasio / TDIFF;
        LSMEANS Riego*Potasio / TDIFF ADJUST=TUKEY;
RUN;

* ANOVA Unifactorial y Prueba de Bartlett para homegeneidad de varianzas;
PROC ANOVA;
       CLASS Riego;
       MODEL Peso = Riego; *Diseño Completamente Aleatorio para Peso (Riego);
       MEANS Riego / HOVTEST = BARTLETT;
RUN;

PROC ANOVA;
       CLASS Potasio;
       MODEL Peso = Potasio; *Diseño Completamente Aleatorio para Peso (Potasio);
       MEANS Potasio / HOVTEST = BARTLETT;
RUN;
QUIT;

ODS HTML CLOSE;

--------------------------------------------------------





No hay comentarios:

Publicar un comentario