setwd("~/Google Drive/Agrosavia/Colaboraciones/Lucero/data")
regaliasdata = read.table("muestra4.csv", header=T, sep=",")
attach(regaliasdata)
library(nlme) #activates the nlme library
library(ggplot2)
## pH loess-time-course figure
pht<- ggplot(regaliasdata, aes(x = time.num.x)) +
  facet_grid(gen.x~trat.x) +
  geom_point(aes(y = ph.testa, colour = "ph.testa")) +
  geom_smooth(aes(y = ph.testa, colour = "ph.testa"), method = "loess", se=T) +
  scale_y_continuous(name = "pH") +  # Etiqueta de la variable continua
  scale_x_continuous(name = "day", breaks=seq(0,7,1)) + # Etiqueta de los grupos
  ggtitle("pH time course") +   # Título del plot
  theme(axis.line = element_line(colour = "black", # Personalización del tema
                                 size = 0.25))
pht + geom_smooth(aes(y = ph.grano, colour = "ph.grano"), method = "loess", se=T) +
  geom_point(aes(y=ph.grano, colour = "ph.grano"))
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'

## Acidity loess-time-course figure
act1<- ggplot(regaliasdata, aes(x = time.num.x)) +
  facet_grid(gen.x~trat.x) +
  geom_point(aes(y=acid.testa, colour = "acid.testa")) +
  geom_smooth(aes(y = acid.testa, colour = "acid.testa"), method = "loess", se=T) +
  scale_y_continuous(name = "Total acidity") +  # Etiqueta de la variable continua
  scale_x_continuous(name = "day", breaks=seq(0,7,1)) + # Etiqueta de los grupos
  ggtitle("Acidity time course") +   # Título del plot
  theme(axis.line = element_line(colour = "black", # Personalización del tema
                                 size = 0.25))
act1 + geom_smooth(aes(y = acid.grano, colour = "acid.grano"), method = "loess", se=T) +
  geom_point(aes(y=acid.grano, colour = "acid.grano"))
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'

## Temperature differences time course

temp1<- ggplot(regaliasdata, aes(x = time.num.x)) +
  facet_grid(gen.x~trat.x) +
  geom_point(aes(y=temp, colour = "temp")) +
  geom_smooth(aes(y = temp, colour = "temp"), method = "loess", se=T) +
  scale_y_continuous(name = "Temperature °C") +  # Etiqueta de la variable continua
  scale_x_continuous(name = "day", breaks=seq(0,7,1)) + # Etiqueta de los grupos
  ggtitle("Temperature time course") +   # Título del plot
  theme(axis.line = element_line(colour = "black", # Personalización del tema
                                 size = 0.25))

temp1 + geom_line(aes(y = tt, colour = "tt")) +
  geom_point(aes(y=tt, colour = "tt"))
## `geom_smooth()` using formula 'y ~ x'

