Entrando en contexto, se utilizó una base de datos que incluye dos genotipos diferentes de plantas y como la longitud de sus hojas se ve alterada según variables como los niveles de dióxido de carbono, la temperatura, el tiempo, etc.
##Just Run This Chunk
require(readxl)
## Loading required package: readxl
## Warning: package 'readxl' was built under R version 4.1.1
require(ggplot2)
## Loading required package: ggplot2
require(plotly)
## Loading required package: plotly
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
require(emmeans)
## Loading required package: emmeans
require(multcomp)
## Loading required package: multcomp
## Warning: package 'multcomp' was built under R version 4.1.1
## Loading required package: mvtnorm
## Warning: package 'mvtnorm' was built under R version 4.1.1
## Loading required package: survival
## Loading required package: TH.data
## Warning: package 'TH.data' was built under R version 4.1.1
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following object is masked from 'package:plotly':
##
## select
##
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
##
## geyser
require(tidyverse)
## Loading required package: tidyverse
## Warning: package 'tidyverse' was built under R version 4.1.1
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble 3.1.3 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## v purrr 0.3.4
## Warning: package 'readr' was built under R version 4.1.1
## Warning: package 'forcats' was built under R version 4.1.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks plotly::filter(), stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select(), plotly::select()
require(ggpubr)
## Loading required package: ggpubr
## Warning: package 'ggpubr' was built under R version 4.1.1
require(rstatix)
## Loading required package: rstatix
## Warning: package 'rstatix' was built under R version 4.1.1
##
## Attaching package: 'rstatix'
## The following object is masked from 'package:MASS':
##
## select
## The following object is masked from 'package:stats':
##
## filter
require(lmerTest)
## Loading required package: lmerTest
## Warning: package 'lmerTest' was built under R version 4.1.1
## Loading required package: lme4
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Attaching package: 'lmerTest'
## The following object is masked from 'package:lme4':
##
## lmer
## The following object is masked from 'package:stats':
##
## step
require(Rmisc)
## Loading required package: Rmisc
## Warning: package 'Rmisc' was built under R version 4.1.1
## Loading required package: lattice
## Loading required package: plyr
## Warning: package 'plyr' was built under R version 4.1.1
## ------------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## ------------------------------------------------------------------------------
##
## Attaching package: 'plyr'
## The following objects are masked from 'package:rstatix':
##
## desc, mutate
## The following object is masked from 'package:ggpubr':
##
## mutate
## The following objects are masked from 'package:dplyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
## The following object is masked from 'package:purrr':
##
## compact
## The following objects are masked from 'package:plotly':
##
## arrange, mutate, rename, summarise
YDRAY_LeafLength <- read_excel("C:/Users/Juan David Betancour/OneDrive/Escritorio/YDRAY-LeafLength.xlsx")
YDRAY_LeafLength$Temp_C02=paste(YDRAY_LeafLength$Temp,"_and_",YDRAY_LeafLength$CO2,sep="")
YDRAY_LeafLength$id=as.factor(paste(YDRAY_LeafLength$Cab,"_",YDRAY_LeafLength$Obs,sep=""))
YDRAY_LeafLength$Genotype=as.factor(YDRAY_LeafLength$Genotype)
Inicialmente se realizó un análisis exploratorio para visualizar los datos y poder comprender de una manera gráfica como se relacionan entre sí las variables con la longitud de las hojas.
##Exploring data
###
##Time Series Plot by Temp-CO2 Treatment
gd = summarySE(YDRAY_LeafLength, measurevar="LeafL", groupvars=c("Temp_C02","Time","Genotype"))
g1=ggplot(gd,aes(x=Time,y=LeafL,color=Temp_C02, group =Temp_C02))+ geom_line(data=gd)+geom_point(data=gd, size = 2)+ facet_grid(~Genotype)+theme_bw()+
labs(title = "Leaf Length",
x = "Time in days",
y = "Length in cm")
g1
##Anova de Medidas Repetidas
YDRAY_LeafLength$Time=as.factor(YDRAY_LeafLength$Time)
YDRAY_LeafLength$Temp=as.factor(YDRAY_LeafLength$Temp)
YDRAY_LeafLength$CO2=as.factor(YDRAY_LeafLength$CO2)
anova=aov(LeafL~Temp*CO2*Genotype+Time+Error(id/Genotype/Time),data=YDRAY_LeafLength)
summary(anova)
##
## Error: id
## Df Sum Sq Mean Sq F value Pr(>F)
## Temp 2 6614 3307 17.188 1.06e-05 ***
## CO2 1 214 214 1.113 0.30
## Temp:CO2 2 396 198 1.028 0.37
## Residuals 30 5772 192
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Error: id:Genotype
## Df Sum Sq Mean Sq F value Pr(>F)
## Genotype 1 871 871 2.016 0.16598
## Temp:Genotype 2 7270 3635 8.409 0.00126 **
## CO2:Genotype 1 46 46 0.108 0.74522
## Temp:CO2:Genotype 2 2673 1337 3.092 0.06013 .
## Residuals 30 12968 432
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Error: id:Genotype:Time
## Df Sum Sq Mean Sq F value Pr(>F)
## Time 18 17707 983.7 140.2 <2e-16 ***
## Residuals 1278 8964 7.0
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Podemos ver que para el genotipo PA107 conforme el tiempo pasa la temperatura y el CO2 no afectan de manera considerable la longitud de las hojas, por ello se puede asumir que estas plantas son más tolerantes a los cambios de temperatura y una variación de esta no afectara las dimensiones de sus hojas de manera considerable o al menos de manera muy pronunciada entre sí. Lo mismo puede decirse de los niveles de CO2.
Ahora bien, en la gráfica del genotipo SCA6 podemos ver que se presenta una mayor diferencia entre la longitud de las hojas de las diferentes plantas según los rangos de temperatura y CO2 a los que fueron expuestos. Las plantas con hojas de mayor tamaño fueron las que estaban en un rango de temperatura que va entre 22 y 31 grados celsius con niveles de CO2 de 700.
##Postanova
bxp = ggboxplot(
YDRAY_LeafLength, x = "Time", y = "LeafL",
color = "CO2", palette = "jco"
)
pwc = YDRAY_LeafLength %>%
group_by(Time) %>%
pairwise_t_test(
LeafL ~ CO2, paired = TRUE,
p.adjust.method = "bonferroni"
)
pwc = pwc %>% add_xy_position(x = "Time")
bxp +
stat_pvalue_manual(pwc, tip.length = 0, hide.ns = TRUE) +
labs(
subtitle = paste("Anova, ","F(1)", " = ", "1.113, ", "p", " = ", "0.30"),
caption = get_pwc_label(pwc)
)
Según el gráfico anterior que se concentra en como los niveles de CO2 afectan el desarrollo de las hojas podemos ver que aunque las plantas de 700 presentaron mayor diferencia en la longitud de sus hojas con cerca de 30 unidad de medida desconocida probablemente cm o mm, pero las plantas de 400 presentaban dimensiones cercanas a esas con aproximadamente 25 unidad de medida desconocida. Anque existe la posibilidad de que esta diferencia cambie las probabilidades de superviviencia, en el experimento no se confirma esta hipótesis dado que el desarrollo se mantuvo constante en ambas poblaciones.
##POstanova Temp
bxp = ggboxplot(
YDRAY_LeafLength, x = "Time", y = "LeafL",
color = "Temp", palette = "jco"
)
pwc = YDRAY_LeafLength %>%
group_by(Time) %>%
pairwise_t_test(
LeafL ~ Temp, paired = TRUE,
p.adjust.method = "bonferroni"
)
pwc = pwc %>% add_xy_position(x = "Time")
bxp +
stat_pvalue_manual(pwc, tip.length = 0, hide.ns = TRUE) +
labs(
subtitle = paste("Anova, ","F(2)", " = ", "17.188 , ", "p", " = ", "<0.0001 "),
caption = get_pwc_label(pwc)
)
Contrario a la variable CO2, la variable temperatura afecta con bastante intensidad a las diferentes plantas. En el muestreo del día 10 podemos ver una diferencia muy pronunciada en la que las plantas que crecieron en una temperatura entre 24.5 y 33.5 grados celsius presentaban hojas más grandes y por su parte las de menor dimensión se encontraban en las plantas que crecieron entre 22 y 31 grados celsius. A pesar de esto, conforme las plantas crecen y el tiempo avanza son las de menor temperatura las que desarrollan hojas más grandes que las demás, seguidas por las plantas que anteriormente tenían hojas de mayor tamaño y por último las plantas que estan entre 27 y 36 grados celsius. Este cambio puede indicar ciertas ventajas adaptativas tempranas para establecerse en cierto nicho antes de la competencia pero de igual manera que con la gráfica anterior; eventualmente las plantas se adaptan a la s condiciones en las que se encuentran y vivien con normalidad.
##Postanova Temp-Genotipo
bxp = ggboxplot(
YDRAY_LeafLength, x = "Time", y = "LeafL",
title= "Leaf Length",
xlab ="time (days)", ylab= "Length (cm)",
color = "Temp", palette = "lancet",
facet.by = "Genotype"
)
pwc = YDRAY_LeafLength %>%
group_by(Time, Genotype) %>%
pairwise_t_test(
LeafL ~ Temp, paired = TRUE,
p.adjust.method = "bonferroni"
)
pwc = pwc %>% add_xy_position(x = "Time")
bxp +
stat_pvalue_manual(pwc, tip.length = 0, hide.ns = TRUE) +
labs(
subtitle = paste("Anova, ","F(2)", " = ", "8.409 , ", "p", " = ", "0.00126"),
caption = get_pwc_label(pwc)
)
Estas últimas gráficas consideran la variabel tempertura igual que la anterior pero esta vez contrastando los dos genotipos de plantas. En el genotipo PA107 no hay diferencias drásticas considerables pues aunque efectivamente hay diferencias según la temperatura y datos atípicos extremos en comparación, las diferencias frecuentes son mínimas entre las plantas de 22-33 y 24.5-33-5 grados celsius. La población de 27-36 presento menores dimensiones pero sigén teniendo medidas mayores a 20 medida de unidad desconocida.
Ahora bien el genotipo SCA6 es más sensible a los cambios de temperatura. Esto se puede ver en la primera muestra tomada a los 10 días en la que la población de 24.5-33.5 grados mide cerca de 20 mientras que la población de 22-33 grados mide menos de 10. Es una diferencia mucho mayor que en las plantas del genotipo PA107 que no difería tanto en la muestra del día 10 27-36 grados que tenía las mayores dimensiones medía derca de 10 mientras que las menores medidas eran de 22-31 grados con cerca de 10 también. Conforme pasa el tiempo las dimensiones de hojas cambian drásticamente: Las mayores dimensiones le corresponden a 22-31 grados con una media de aproximadamente 35 unidades, seguida por 24.5-33-5 grados con una media de 30 unidades y por útlimo la población de 27-36 grados con una media de 20 unidades en la dimensión de sus hojas.