# Configurar un repositorio de CRAN
options(repos = c(CRAN = "https://cloud.r-project.org/"))

# Paquetes esenciales para un práctico de nivel inicial
packages <- c(
  # Manejo de datos
  "tidyverse",  # incluye dplyr, ggplot2, tidyr, readr, purrr, etc.
  "readxl",     # para leer archivos de Excel
  "janitor",    # para limpiar nombres de columnas y tablas
  "skimr", #la verdad no se que hace, pero me sale que las tablas de resumen son mas lindas y "verbosas" con estos, asi que....
  
  # Estadística básica
  "e1071",      # para skewness y kurtosis
  "psych",      # para descriptivos y alfa de Cronbach
  
  # Visualización
  "ggplot2",    # parte de tidyverse, pero lo listamos porque es clave
  "ggpubr",     # facilita gráficos estadísticos "bonitos"
  "tinytex", #para generar el pdf
  
  # Tablas y reportes
  "knitr",      # para mostrar resultados en RMarkdown
  "kableExtra", # para embellecer tablas
  
  # RMarkdown y presentación
  "rmarkdown",  # para generar informes
  "xaringan"    # para hacer presentaciones tipo PowerPoint
)

# Instalar si falta y cargar
install_if_missing <- function(pkg) {
  if (!require(pkg, character.only = TRUE)) {
    install.packages(pkg)
    library(pkg, character.only = TRUE)
  }
}


invisible(lapply(packages, install_if_missing))
## Cargando paquete requerido: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Cargando paquete requerido: readxl
## 
## Cargando paquete requerido: janitor
## 
## 
## Adjuntando el paquete: 'janitor'
## 
## 
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
## 
## 
## Cargando paquete requerido: skimr
## 
## Cargando paquete requerido: e1071
## Warning: package 'e1071' was built under R version 4.4.3
## Cargando paquete requerido: psych
## Warning: package 'psych' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'psych'
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
## 
## Cargando paquete requerido: ggpubr
## Warning: package 'ggpubr' was built under R version 4.4.3
## Cargando paquete requerido: tinytex
## Cargando paquete requerido: knitr
## Cargando paquete requerido: kableExtra
## 
## Adjuntando el paquete: 'kableExtra'
## 
## The following object is masked from 'package:dplyr':
## 
##     group_rows
## 
## Cargando paquete requerido: rmarkdown
## Cargando paquete requerido: xaringan
## Warning: package 'xaringan' was built under R version 4.4.3

installed.packages()[“e1071”, ]

Introducción

En el integrador del segundo módulo se definieron seis variables relevantes para el análisis del crecimiento y la actividad enzimática de Ganoderma lucidum en medios con distintas fuentes de carbono y nitrógeno. Por razones experimentales, comenzamos con otra especie: Pleurotus ostreatus. Estas son:

En este práctico nos centraremos en generar las variables derivadas necesarias a partir de los datos originales.

Nota: Si bien se midieron dos diámetros por placa, los alumnos no registraron el número de placa correspondiente a cada medición. Por este motivo, se consideran 6 mediciones independientes por condición experimental (3 placas, 2 mediciones por placa) que no pueden vincularse con precisión a una misma unidad biológica. Así, cada fila en la tabla se considera una réplica individual.

Carga de bibliotecas y datos

library(tidyverse)
library(readxl)
library(writexl)

# Cargar datos desde Excel
datos <- read_excel("mediciones_pleurotus.xlsx")

head(datos)

Problemas con “Día”: la tabla de Excel parece haber tomado Día como texto, de modo que hubo que corregirlo:

# Asegurarnos de que 'Día' es numérico
datos <- datos %>%
  mutate(Día = as.numeric(Día))
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Día = as.numeric(Día)`.
## Caused by warning:
## ! NAs introducidos por coerción

Renombrar columna: el valor de decoloración corresponde al radio, no al diámetro

datos <- datos %>%
  rename(Radio_decoloracion_mm = Diámetro_decoloración_mm)

Cálculo del radio corregido

En microbiología, es común restar el tamaño del inóculo inicial al crecimiento observado. En este caso, el disco de inóculo tenía 8 mm de diámetro, por lo que se restan 4 mm al radio final para estimar el crecimiento efectivo.

datos <- datos %>%
  mutate(Radio_corregido = (Diámetro_hongo_mm / 2) - 4)

head(datos)

Cálculo de la tasa de crecimiento radial (Kr)

La tasa de crecimiento radial (Kr) se calcula como el radio corregido dividido por el tiempo de cultivo (días).

datos <- datos %>%
  mutate(Kr_mm_dia = Radio_corregido / Día)

head(datos)

Cálculo del porcentaje de decoloración (%D)

Ahora usamos directamente el radio decolorado anotado, ya que no era un diámetro como se pensaba. Se compara el área decolorada con el área total de la placa (radio = 45 mm).

datos <- datos %>%
  mutate(Porc_decoloracion = (Radio_decoloracion_mm^2 * pi) / (45^2 * pi) * 100)

head(datos)

Cálculo de la tasa de decoloración porcentual (T%D)

La tasa de decoloración porcentual se obtiene dividiendo el porcentaje de decoloración por el tiempo de cultivo.

datos <- datos %>%
  mutate(Tasa_decoloracion_pct_dia = Porc_decoloracion / Día)

head(datos)

Guardar tabla con columnas nuevas

write_xlsx(datos, "datos_procesados.xlsx")

Perfecto. A continuación te doy el fragmento en Markdown (.Rmd) que cumple con la consigna del práctico, explicando adecuadamente la selección de variables y generando un nuevo dataframe filtrado con los datos correspondientes al día 7. También se guarda un nuevo archivo Excel con esos datos.


Selección de la Variable de Interés

Para continuar con el análisis, es necesario seleccionar una variable relevante que permita obtener información útil sobre el comportamiento de Pleurotus ostreatus en las condiciones estudiadas.

Variable elegida: Tamaño de las colonias al día 7

Hemos seleccionado como primera variable de interés el tamaño de la colonia al día 7, expresado como el diámetro del hongo en milímetros. Esta variable es de naturaleza cuantitativa continua y representa de forma directa el resultado del crecimiento del micelio en el medio de cultivo.

Justificación:

  • El tamaño de la colonia refleja de forma simple y directa la capacidad de crecimiento del organismo bajo las condiciones dadas.
  • A diferencia de variables derivadas como la tasa de crecimiento radial (Kr), que requieren un análisis temporal más complejo, el valor absoluto del crecimiento al día 7 puede ser fácilmente analizado con herramientas de estadística descriptiva y comparativa.
  • La medición a un tiempo fijo permite controlar una de las fuentes de variabilidad y facilita la comparación entre condiciones.

Segunda variable de interés: Porcentaje de decoloración al día 7

Como segunda variable complementaria, seleccionamos el porcentaje de decoloración del medio al día 7. Esta también es una variable cuantitativa continua, que sirve como un indicador indirecto de actividad enzimática, en particular de lacasas u otras enzimas oxidativas con capacidad de degradar colorantes.

Justificación:

  • Nos interesa evaluar no solo el crecimiento del hongo, sino también su capacidad de transformar el medio, lo cual está vinculado a sus posibles aplicaciones biotecnológicas en biodegradación o biorremediación.
  • Evaluar la decoloración en el mismo tiempo (día 7) que el crecimiento permite establecer posibles correlaciones funcionales entre ambas variables.

Filtrado del conjunto de datos para día 7

A continuación filtramos el conjunto de datos para conservar solo las observaciones correspondientes al día 7, y mantenemos todas las variables calculadas por si quisiéramos retomar el análisis de tasas o radios más adelante.

# Crear nuevo dataframe con solo los datos del día 7
datos_dia7 <- datos %>%
  filter(Día == 7)

# Mostrar primeras filas
head(datos_dia7)

Guardar el nuevo conjunto de datos

Guardamos este nuevo dataframe como un segundo archivo Excel.

write_xlsx(datos_dia7, "datos_dia7.xlsx")

Este nuevo subconjunto de datos nos permitirá trabajar con un marco más acotado y coherente con las herramientas estadísticas disponibles, facilitando el análisis de diferencias entre condiciones experimentales.

2. Elección de Herramientas de Estadística Descriptiva

Para este trabajo, seleccionamos dos herramientas de estadística descriptiva para analizar nuestras variables cuantitativas: el tamaño de colonia y el porcentaje de decoloración, ambos al día 7 de cultivo.

Herramientas elegidas:

  1. Gráficos: permiten una visualización comparativa clara entre tratamientos.
  2. Medidas de resumen: facilitan el análisis cuantitativo de posición, dispersión y forma.

No se seleccionaron tablas de frecuencia, ya que estas resultan más útiles para variables categóricas o discretas. En nuestro caso, las variables son continuas, y los datos no se repiten, por lo que las frecuencias no aportan información relevante.


📈 Boxplots con violín facetados por tratamiento

El siguiente gráfico muestra la distribución de tamaño de colonia al día 7 en cada tratamiento. Se utiliza un gráfico de violín combinado con boxplot para resaltar la forma de la distribución, la mediana, y la dispersión de los datos.

library(ggplot2)

ggplot(datos_dia7, aes(x = Medio, y = Diámetro_hongo_mm)) +
  geom_violin(fill = "skyblue", alpha = 0.5) +
  geom_boxplot(width = 0.1, outlier.color = "red") +
  labs(title = "Distribución del tamaño de colonia al día 7",
       x = "Tratamiento", y = "Diámetro de colonia (mm)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Esto muestra claramente que la conposiciòn del medio de cultivo influye en el crecimiento de los hoingos medido al dia 7 de incubaciòn. POor lo tanto, evaluamos el porcentaje de decoloraciòn en las m,ismas condiciones.

library(ggplot2)

ggplot(datos_dia7, aes(x = Medio, y = Porc_decoloracion)) +
  geom_violin(fill = "skyblue", alpha = 0.5) +
  geom_boxplot(width = 0.1, outlier.color = "red") +
  labs(title = "Distribución del porcentaje de decoloración al día 7",
       x = "Tratamiento", y = "Porcentaje de decoloración") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Nuevamente, demostrando un gran efecto de la composiciòn del medio sobre el porcentaje de decoloraciòn medido al 7mo día.

Con solo 6 valores de cada medio de cultivo, los histogramas no resultan demasiado informativos si se hacen facetados

datos_dia7 %>%
  filter(str_detect(Medio, "Glucosa|Rafinosa|Maltosa|Sacarosa|Glicerol")) %>%
  ggplot(aes(x = Diámetro_hongo_mm, fill = Medio)) +
  geom_histogram(bins = 10, alpha = 0.6, position = "identity") +
  facet_wrap(~ Medio) +
  labs(title = "Histogramas del diámetro de colonia (día 7)",
       x = "Diámetro (mm)", y = "Frecuencia") +
  theme_minimal()

Por lo tanto se analizó el total de los datos para ver como se comporta esta variable.

# Análisis completo de todas las variables
datos_dia7 %>%
  select(Diámetro_hongo_mm, Radio_decoloracion_mm, Radio_corregido, Kr_mm_dia, Porc_decoloracion, Tasa_decoloracion_pct_dia) %>%
  skimr::skim()
Data summary
Name Piped data
Number of rows 126
Number of columns 6
_______________________
Column type frequency:
numeric 6
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Diámetro_hongo_mm 0 1 59.29 16.80 28.00 44.25 60.00 72.00 90.00 ▅▆▇▅▆
Radio_decoloracion_mm 0 1 27.06 8.93 10.00 21.25 27.00 35.00 43.00 ▅▂▆▇▃
Radio_corregido 0 1 25.64 8.40 10.00 18.12 26.00 32.00 41.00 ▅▆▇▅▆
Kr_mm_dia 0 1 3.66 1.20 1.43 2.59 3.71 4.57 5.86 ▅▆▇▅▆
Porc_decoloracion 0 1 40.07 23.15 4.94 22.31 36.00 60.49 91.31 ▇▇▆▆▃
Tasa_decoloracion_pct_dia 0 1 5.72 3.31 0.71 3.19 5.14 8.64 13.04 ▇▇▆▆▃
# Análisis facetado por tratamiento
datos_dia7 %>%
  select(Diámetro_hongo_mm, Radio_decoloracion_mm, Radio_corregido, Kr_mm_dia, Porc_decoloracion, Tasa_decoloracion_pct_dia, Medio) %>%
  group_by(Medio) %>%
  skimr::skim()
Data summary
Name Piped data
Number of rows 126
Number of columns 7
_______________________
Column type frequency:
numeric 6
________________________
Group variables Medio

Variable type: numeric

skim_variable Medio n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Diámetro_hongo_mm Glicerol (control) 0 1 51.17 4.45 45.00 47.75 53.50 54.00 55.00 ▅▁▁▂▇
Diámetro_hongo_mm Glicerol + Peptona 0 1 70.50 0.84 70.00 70.00 70.00 70.75 72.00 ▇▁▂▁▂
Diámetro_hongo_mm Glicerol + Sulfato de amonio 0 1 30.17 1.60 28.00 29.25 30.00 31.50 32.00 ▃▃▇▁▇
Diámetro_hongo_mm Glicerol crudo (control) 0 1 57.50 0.55 57.00 57.00 57.50 58.00 58.00 ▇▁▁▁▇
Diámetro_hongo_mm Glicerol crudo + Peptona 0 1 65.83 4.31 58.00 64.75 67.50 68.00 70.00 ▂▁▂▂▇
Diámetro_hongo_mm Glicerol crudo + Sulfato de amonio 0 1 40.17 1.60 38.00 39.25 40.00 41.50 42.00 ▃▃▇▁▇
Diámetro_hongo_mm Glucosa (control) 0 1 34.33 1.37 32.00 34.00 34.50 35.00 36.00 ▃▁▇▇▃
Diámetro_hongo_mm Glucosa + Peptona 0 1 77.00 2.76 74.00 74.50 77.00 79.50 80.00 ▇▃▁▃▇
Diámetro_hongo_mm Glucosa + Sulfato de amonio 0 1 42.83 2.14 40.00 41.50 43.00 43.75 46.00 ▇▁▇▃▃
Diámetro_hongo_mm Maltosa (control) 0 1 66.00 1.55 65.00 65.00 65.00 67.25 68.00 ▇▁▁▁▃
Diámetro_hongo_mm Maltosa + Peptona 0 1 80.33 0.82 80.00 80.00 80.00 80.00 82.00 ▇▁▁▁▂
Diámetro_hongo_mm Maltosa + Sulfato de amonio 0 1 42.50 2.51 40.00 40.50 42.00 44.25 46.00 ▇▇▁▁▇
Diámetro_hongo_mm Negro Reactivo 5 (control) 0 1 71.33 0.52 71.00 71.00 71.00 71.75 72.00 ▇▁▁▁▃
Diámetro_hongo_mm Peptona (control) 0 1 80.83 0.98 80.00 80.00 80.50 81.75 82.00 ▇▁▂▁▅
Diámetro_hongo_mm Rafinosa (control) 0 1 62.00 2.45 60.00 60.00 61.00 64.25 65.00 ▇▂▁▁▅
Diámetro_hongo_mm Rafinosa + Peptona 0 1 80.33 0.82 80.00 80.00 80.00 80.00 82.00 ▇▁▁▁▂
Diámetro_hongo_mm Rafinosa + Sulfato de amonio 0 1 60.67 0.82 60.00 60.00 60.50 61.00 62.00 ▇▁▅▁▂
Diámetro_hongo_mm Sacarosa (control) 0 1 44.17 0.98 43.00 43.25 44.50 45.00 45.00 ▅▁▂▁▇
Diámetro_hongo_mm Sacarosa + Peptona 0 1 88.67 1.51 86.00 88.25 89.00 89.75 90.00 ▃▁▃▇▇
Diámetro_hongo_mm Sacarosa + Sulfato de amonio 0 1 45.67 1.63 44.00 44.25 45.50 46.75 48.00 ▇▃▃▃▃
Diámetro_hongo_mm Sulfato de amonio (control) 0 1 53.00 1.26 51.00 53.00 53.00 53.00 55.00 ▂▁▇▁▂
Radio_decoloracion_mm Glicerol (control) 0 1 24.83 1.17 23.00 24.25 25.00 25.75 26.00 ▃▃▁▇▇
Radio_decoloracion_mm Glicerol + Peptona 0 1 32.33 1.03 31.00 32.00 32.00 32.75 34.00 ▂▇▁▂▂
Radio_decoloracion_mm Glicerol + Sulfato de amonio 0 1 10.83 0.75 10.00 10.25 11.00 11.00 12.00 ▅▁▇▁▂
Radio_decoloracion_mm Glicerol crudo (control) 0 1 26.33 1.86 24.00 25.25 26.00 27.50 29.00 ▇▇▁▃▃
Radio_decoloracion_mm Glicerol crudo + Peptona 0 1 32.67 0.52 32.00 32.25 33.00 33.00 33.00 ▃▁▁▁▇
Radio_decoloracion_mm Glicerol crudo + Sulfato de amonio 0 1 15.50 0.55 15.00 15.00 15.50 16.00 16.00 ▇▁▁▁▇
Radio_decoloracion_mm Glucosa (control) 0 1 14.83 1.17 13.00 14.25 15.00 15.75 16.00 ▃▃▁▇▇
Radio_decoloracion_mm Glucosa + Peptona 0 1 36.50 1.22 35.00 35.50 37.00 37.00 38.00 ▅▁▁▇▂
Radio_decoloracion_mm Glucosa + Sulfato de amonio 0 1 41.33 1.51 40.00 40.00 41.00 42.75 43.00 ▇▁▁▂▅
Radio_decoloracion_mm Maltosa (control) 0 1 30.33 0.52 30.00 30.00 30.00 30.75 31.00 ▇▁▁▁▃
Radio_decoloracion_mm Maltosa + Peptona 0 1 36.17 1.94 34.00 35.00 35.50 37.50 39.00 ▇▂▁▂▂
Radio_decoloracion_mm Maltosa + Sulfato de amonio 0 1 17.50 1.64 15.00 16.50 18.00 18.75 19.00 ▃▃▁▇▇
Radio_decoloracion_mm Negro Reactivo 5 (control) 0 1 29.67 0.52 29.00 29.25 30.00 30.00 30.00 ▃▁▁▁▇
Radio_decoloracion_mm Peptona (control) 0 1 39.83 0.75 39.00 39.25 40.00 40.00 41.00 ▅▁▇▁▂
Radio_decoloracion_mm Rafinosa (control) 0 1 25.33 1.51 24.00 24.00 25.00 26.75 27.00 ▇▁▁▂▅
Radio_decoloracion_mm Rafinosa + Peptona 0 1 35.17 0.41 35.00 35.00 35.00 35.00 36.00 ▇▁▁▁▂
Radio_decoloracion_mm Rafinosa + Sulfato de amonio 0 1 24.67 0.52 24.00 24.25 25.00 25.00 25.00 ▃▁▁▁▇
Radio_decoloracion_mm Sacarosa (control) 0 1 25.00 0.63 24.00 25.00 25.00 25.00 26.00 ▂▁▇▁▂
Radio_decoloracion_mm Sacarosa + Peptona 0 1 34.83 0.75 34.00 34.25 35.00 35.00 36.00 ▅▁▇▁▂
Radio_decoloracion_mm Sacarosa + Sulfato de amonio 0 1 12.33 1.21 11.00 11.25 12.50 13.00 14.00 ▇▃▁▇▃
Radio_decoloracion_mm Sulfato de amonio (control) 0 1 22.33 1.51 21.00 21.25 22.00 22.75 25.00 ▇▇▃▁▃
Radio_corregido Glicerol (control) 0 1 21.58 2.22 18.50 19.88 22.75 23.00 23.50 ▅▁▁▂▇
Radio_corregido Glicerol + Peptona 0 1 31.25 0.42 31.00 31.00 31.00 31.38 32.00 ▇▁▂▁▂
Radio_corregido Glicerol + Sulfato de amonio 0 1 11.08 0.80 10.00 10.62 11.00 11.75 12.00 ▃▃▇▁▇
Radio_corregido Glicerol crudo (control) 0 1 24.75 0.27 24.50 24.50 24.75 25.00 25.00 ▇▁▁▁▇
Radio_corregido Glicerol crudo + Peptona 0 1 28.92 2.15 25.00 28.38 29.75 30.00 31.00 ▂▁▂▂▇
Radio_corregido Glicerol crudo + Sulfato de amonio 0 1 16.08 0.80 15.00 15.62 16.00 16.75 17.00 ▃▃▇▁▇
Radio_corregido Glucosa (control) 0 1 13.17 0.68 12.00 13.00 13.25 13.50 14.00 ▃▁▇▇▃
Radio_corregido Glucosa + Peptona 0 1 34.50 1.38 33.00 33.25 34.50 35.75 36.00 ▇▃▁▃▇
Radio_corregido Glucosa + Sulfato de amonio 0 1 17.42 1.07 16.00 16.75 17.50 17.88 19.00 ▇▁▇▃▃
Radio_corregido Maltosa (control) 0 1 29.00 0.77 28.50 28.50 28.50 29.62 30.00 ▇▁▁▁▃
Radio_corregido Maltosa + Peptona 0 1 36.17 0.41 36.00 36.00 36.00 36.00 37.00 ▇▁▁▁▂
Radio_corregido Maltosa + Sulfato de amonio 0 1 17.25 1.25 16.00 16.25 17.00 18.12 19.00 ▇▇▁▁▇
Radio_corregido Negro Reactivo 5 (control) 0 1 31.67 0.26 31.50 31.50 31.50 31.88 32.00 ▇▁▁▁▃
Radio_corregido Peptona (control) 0 1 36.42 0.49 36.00 36.00 36.25 36.88 37.00 ▇▁▂▁▅
Radio_corregido Rafinosa (control) 0 1 27.00 1.22 26.00 26.00 26.50 28.12 28.50 ▇▂▁▁▅
Radio_corregido Rafinosa + Peptona 0 1 36.17 0.41 36.00 36.00 36.00 36.00 37.00 ▇▁▁▁▂
Radio_corregido Rafinosa + Sulfato de amonio 0 1 26.33 0.41 26.00 26.00 26.25 26.50 27.00 ▇▁▅▁▂
Radio_corregido Sacarosa (control) 0 1 18.08 0.49 17.50 17.62 18.25 18.50 18.50 ▅▁▂▁▇
Radio_corregido Sacarosa + Peptona 0 1 40.33 0.75 39.00 40.12 40.50 40.88 41.00 ▃▁▃▇▇
Radio_corregido Sacarosa + Sulfato de amonio 0 1 18.83 0.82 18.00 18.12 18.75 19.38 20.00 ▇▃▃▃▃
Radio_corregido Sulfato de amonio (control) 0 1 22.50 0.63 21.50 22.50 22.50 22.50 23.50 ▂▁▇▁▂
Kr_mm_dia Glicerol (control) 0 1 3.08 0.32 2.64 2.84 3.25 3.29 3.36 ▅▁▁▂▇
Kr_mm_dia Glicerol + Peptona 0 1 4.46 0.06 4.43 4.43 4.43 4.48 4.57 ▇▁▂▁▂
Kr_mm_dia Glicerol + Sulfato de amonio 0 1 1.58 0.11 1.43 1.52 1.57 1.68 1.71 ▃▃▇▁▇
Kr_mm_dia Glicerol crudo (control) 0 1 3.54 0.04 3.50 3.50 3.54 3.57 3.57 ▇▁▁▁▇
Kr_mm_dia Glicerol crudo + Peptona 0 1 4.13 0.31 3.57 4.05 4.25 4.29 4.43 ▂▁▂▂▇
Kr_mm_dia Glicerol crudo + Sulfato de amonio 0 1 2.30 0.11 2.14 2.23 2.29 2.39 2.43 ▃▃▇▁▇
Kr_mm_dia Glucosa (control) 0 1 1.88 0.10 1.71 1.86 1.89 1.93 2.00 ▃▁▇▇▃
Kr_mm_dia Glucosa + Peptona 0 1 4.93 0.20 4.71 4.75 4.93 5.11 5.14 ▇▃▁▃▇
Kr_mm_dia Glucosa + Sulfato de amonio 0 1 2.49 0.15 2.29 2.39 2.50 2.55 2.71 ▇▁▇▃▃
Kr_mm_dia Maltosa (control) 0 1 4.14 0.11 4.07 4.07 4.07 4.23 4.29 ▇▁▁▁▃
Kr_mm_dia Maltosa + Peptona 0 1 5.17 0.06 5.14 5.14 5.14 5.14 5.29 ▇▁▁▁▂
Kr_mm_dia Maltosa + Sulfato de amonio 0 1 2.46 0.18 2.29 2.32 2.43 2.59 2.71 ▇▇▁▁▇
Kr_mm_dia Negro Reactivo 5 (control) 0 1 4.52 0.04 4.50 4.50 4.50 4.55 4.57 ▇▁▁▁▃
Kr_mm_dia Peptona (control) 0 1 5.20 0.07 5.14 5.14 5.18 5.27 5.29 ▇▁▂▁▅
Kr_mm_dia Rafinosa (control) 0 1 3.86 0.17 3.71 3.71 3.79 4.02 4.07 ▇▂▁▁▅
Kr_mm_dia Rafinosa + Peptona 0 1 5.17 0.06 5.14 5.14 5.14 5.14 5.29 ▇▁▁▁▂
Kr_mm_dia Rafinosa + Sulfato de amonio 0 1 3.76 0.06 3.71 3.71 3.75 3.79 3.86 ▇▁▅▁▂
Kr_mm_dia Sacarosa (control) 0 1 2.58 0.07 2.50 2.52 2.61 2.64 2.64 ▅▁▂▁▇
Kr_mm_dia Sacarosa + Peptona 0 1 5.76 0.11 5.57 5.73 5.79 5.84 5.86 ▃▁▃▇▇
Kr_mm_dia Sacarosa + Sulfato de amonio 0 1 2.69 0.12 2.57 2.59 2.68 2.77 2.86 ▇▃▃▃▃
Kr_mm_dia Sulfato de amonio (control) 0 1 3.21 0.09 3.07 3.21 3.21 3.21 3.36 ▂▁▇▁▂
Porc_decoloracion Glicerol (control) 0 1 30.51 2.84 26.12 29.05 30.86 32.75 33.38 ▃▃▁▇▇
Porc_decoloracion Glicerol + Peptona 0 1 51.67 3.32 47.46 50.57 50.57 52.98 57.09 ▂▇▁▂▂
Porc_decoloracion Glicerol + Sulfato de amonio 0 1 5.82 0.81 4.94 5.20 5.98 5.98 7.11 ▅▁▇▁▂
Porc_decoloracion Glicerol crudo (control) 0 1 34.39 4.89 28.44 31.49 33.38 37.38 41.53 ▇▇▁▃▃
Porc_decoloracion Glicerol crudo + Peptona 0 1 52.71 1.66 50.57 51.37 53.78 53.78 53.78 ▃▁▁▁▇
Porc_decoloracion Glicerol crudo + Sulfato de amonio 0 1 11.88 0.84 11.11 11.11 11.88 12.64 12.64 ▇▁▁▁▇
Porc_decoloracion Glucosa (control) 0 1 10.92 1.68 8.35 10.04 11.11 12.26 12.64 ▃▃▁▇▇
Porc_decoloracion Glucosa + Peptona 0 1 65.85 4.39 60.49 62.27 67.60 67.60 71.31 ▅▁▁▇▂
Porc_decoloracion Glucosa + Sulfato de amonio 0 1 84.46 6.16 79.01 79.01 83.06 90.26 91.31 ▇▁▁▂▅
Porc_decoloracion Maltosa (control) 0 1 45.45 1.56 44.44 44.44 44.44 46.70 47.46 ▇▁▁▁▃
Porc_decoloracion Maltosa + Peptona 0 1 64.75 7.01 57.09 60.49 62.25 69.48 75.11 ▇▂▁▂▂
Porc_decoloracion Maltosa + Sulfato de amonio 0 1 15.23 2.77 11.11 13.48 16.00 17.37 17.83 ▃▃▁▇▇
Porc_decoloracion Negro Reactivo 5 (control) 0 1 43.47 1.50 41.53 42.26 44.44 44.44 44.44 ▃▁▁▁▇
Porc_decoloracion Peptona (control) 0 1 78.38 2.97 75.11 76.09 79.01 79.01 83.01 ▅▁▇▁▂
Porc_decoloracion Rafinosa (control) 0 1 31.79 3.78 28.44 28.44 30.91 35.35 36.00 ▇▁▁▂▅
Porc_decoloracion Rafinosa + Peptona 0 1 61.08 1.43 60.49 60.49 60.49 60.49 64.00 ▇▁▁▁▂
Porc_decoloracion Rafinosa + Sulfato de amonio 0 1 30.06 1.25 28.44 29.05 30.86 30.86 30.86 ▃▁▁▁▇
Porc_decoloracion Sacarosa (control) 0 1 30.88 1.56 28.44 30.86 30.86 30.86 33.38 ▂▁▇▁▂
Porc_decoloracion Sacarosa + Peptona 0 1 59.94 2.60 57.09 57.94 60.49 60.49 64.00 ▅▁▇▁▂
Porc_decoloracion Sacarosa + Sulfato de amonio 0 1 7.57 1.48 5.98 6.26 7.73 8.35 9.68 ▇▃▁▇▃
Porc_decoloracion Sulfato de amonio (control) 0 1 24.72 3.42 21.78 22.31 23.90 25.57 30.86 ▇▇▃▁▃
Tasa_decoloracion_pct_dia Glicerol (control) 0 1 4.36 0.41 3.73 4.15 4.41 4.68 4.77 ▃▃▁▇▇
Tasa_decoloracion_pct_dia Glicerol + Peptona 0 1 7.38 0.47 6.78 7.22 7.22 7.57 8.16 ▂▇▁▂▂
Tasa_decoloracion_pct_dia Glicerol + Sulfato de amonio 0 1 0.83 0.12 0.71 0.74 0.85 0.85 1.02 ▅▁▇▁▂
Tasa_decoloracion_pct_dia Glicerol crudo (control) 0 1 4.91 0.70 4.06 4.50 4.77 5.34 5.93 ▇▇▁▃▃
Tasa_decoloracion_pct_dia Glicerol crudo + Peptona 0 1 7.53 0.24 7.22 7.34 7.68 7.68 7.68 ▃▁▁▁▇
Tasa_decoloracion_pct_dia Glicerol crudo + Sulfato de amonio 0 1 1.70 0.12 1.59 1.59 1.70 1.81 1.81 ▇▁▁▁▇
Tasa_decoloracion_pct_dia Glucosa (control) 0 1 1.56 0.24 1.19 1.43 1.59 1.75 1.81 ▃▃▁▇▇
Tasa_decoloracion_pct_dia Glucosa + Peptona 0 1 9.41 0.63 8.64 8.90 9.66 9.66 10.19 ▅▁▁▇▂
Tasa_decoloracion_pct_dia Glucosa + Sulfato de amonio 0 1 12.07 0.88 11.29 11.29 11.87 12.89 13.04 ▇▁▁▂▅
Tasa_decoloracion_pct_dia Maltosa (control) 0 1 6.49 0.22 6.35 6.35 6.35 6.67 6.78 ▇▁▁▁▃
Tasa_decoloracion_pct_dia Maltosa + Peptona 0 1 9.25 1.00 8.16 8.64 8.89 9.93 10.73 ▇▂▁▂▂
Tasa_decoloracion_pct_dia Maltosa + Sulfato de amonio 0 1 2.18 0.40 1.59 1.93 2.29 2.48 2.55 ▃▃▁▇▇
Tasa_decoloracion_pct_dia Negro Reactivo 5 (control) 0 1 6.21 0.21 5.93 6.04 6.35 6.35 6.35 ▃▁▁▁▇
Tasa_decoloracion_pct_dia Peptona (control) 0 1 11.20 0.42 10.73 10.87 11.29 11.29 11.86 ▅▁▇▁▂
Tasa_decoloracion_pct_dia Rafinosa (control) 0 1 4.54 0.54 4.06 4.06 4.42 5.05 5.14 ▇▁▁▂▅
Tasa_decoloracion_pct_dia Rafinosa + Peptona 0 1 8.73 0.20 8.64 8.64 8.64 8.64 9.14 ▇▁▁▁▂
Tasa_decoloracion_pct_dia Rafinosa + Sulfato de amonio 0 1 4.29 0.18 4.06 4.15 4.41 4.41 4.41 ▃▁▁▁▇
Tasa_decoloracion_pct_dia Sacarosa (control) 0 1 4.41 0.22 4.06 4.41 4.41 4.41 4.77 ▂▁▇▁▂
Tasa_decoloracion_pct_dia Sacarosa + Peptona 0 1 8.56 0.37 8.16 8.28 8.64 8.64 9.14 ▅▁▇▁▂
Tasa_decoloracion_pct_dia Sacarosa + Sulfato de amonio 0 1 1.08 0.21 0.85 0.89 1.10 1.19 1.38 ▇▃▁▇▃
Tasa_decoloracion_pct_dia Sulfato de amonio (control) 0 1 3.53 0.49 3.11 3.19 3.41 3.65 4.41 ▇▇▃▁▃

Me faltan las medidas de kurtosis y asimetria:

# Ajustar opciones para mostrar todas las columnas
options(tibble.width = Inf)

# Generar el resumen
datos_dia7 %>%
  select(Diámetro_hongo_mm, Radio_decoloracion_mm, Radio_corregido, Kr_mm_dia, Porc_decoloracion, Tasa_decoloracion_pct_dia, Medio) %>%
  group_by(Medio) %>%
  summarise(
    kurtosis_Dia = kurtosis(Diámetro_hongo_mm, na.rm = TRUE),
    skewness_Dia = skewness(Diámetro_hongo_mm, na.rm = TRUE),
    kurtosis_Radio_decoloracion = kurtosis(Radio_decoloracion_mm, na.rm = TRUE),
    skewness_Radio_decoloracion = skewness(Radio_decoloracion_mm, na.rm = TRUE),
    kurtosis_Radio_corregido = kurtosis(Radio_corregido, na.rm = TRUE),
    skewness_Radio_corregido = skewness(Radio_corregido, na.rm = TRUE),
    kurtosis_Kr = kurtosis(Kr_mm_dia, na.rm = TRUE),
    skewness_Kr = skewness(Kr_mm_dia, na.rm = TRUE),
    kurtosis_Porc_decoloracion = kurtosis(Porc_decoloracion, na.rm = TRUE),
    skewness_Porc_decoloracion = skewness(Porc_decoloracion, na.rm = TRUE),
    kurtosis_Tasa_decoloracion = kurtosis(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    skewness_Tasa_decoloracion = skewness(Tasa_decoloracion_pct_dia, na.rm = TRUE)
  ) 

A continuaciuón se agregan medidas no paramétricas, para completar la descricpcion de los resultados:

# Estadísticas para el crecimiento del hongo
estadisticas_crecimiento <- datos_dia7 %>% 
  group_by(Medio) %>% 
  summarise(
    media_Diametro = mean(Diámetro_hongo_mm, na.rm = TRUE),
    mediana_Diametro = median(Diámetro_hongo_mm, na.rm = TRUE),
    IQR_Diametro = IQR(Diámetro_hongo_mm, na.rm = TRUE),
    sd_Diametro = sd(Diámetro_hongo_mm, na.rm = TRUE),
    min_Diametro = min(Diámetro_hongo_mm, na.rm = TRUE),
    max_Diametro = max(Diámetro_hongo_mm, na.rm = TRUE),
    moda_Diametro = tryCatch(
      mfv(Diámetro_hongo_mm, na_rm = TRUE)[1],
      error = function(e) NA_real_
    )
  )

# Mostrar resultados
estadisticas_crecimiento

Y para decoloraciòn:

# Resumen detallado por medio
resumen_completo <- datos_dia7 %>%
  group_by(Medio) %>%
  skim()

# Estadísticas adicionales personalizadas
estadisticas_extra <- datos_dia7 %>%
  group_by(Medio) %>%
  summarise(
    media_Tasa = mean(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    mediana_Tasa = median(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    IQR_Tasa = IQR(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    sd_Tasa = sd(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    min_Tasa = min(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    max_Tasa = max(Tasa_decoloracion_pct_dia, na.rm = TRUE),
    moda_Tasa = tryCatch(
      mfv(Tasa_decoloracion_pct_dia, na_rm = TRUE)[1],
      error = function(e) NA_real_
    )
  )

# Ver resultado
estadisticas_extra

3. Análisis e Interpretación de Resultados

A pesar de haber contado con seis réplicas por tratamiento, la cantidad de datos disponibles por grupo no resulta suficiente para aplicar con robustez todas las herramientas de estadística descriptiva, especialmente aquellas que requieren mayor tamaño muestral para la evaluación de normalidad o simetría de la distribución. Sin embargo, los gráficos de caja combinados con violines permiten visualizar con claridad que la composición del medio de cultivo influye de manera notable tanto en el crecimiento de Pleurotus ostreatus como en su capacidad decolorante.

Además, al analizar ambas variables en conjunto, no se observa una relación directa entre crecimiento y decoloración, lo que sugiere que pueden estar moduladas por mecanismos fisiológicos distintos o afectados diferencialmente por los componentes del medio. Este hallazgo es relevante en el contexto biotecnológico, ya que un medio que favorezca el crecimiento no necesariamente optimizará la actividad enzimática asociada a la decoloración.

El análisis general de las variables mediante medidas de tendencia central y dispersión (media, desviación estándar, mediana e IQR) revela distribuciones con alta variabilidad: por ejemplo, el diámetro de las colonias al día 7 presentó una media de 59.3 mm con una desviación estándar de 16.8 mm, mientras que el porcentaje de decoloración mostró una media de 40.1% y un desvío de 21.1%. Estas cifras reflejan el amplio rango de respuestas biológicas entre tratamientos, lo cual es consistente con los resultados observados gráficamente.

Por otra parte, los valores de kurtosis y asimetría (skewness) obtenidos para cada medio y variable muestran desviaciones importantes respecto a una distribución normal, indicando que los datos presentan colas más cortas (kurtosis negativa) y asimetrías leves o moderadas. Este patrón sugiere que, si se quisiera avanzar en el análisis inferencial, sería necesario aplicar pruebas no paramétricas o verificar los supuestos de normalidad previamente.

El uso de la función skim() permitió obtener una descripción resumida pero completa de cada variable por tratamiento, incluyendo los principales parámetros estadísticos. Este análisis se complementó con una tabla adicional que incorpora mediana, rango intercuartílico (IQR) y moda, brindando una visión más robusta de la distribución de la variable Tasa de Decoloración por día.

En resumen, los resultados obtenidos evidencian una clara influencia de los tratamientos sobre el comportamiento de Pleurotus ostreatus. La peptona, como fuente de nitrógeno orgánico, tiende a favorecer tanto el crecimiento micelial como la decoloración del medio, mientras que el sulfato de amonio (fuente inorgánica) mostró efectos más limitantes.

Cabe destacar que las variables utilizadas en este análisis fueron definidas durante el Módulo 2 del curso, en el marco del diseño experimental, y que las diferencias observadas entre tratamientos podrían ser formalmente contrastadas mediante pruebas de hipótesis abordadas en el Módulo 5, lo que permitiría cerrar el ciclo analítico integrando los distintos componentes del abordaje estadístico.

Nota: una forma adicional de visualizar los resultados, sugerida por IA, es usar un boxplot, pero ordenado por magnitudes, y no por medio. Por ejemplo, para el crecimiento a los 7 días: ``

# Reordenar niveles del medio según la mediana del crecimiento
orden_medios <- datos_dia7 %>%
  group_by(Medio) %>%
  summarise(mediana_diam = median(Diámetro_hongo_mm, na.rm = TRUE)) %>%
  arrange(desc(mediana_diam)) %>%
  pull(Medio)

datos_dia7 <- datos_dia7 %>%
  mutate(Medio = factor(Medio, levels = orden_medios))

# Boxplot del diámetro del hongo
ggplot(datos_dia7, aes(x = Medio, y = Diámetro_hongo_mm, fill = Medio)) +
  geom_boxplot(outlier.color = "red", outlier.shape = 21, outlier.size = 2) +
  labs(
    title = "Crecimiento de Pleurotus por medio de cultivo (día 7)",
    x = "Medio de cultivo",
    y = "Diámetro del hongo (mm)"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = "none"
  )

Y para la decoloraciòn:

# Crear variable para tipo de tratamiento
datos_dia7 <- datos_dia7 %>%
  mutate(Tratamiento = case_when(
    str_detect(Medio, "Peptona") ~ "+ Peptona",
    str_detect(Medio, "Sulfato") ~ "+ Sulfato de amonio",
    TRUE ~ "Control"
  ))

# Boxplot mejorado para Tasa de decoloración
ggplot(datos_dia7, aes(x = reorder(Medio, Porc_decoloracion, median, na.rm = TRUE), 
                       y = Porc_decoloracion, 
                       fill = Tratamiento)) +
  geom_boxplot(outlier.shape = 16, outlier.size = 2, alpha = 0.8) +
  labs(
    title = "Porcentage de decoloración por medio de cultivo",
    subtitle = "Agrupado por tipo de tratamiento",
    x = "Medio de cultivo",
    y = "Porcentage de decoloración (%)",
    fill = "Tratamiento"
  ) +
  scale_fill_manual(values = c("Control" = "#bdbdbd", 
                               "+ Peptona" = "#1b9e77", 
                               "+ Sulfato de amonio" = "#d95f02")) +
  theme_minimal(base_size = 12) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Ambos graficos prueban lo que habiamos sugerido acerca de las influencias de las fuentes de nitrògeno. Este resultado es sorprendente, ya que no parece responder a una inhibiciòn por catabolitos como Ganoderma lucidum.