## Repeated measures analysis
aov.temp <- aov(temp~factor(trat.x)*factor(gen.x)*factor(time.num.x) + Error(factor(muestra.num.x)))
aov.ph.grano <- aov(ph.grano~factor(trat.x)*factor(gen.x)*factor(time.num.x) + Error(factor(muestra.num.x)))
aov.ph.testa <- aov(ph.testa~factor(trat.x)*factor(gen.x)*factor(time.num.x) + Error(factor(muestra.num.x)))
summary(aov.temp)
## 
## Error: factor(muestra.num.x)
##                              Df Sum Sq Mean Sq F value   Pr(>F)    
## factor(trat.x)                1   9.41    9.41   16.49 0.000323 ***
## factor(gen.x)                 2 120.67   60.34  105.73 2.60e-14 ***
## factor(trat.x):factor(gen.x)  2  22.97   11.48   20.12 2.87e-06 ***
## Residuals                    30  17.12    0.57                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##                                                  Df Sum Sq Mean Sq F value
## factor(time.num.x)                                7  13153  1879.0 3328.34
## factor(trat.x):factor(time.num.x)                 7    195    27.9   49.41
## factor(gen.x):factor(time.num.x)                 14    181    12.9   22.93
## factor(trat.x):factor(gen.x):factor(time.num.x)  14    142    10.1   17.97
## Residuals                                       210    119     0.6        
##                                                 Pr(>F)    
## factor(time.num.x)                              <2e-16 ***
## factor(trat.x):factor(time.num.x)               <2e-16 ***
## factor(gen.x):factor(time.num.x)                <2e-16 ***
## factor(trat.x):factor(gen.x):factor(time.num.x) <2e-16 ***
## Residuals                                                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(aov.ph.grano)
## 
## Error: factor(muestra.num.x)
##                              Df Sum Sq Mean Sq F value   Pr(>F)    
## factor(trat.x)                1 24.464  24.464 440.487  < 2e-16 ***
## factor(gen.x)                 2  0.525   0.263   4.727   0.0164 *  
## factor(trat.x):factor(gen.x)  2 10.555   5.277  95.024 1.04e-13 ***
## Residuals                    30  1.666   0.056                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##                                                  Df Sum Sq Mean Sq F value
## factor(time.num.x)                                7  38.65   5.521  111.09
## factor(trat.x):factor(time.num.x)                 7  21.31   3.044   61.25
## factor(gen.x):factor(time.num.x)                 14  12.78   0.913   18.36
## factor(trat.x):factor(gen.x):factor(time.num.x)  14  13.55   0.968   19.48
## Residuals                                       210  10.44   0.050        
##                                                 Pr(>F)    
## factor(time.num.x)                              <2e-16 ***
## factor(trat.x):factor(time.num.x)               <2e-16 ***
## factor(gen.x):factor(time.num.x)                <2e-16 ***
## factor(trat.x):factor(gen.x):factor(time.num.x) <2e-16 ***
## Residuals                                                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(aov.ph.testa)
## 
## Error: factor(muestra.num.x)
##                              Df Sum Sq Mean Sq F value   Pr(>F)    
## factor(trat.x)                1  39.68   39.68   476.8  < 2e-16 ***
## factor(gen.x)                 2  23.40   11.70   140.6 5.79e-16 ***
## factor(trat.x):factor(gen.x)  2  21.99   11.00   132.1 1.34e-15 ***
## Residuals                    30   2.50    0.08                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##                                                  Df Sum Sq Mean Sq F value
## factor(time.num.x)                                7  334.6   47.80 1120.78
## factor(trat.x):factor(time.num.x)                 7   15.6    2.23   52.23
## factor(gen.x):factor(time.num.x)                 14   19.7    1.40   32.91
## factor(trat.x):factor(gen.x):factor(time.num.x)  14   20.5    1.47   34.42
## Residuals                                       210    9.0    0.04        
##                                                 Pr(>F)    
## factor(time.num.x)                              <2e-16 ***
## factor(trat.x):factor(time.num.x)               <2e-16 ***
## factor(gen.x):factor(time.num.x)                <2e-16 ***
## factor(trat.x):factor(gen.x):factor(time.num.x) <2e-16 ***
## Residuals                                                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Temperature Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), temp, lty=c(1:3),lwd=2,ylab="mean of temp", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), temp, lty=c(1:3),lwd=2,ylab="mean of temp", xlab="time", trace.label="treatment")

nestinginfo <- groupedData(temp ~ gen.x | muestra.num.x, data= regaliasdata)
fit.compsym <- gls(temp~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corCompSymm(, form= ~ 1 | muestra.num.x))
fit.nostruct <- gls(temp~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(temp~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(temp~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.compsym, fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df      AIC      BIC    logLik   Test   L.Ratio p-value
## fit.compsym      1 50 730.2069 904.2388 -315.1035                         
## fit.nostruct     2 84 682.5646 974.9383 -257.2823 1 vs 2 115.64232  <.0001
## fit.ar1          3 50 730.0494 904.0814 -315.0247 2 vs 3 115.48487  <.0001
## fit.ar1het       4 57 688.9371 887.3335 -287.4685 3 vs 4  55.11236  <.0001
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 2197906.0  <.0001
## factor(trat.x)                                      1     254.7  <.0001
## factor(gen.x)                                       2     356.6  <.0001
## factor(time.num.x)                                  7   16033.8  <.0001
## factor(trat.x):factor(gen.x)                        2      43.2  <.0001
## factor(trat.x):factor(time.num.x)                   7     147.3  <.0001
## factor(gen.x):factor(time.num.x)                   14      25.1  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14      44.4  <.0001
anova(fit.ar1het)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 1082592.9  <.0001
## factor(trat.x)                                      1       2.0  0.1632
## factor(gen.x)                                       2     174.9  <.0001
## factor(time.num.x)                                  7    8402.1  <.0001
## factor(trat.x):factor(gen.x)                        2      17.1  <.0001
## factor(trat.x):factor(time.num.x)                   7      86.0  <.0001
## factor(gen.x):factor(time.num.x)                   14      21.0  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14      34.1  <.0001
## Final model diagnostic plot
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.87094, p-value = 8.008e-15
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, acid.grano ~ fitted(.) | muestra.num.x, abline = c(0,1))

## pH testa Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), ph.testa, lty=c(1:3),lwd=2,ylab="mean of ph.testa", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), ph.testa, lty=c(1:3),lwd=2,ylab="mean of ph.testa", xlab="time", trace.label="Treatment")

nestinginfo <- groupedData(ph.testa ~ gen.x | muestra.num.x, data= regaliasdata)
fit.compsym <- gls(ph.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corCompSymm(, form= ~ 1 | muestra.num.x))
fit.nostruct <- gls(ph.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(ph.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(ph.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.compsym, fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df      AIC      BIC     logLik   Test  L.Ratio p-value
## fit.compsym      1 50 130.0091 304.0411 -15.004556                        
## fit.nostruct     2 84 112.9344 405.3081  27.532786 1 vs 2 85.07468  <.0001
## fit.ar1          3 50 131.9932 306.0251 -15.996585 2 vs 3 87.05874  <.0001
## fit.ar1het       4 57 110.3315 308.7279   1.834265 3 vs 4 35.66170  <.0001
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 199533.74  <.0001
## factor(trat.x)                                      1    745.27  <.0001
## factor(gen.x)                                       2    606.39  <.0001
## factor(time.num.x)                                  7    585.73  <.0001
## factor(trat.x):factor(gen.x)                        2    243.59  <.0001
## factor(trat.x):factor(time.num.x)                   7     55.08  <.0001
## factor(gen.x):factor(time.num.x)                   14     44.55  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14     41.06  <.0001
anova(fit.ar1het)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 156444.83  <.0001
## factor(trat.x)                                      1    518.92  <.0001
## factor(gen.x)                                       2    420.51  <.0001
## factor(time.num.x)                                  7   1035.99  <.0001
## factor(trat.x):factor(gen.x)                        2    161.61  <.0001
## factor(trat.x):factor(time.num.x)                   7     51.36  <.0001
## factor(gen.x):factor(time.num.x)                   14     34.84  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14     34.81  <.0001
## Final model diagnostic plots 
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.92201, p-value = 4.04e-11
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, acid.grano ~ fitted(.) | muestra.num.x, abline = c(0,1))

## pH grano Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), ph.grano, lty=c(1:3),lwd=2,ylab="mean of ph.grano", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), ph.grano, lty=c(1:3),lwd=2,ylab="mean of ph.grano", xlab="time", trace.label="Treatment")

nestinginfo <- groupedData(ph.grano ~ gen.x | muestra.num.x, data= regaliasdata)
fit.compsym <- gls(ph.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corCompSymm(, form= ~ 1 | muestra.num.x))
fit.nostruct <- gls(ph.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(ph.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(ph.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.compsym, fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df       AIC      BIC    logLik   Test   L.Ratio p-value
## fit.compsym      1 50 150.00569 324.0376 -25.00284                         
## fit.nostruct     2 84  79.36411 371.7378  44.31795 1 vs 2 138.64158  <.0001
## fit.ar1          3 50 147.22633 321.2583 -23.61316 2 vs 3 135.86222  <.0001
## fit.ar1het       4 57 107.30664 305.7031   3.34668 3 vs 4  53.91968  <.0001
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 240 
##                                                 numDF  F-value p-value
## (Intercept)                                         1 458680.6  <.0001
## factor(trat.x)                                      1   1151.1  <.0001
## factor(gen.x)                                       2      4.4  0.0127
## factor(time.num.x)                                  7    179.9  <.0001
## factor(trat.x):factor(gen.x)                        2    244.9  <.0001
## factor(trat.x):factor(time.num.x)                   7     99.6  <.0001
## factor(gen.x):factor(time.num.x)                   14     14.1  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14     30.1  <.0001
anova(fit.ar1het)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 254840.62  <.0001
## factor(trat.x)                                      1    917.11  <.0001
## factor(gen.x)                                       2     10.72  <.0001
## factor(time.num.x)                                  7    178.93  <.0001
## factor(trat.x):factor(gen.x)                        2    198.85  <.0001
## factor(trat.x):factor(time.num.x)                   7     96.50  <.0001
## factor(gen.x):factor(time.num.x)                   14     18.54  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14     28.79  <.0001
## Final model diagnostic plots 
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.87996, p-value = 2.97e-14
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, acid.grano ~ fitted(.) | muestra.num.x, abline = c(0,1))

## Testa acidity Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), acid.testa, lty=c(1:3),lwd=2,ylab="mean of acid.testa", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), acid.testa, lty=c(1:3),lwd=2,ylab="mean of acid.testa", xlab="time", trace.label="Treatment")

nestinginfo <- groupedData(acid.testa ~ gen.x | muestra.num.x, data= regaliasdata)
fit.compsym <- gls(acid.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corCompSymm(, form= ~ 1 | muestra.num.x))
fit.nostruct <- gls(acid.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(acid.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(acid.testa~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.compsym, fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df       AIC       BIC   logLik   Test   L.Ratio p-value
## fit.compsym      1 50 -368.1875 -194.1555 234.0937                         
## fit.nostruct     2 84 -432.4076 -140.0339 300.2038 1 vs 2 132.22010  <.0001
## fit.ar1          3 50 -357.7315 -183.6995 228.8657 2 vs 3 142.67613  <.0001
## fit.ar1het       4 57 -404.7125 -206.3161 259.3563 3 vs 4  60.98109  <.0001
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 14458.726  <.0001
## factor(trat.x)                                      1   277.713  <.0001
## factor(gen.x)                                       2    76.355  <.0001
## factor(time.num.x)                                  7   110.309  <.0001
## factor(trat.x):factor(gen.x)                        2   119.085  <.0001
## factor(trat.x):factor(time.num.x)                   7    95.639  <.0001
## factor(gen.x):factor(time.num.x)                   14    43.479  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14    43.485  <.0001
anova(fit.ar1het)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 11403.132  <.0001
## factor(trat.x)                                      1   153.767  <.0001
## factor(gen.x)                                       2    81.948  <.0001
## factor(time.num.x)                                  7   118.615  <.0001
## factor(trat.x):factor(gen.x)                        2    70.978  <.0001
## factor(trat.x):factor(time.num.x)                   7   119.930  <.0001
## factor(gen.x):factor(time.num.x)                   14    34.945  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14    45.038  <.0001
## Final model diagnostic plots 
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.80233, p-value < 2.2e-16
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, acid.grano ~ fitted(.) | muestra.num.x, abline = c(0,1))

## Bean acidity Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), acid.grano, lty=c(1:3),lwd=2,ylab="mean of acid.grano", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), acid.grano, lty=c(1:3),lwd=2,ylab="mean of acid.grano", xlab="time", trace.label="Treatment")

nestinginfo <- groupedData(acid.grano ~ gen.x | muestra.num.x, data= regaliasdata)
fit.compsym <- gls(acid.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corCompSymm(, form= ~ 1 | muestra.num.x))
fit.nostruct <- gls(acid.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(acid.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(acid.grano~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.compsym, fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df       AIC       BIC   logLik   Test   L.Ratio p-value
## fit.compsym      1 50 -456.2439 -282.2120 278.1220                         
## fit.nostruct     2 84 -552.1086 -259.7349 360.0543 1 vs 2 163.86467  <.0001
## fit.ar1          3 50 -452.0177 -277.9857 276.0088 2 vs 3 168.09094  <.0001
## fit.ar1het       4 57 -493.8161 -295.4197 303.9080 3 vs 4  55.79841  <.0001
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 240 
##                                                 numDF   F-value p-value
## (Intercept)                                         1 11447.892  <.0001
## factor(trat.x)                                      1   783.274  <.0001
## factor(gen.x)                                       2   197.399  <.0001
## factor(time.num.x)                                  7   455.050  <.0001
## factor(trat.x):factor(gen.x)                        2   169.147  <.0001
## factor(trat.x):factor(time.num.x)                   7   119.756  <.0001
## factor(gen.x):factor(time.num.x)                   14    23.122  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14    36.011  <.0001
anova(fit.ar1het)
## Denom. DF: 240 
##                                                 numDF  F-value p-value
## (Intercept)                                         1 4103.024  <.0001
## factor(trat.x)                                      1  187.478  <.0001
## factor(gen.x)                                       2   88.618  <.0001
## factor(time.num.x)                                  7  202.264  <.0001
## factor(trat.x):factor(gen.x)                        2   36.058  <.0001
## factor(trat.x):factor(time.num.x)                   7   97.298  <.0001
## factor(gen.x):factor(time.num.x)                   14   19.549  <.0001
## factor(trat.x):factor(gen.x):factor(time.num.x)    14   30.408  <.0001
## Final model diagnostic plots 
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.815, p-value < 2.2e-16
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, acid.grano ~ fitted(.) | muestra.num.x, abline = c(0,1))

## Fermentation profile analysis
regaliasdata4567 <- subset(regaliasdata, regaliasdata$time.num.x == c("4", "5", "6", "7"))
detach(regaliasdata)
attach(regaliasdata4567)
## Fermentation profile Generalized least squares fit by REML and correlations with different structures
interaction.plot (time.num.x, factor(gen.x), ferm, lty=c(1:3),lwd=2,ylab="mean of ferm", xlab="time", trace.label="Genotype")

interaction.plot (time.num.x, factor(trat.x), ferm, lty=c(1:3),lwd=2,ylab="mean of ferm", xlab="time", trace.label="Treatment")

nestinginfo <- groupedData(ferm ~ gen.x | muestra.num.x, data= regaliasdata4567)
fit.nostruct <- gls(ferm~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corSymm(, form= ~ 1 | muestra.num.x), weights = varIdent(form = ~ 1 | time.num.x))
fit.ar1 <- gls(ferm~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x))
fit.ar1het <- gls(ferm~(factor(trat.x)*factor(gen.x))*factor(time.num.x), data=nestinginfo, corr=corAR1(, form= ~ 1 | muestra.num.x), weights=varIdent(form = ~ 1 | time.num.x))
anova(fit.nostruct, fit.ar1, fit.ar1het) #compares the models
##              Model df      AIC      BIC    logLik   Test  L.Ratio p-value
## fit.nostruct     1 28 139.6833 153.2607 -41.84165                        
## fit.ar1          2 26 138.1802 150.7878 -43.09009 1 vs 2 2.496895  0.2869
## fit.ar1het       3 29 141.6833 155.7456 -41.84165 2 vs 3 2.496895  0.4759
## Qualitative assessment of model source significance
anova(fit.nostruct)
## Denom. DF: 12 
##                                                 numDF  F-value p-value
## (Intercept)                                         1 5199.403  <.0001
## factor(trat.x)                                      1   39.603  <.0001
## factor(gen.x)                                       2    6.992  0.0097
## factor(time.num.x)                                  3   34.128  <.0001
## factor(trat.x):factor(gen.x)                        2    1.607  0.2407
## factor(trat.x):factor(time.num.x)                   3    1.134  0.3746
## factor(gen.x):factor(time.num.x)                    6    3.358  0.0352
## factor(trat.x):factor(gen.x):factor(time.num.x)     6    0.799  0.5888
anova(fit.ar1het)
## Denom. DF: 12 
##                                                 numDF  F-value p-value
## (Intercept)                                         1 5199.403  <.0001
## factor(trat.x)                                      1   39.603  <.0001
## factor(gen.x)                                       2    6.992  0.0097
## factor(time.num.x)                                  3   34.128  <.0001
## factor(trat.x):factor(gen.x)                        2    1.607  0.2407
## factor(trat.x):factor(time.num.x)                   3    1.134  0.3746
## factor(gen.x):factor(time.num.x)                    6    3.358  0.0352
## factor(trat.x):factor(gen.x):factor(time.num.x)     6    0.799  0.5888
## Final model diagnostic plots 
plot(fit.ar1het) 

shapiro.test(resid(fit.ar1het))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(fit.ar1het)
## W = 0.90819, p-value = 0.00576
qqnorm(fit.ar1het, abline = c(0,1))

plot(fit.ar1het, resid(., type = "p") ~ fitted(.) | muestra.num.x, abline = 0)

plot(fit.ar1het, muestra.num.x ~ resid(.))

plot(fit.ar1het, ferm ~ fitted(.) | muestra.num.x, abline = c(0,1))