1 Introducción

El presente estudio se basa en el conjunto de datos sobre la clasificación de hongos, obtenido del repositorio de aprendizaje automático de la Universidad de California en Irvine (UCI) (Mushroom 1981) y disponible en Kaggle. Este dataset incluye información categórica correspondiente a 8,124 muestras de hongos, pertenecientes a 23 especies de los géneros Agaricus y Lepiota. Los atributos registrados incluyen características observables de los hongos, tales como olor, color y forma del sombrero, tipo de lámina, presencia de manchas, entre otros.

Cada registro está clasificado como comestible o venenoso, lo que permite evaluar la relación entre características físicas y toxicidad. La información categórica contenida en el dataset resulta fundamental, ya que cada atributo constituye una variable cualitativa capaz de discriminar entre hongos seguros y potencialmente peligrosos. El análisis de estas variables permite identificar patrones relevantes que pueden servir como base para modelos predictivos, así como para el desarrollo de criterios objetivos de clasificación basados en observaciones directas.

El propósito del estudio es analizar, de manera sistemática, la relación entre los atributos físicos de los hongos y su comestibilidad, utilizando herramientas estadísticas y de aprendizaje automático. Para ello, se emplearon R y RStudio (R Core Team 2022) con los siguientes objetivos específicos:

El análisis desarrollado proporciona una aproximación cuantitativa y objetiva al estudio de la clasificación de hongos, integrando la exploración de datos categóricos con técnicas de modelado predictivo, lo que resulta útil tanto en contextos de investigación como en aplicaciones prácticas de identificación de hongos comestibles y venenosos.

A continuación, veremos una primera vista de los datos del dataset con la funcion ```knitr::kable``` del paquete (Xie 2023) ;

Tabla 1: Ocho primeras filas
class cap.shape cap.surface cap.color bruises odor gill.attachment gill.spacing gill.size gill.color stalk.shape stalk.root stalk.surface.above.ring stalk.surface.below.ring stalk.color.above.ring stalk.color.below.ring veil.type veil.color ring.number ring.type spore.print.color population habitat
p x s n t p f c n k e e s s w w p w o p k s u
e x s y t a f c b k e c s s w w p w o p n n g
e b s w t l f c b n e c s s w w p w o p n n m
p x y w t p f c n n e e s s w w p w o p k s u
e x s g f n f w b k t e s s w w p w o e n a g
e x y y t a f c b n e c s s w w p w o p k n g
e b s w t a f c b g e c s s w w p w o p k n m
e b y w t l f c b n e c s s w w p w o p n s m

Nuestro dataset presenta 8124 filas 23 columnas, en nuestra tabla solo mostramos las 8 primeras filas.

2 Materiales y Métodos

2.1 Materiales

Para el uso del trabajo se empleó un conjunto de datos de setas que contiene información morfológica, sensorial y toxicológica. Para el análisis se seleccionaron tres variables categóricas, consideradas relevantes para la evaluación de la toxicidad:

  • Class

  • Odor

  • Bruises

2.2 Métodos

2.2.1 Definición de Variables Categóricas

Se trabaja con las siguientes variables categóricas:

  • Variable class (clase): La variable class indica si una seta es comestible (e) o venenosa (p). Es una variable categórica dicotómica que representa la categoría toxicológica del hongo. Constituye la variable de interés principal del estudio, dado que el objetivo consiste en identificar características asociadas a la toxicidad.

  • Variable odor (olor): La variable odor recoge el tipo de olor que presenta cada seta (almendrado, anís, desagradable, picante, sin olor, etc.). Se trata de una variable categórica con múltiples niveles y refleja un rasgo sensorial que, en micología, puede estar relacionado con la identificación y peligrosidad de determinadas especies. Su variabilidad y naturaleza cualitativa permiten analizar si ciertos olores aparecen con mayor frecuencia en setas venenosas que en comestibles.

  • Variable bruises (moretones o magulladuras): La variable bruises indica si la seta se magulla (“t”) o no (“f”) al manipularla. Es también una variable categórica dicotómica. Las magulladuras o cambios de color pueden constituir características fisiológicas relevantes en la identificación de especies y, potencialmente, en la diferenciación entre setas tóxicas y no tóxicas.

2.2.2 Preparación y organización de los datos

A continuación, se procedió a la preparación de los datos del dataset (Mushroom 1981) con el fin de facilitar los análisis y la visualización. En primer lugar, se utilizó la función select para conservar únicamente las variables bruises, class y odor, consideradas relevantes para el estudio. Para ello, se emplearon funciones de los paquetes dplyr (Wickham et al. 2023) y ggplot2 (Wickham et al. 2025) (Wickham 2016), los cuales fueron cargados previamente mediante la función library.

Tabla 2: Selección de variables
class odor bruises
p p t
e a t
e l t
p p t
e n f
e a t
e a t
e l t

No obstante, el dataset (Mushroom 1981) presenta una estructura poco intuitiva. Por este motivo, se procedió a reemplazar los códigos alfabéticos por descripciones textuales más explícitas, con el fin de facilitar la interpretación y el análisis estadístico de los datos.

Tabla 3: Dataset procesado
class odor bruises
venenoso Acre Se magulla
comestible Almendra Se magulla
comestible Anís Se magulla
venenoso Acre Se magulla
comestible Sin olor No magulla
comestible Almendra Se magulla
comestible Almendra Se magulla
comestible Anís Se magulla
venenoso Acre Se magulla
comestible Almendra Se magulla
# Primero transformamos la columna de clase con ifelse y lo tratamos como factor para nuestro analisis estadistico, donde haya p, sera venenoso, donde no, sera comestible.

pr_mushroom <- pr_mushroom %>%
  mutate(
    class = as.factor(ifelse(class == "p", 
                             "venenoso", 
                             "comestible")))

# Segundo, hacemos lo mismo con la columna bruises donde t se magulla.

pro_mushroom <- pr_mushroom %>%
  mutate(
    bruises = as.factor(ifelse(bruises == "t", 
                               "Se magulla", 
                               "No magulla")))

# Por ultimo y mas complicado vamos a hacer lo mismo pero con odor, al ser mas de un olor es bastante laborioso pero seguimos la misma dinámica anterior;

proc_mushroom <- pro_mushroom %>%
  mutate(
    odor = as.factor(
      ifelse(odor == "a", "Almendra",
             ifelse(odor == "c", "Creosota",
                    ifelse(odor == "f", "Fétido",
                           ifelse(odor == "l", "Anís",
                                  ifelse(odor == "m", "Moho",
                                         ifelse(odor == "n", "Sin olor",
                                                ifelse(odor == "p", "Acre",
                                                       ifelse(odor == "s", "Picante",
                                                              ifelse(odor == "y", "Pescado", NA)))))))))))

# A continuación plasmamos la tabla correctamente con nuestro nuevo dataset
knitr::kable(head(proc_mushroom, 10), align = 'c', caption = "Tabla 3: Dataset procesado")

2.2.3 Hipótesis Iniciales

Hipótesis 1: class vs odor

  • Hipótesis nula (H₀): La toxicidad de la seta (comestible o venenosa) es independiente del olor que presenta. Es decir, la probabilidad de que una seta sea venenosa es equivalente para todos los tipos de olor, por lo que el olor no proporciona información sobre la clasificación de la seta.

  • Hipótesis alternativa (H₁): La toxicidad de la seta depende del olor. La probabilidad de que una seta sea venenosa varía según el tipo de olor, indicando que el olor constituye un factor relevante para la distinción entre setas comestibles y venenosas.

Hipótesis 2: class vs bruises

  • Hipótesis nula (H₀): La toxicidad de la seta (comestible o venenosa) es independiente de la presencia de magulladuras. La probabilidad de que una seta sea venenosa es la misma tanto si presenta magulladuras como si no, por lo que esta característica no aporta información relevante para la clasificación.

  • Hipótesis alternativa (H₁): La toxicidad de la seta depende de la presencia de magulladuras. La probabilidad de que una seta sea venenosa varía según si la seta presenta o no magulladuras, indicando que esta variable constituye un factor relevante para la distinción entre setas comestibles y venenosas.

2.2.4 Método de Análisis Estadístico

Para evaluar la relación entre las variables consideradas y la toxicidad de las setas, se emplea el test de Chi-cuadrado de independencia, un procedimiento estadístico ampliamente utilizado para analizar asociaciones entre variables categóricas. Todas las variables involucradas en este estudio, tales como el olor y la presencia de magulladuras, son de tipo categórico, lo que permite clasificar las observaciones en diferentes categorías y analizar comparativamente su distribución en función de la toxicidad de la seta.

El test de Chi-cuadrado se basa en la comparación entre las frecuencias observadas en las tablas de contingencia y las frecuencias esperadas bajo la hipótesis de independencia, es decir, bajo la suposición de que no existe relación entre la variable de interés y la toxicidad. La magnitud de la discrepancia entre frecuencias observadas y esperadas permite determinar si la distribución de las categorías difiere de manera significativa de lo que se esperaría por azar.

La utilización de variables categóricas en este contexto es fundamental, ya que características como el olor y la presencia de magulladuras constituyen atributos discretos que pueden tener un papel determinante en la identificación de setas comestibles o venenosas. Analizar estas variables permite no solo verificar la existencia de asociaciones significativas, sino también identificar patrones que podrían ser relevantes para el desarrollo de modelos predictivos o guías de clasificación basadas en características observables.

2.2.5 Chi-cuadrado

Para llevar a cabo el test de Chi-cuadrado en R, el primer paso consiste en construir una tabla de contingencia que recoja las frecuencias observadas para cada combinación de categorías de las variables analizadas. Esto se realiza mediante la función table, que permite resumir de forma estructurada la distribución conjunta de dos variables categóricas. A partir de esta tabla, el test se aplica directamente con la función chisq.test(), que calcula el estadístico Chi-cuadrado, los grados de libertad y el valor p asociado.

Se generaron tablas mediante la función knitr (Xie 2023) con el objetivo de visualizar la información de manera más estructurada y práctica.

Tabla 4: tabla de contingencia olor vs clase
Acre Almendra Anís Creosota Fétido Moho Pescado Picante Sin olor
comestible 0 400 400 0 0 0 0 0 3408
venenoso 256 0 0 192 2160 36 576 576 120
Tabla 5: tabla de contingencia bruises vs clase
No magulla Se magulla
comestible 1456 2752
venenoso 3292 624

Estas tablas permiten observar la distribución conjunta de ambas variables. En las filas se presentan las diferentes clases de toxicidad (“venenoso” o “comestible”), mientras que en las columnas se representan las variables bruises y odor.

2.2.6 Criterio de decisión

Se estableció un nivel de significación de α = 0.05. La interpretación se realizó de la siguiente manera:

  • Si p ≤ 0.05: Se rechaza H₀, indicando la existencia de una relación significativa entre las variables.

  • Si p > 0.05: No se rechaza H₀, lo que indica ausencia de evidencia para afirmar la relación entre las variables.

3 Resultados

Los resultados obtenidos a partir de los tests de Chi-cuadrado de independencia indican que, en ambas comparaciones, los valores p son menores que 0,05, lo que implica el rechazo de la hipótesis nula (H₀) en los dos casos. A continuación representaremos los resultados, con tablas hechas a partir de knitr y broom::tidy

3.1 Class vs Bruises

Tabla 7: Resultados del test Chi-cuadrado para class vs bruises
statistic p.value parameter method
2041.416 < 2.2e-16 1 Pearson’s Chi-squared test with Yates’ continuity correction

El valor p menor de 0,05 permite concluir que la toxicidad depende de la presencia o ausencia de magulladuras. La distribución de esta característica no es aleatoria, sino que se asocia significativamente con la clasificación de la seta como venenosa o comestible. Por tanto, las magulladuras representan una variable útil para la distinción entre ambos tipos de hongos. En nuestro caso, concluimos que las magulladuras son bastante típicas de las setas que son comestibles.

3.1.1 Test de Fisher Class vs Bruises

Tabla: Resultados del test de Fisher para class vs bruises
estimate p.value conf.low conf.high method alternative
0.1003204 < 2.2e-16 0.0900101 0.1117226 Fisher’s Exact Test for Count Data two.sided

El test de Fisher lo usamos para analizar la relación entre dos variables categóricas mediante tablas de contingencia. Es especialmente adecuado cuando el tamaño muestral es pequeño (por eso quizas es mejor chi) o cuando existen frecuencias esperadas bajas, ya que calcula la probabilidad exacta sin depender de aproximaciones. Por ello, permite contrastar la independencia entre variables categóricas de forma válida en estas condiciones. En nuestro caso no ha dado problemas ya que nos sale el mismo p valor.

Dado que el valor de p es menor a 0,05, se concluye que existe una relación estadísticamente significativa entre ambas variables, indicando que la presencia de magulladuras se asocia de manera consistente con la clase de toxicidad de la seta.

3.2 Class vs Odor

Tabla 8: Resultados del test Chi-cuadrado para class vs odor
statistic p.value parameter method
7659.727 < 2.2e-16 8 Pearson’s Chi-squared test

Con el fin de reforzar la hipótesis planteada, la variable odor se transformó en dos categorías generales: presencia de olor y ausencia de olor. Esta simplificación permite centrar el análisis en la influencia global de la presencia de olor sobre la toxicidad de las setas, sin evaluar diferencias entre tipos específicos de olor.

La representación gráfica de la variable original, compuesta por múltiples categorías, resulta menos intuitiva y dificulta la identificación visual de patrones claros, especialmente cuando el objetivo es evaluar una relación general entre olor y toxicidad. En cambio, el uso de una variable binaria facilita la comparación directa entre grupos, mejora la claridad visual del gráfico y refuerza la coherencia entre el análisis estadístico y la hipótesis de investigación planteada.

El valor p inferior a 0,05 evidencia que la toxicidad de la seta depende del olor. Esto indica que ciertos tipos de olor se presentan con mayor frecuencia en setas venenosas en comparación con las comestibles. En consecuencia, el olor constituye una característica relevante y discriminante para la diferenciación de setas tóxicas y no tóxicas.

Una vez obtenida una representación gráfica simplificada de la variable odor, se emplea su forma original con múltiples categorías para profundizar en el análisis de las diferencias observadas. Esta aproximación permite examinar de manera más detallada cómo se distribuyen los distintos tipos de olor en función de la toxicidad de las setas, aportando una visión complementaria al análisis binario previo.

La representación gráfica de la variable odor desagregada en todas sus categorías facilita la identificación de patrones específicos que no pueden apreciarse cuando se consideran únicamente dos grupos generales. De este modo, aunque la recodificación binaria resulta útil para evaluar la relación global entre olor y toxicidad, el análisis detallado por tipos de olor permite interpretar con mayor precisión qué características sensoriales se asocian de forma más marcada a setas comestibles o venenosas, enriqueciendo la interpretación de los resultados obtenidos.

4 Conclusión

El análisis realizado sobre el conjunto de datos de hongos ha permitido evaluar de manera sistemática la relación entre las características morfológicas y sensoriales de las setas y su clasificación como comestibles o venenosas. La preparación y transformación de las variables categóricas class, bruises y odor, facilitó la interpretación de los datos, convirtiendo códigos alfabéticos en descripciones significativas y estructurando la información para su análisis estadístico.

Los resultados de las tablas de contingencia y los tests de independencia, incluyendo el Chi-cuadrado y el test de Fisher, indican que existe una asociación significativa entre la toxicidad de las setas y las variables consideradas. En particular:

Los procedimientos implementados, que incluyen la transformación de variables, la generación de tablas de contingencia y la aplicación de tests estadísticos adecuados para variables categóricas, proporcionan un marco metodológico riguroso para la identificación de factores discriminantes en hongos. Asimismo, las visualizaciones gráficas refuerzan la interpretación de los resultados y permiten una evaluación clara de los patrones presentes en los datos.

Para finalizar, tanto el olor como la presencia de magulladuras y moretones constituyen variables relevantes para la clasificación de setas, mostrando una asociación estadísticamente significativa con la toxicidad. Estos hallazgos respaldan la utilidad de las características morfológicas y sensoriales como criterios objetivos en la identificación de hongos comestibles y venenosos, contribuyendo a la comprensión de los factores que determinan la seguridad en su consumo y proporcionando una base sólida para estudios predictivos y aplicaciones prácticas en micología.

5 Referencias Bibliográficas e información de sesión

## R version 4.5.2 (2025-10-31)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 20.04.6 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3;  LAPACK version 3.9.0
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## time zone: UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] ggplot2_4.0.1 dplyr_1.1.4  
## 
## loaded via a namespace (and not attached):
##  [1] vctrs_0.6.5        cli_3.6.5          knitr_1.50         rlang_1.1.6       
##  [5] xfun_0.54          purrr_1.2.0        generics_0.1.4     S7_0.2.1          
##  [9] jsonlite_2.0.0     labeling_0.4.3     glue_1.8.0         backports_1.5.0   
## [13] htmltools_0.5.9    sass_0.4.10        scales_1.4.0       rmarkdown_2.30    
## [17] grid_4.5.2         evaluate_1.0.5     jquerylib_0.1.4    tibble_3.3.0      
## [21] fastmap_1.2.0      yaml_2.3.11        lifecycle_1.0.4    compiler_4.5.2    
## [25] RColorBrewer_1.1-3 pkgconfig_2.0.3    tidyr_1.3.1        farver_2.1.2      
## [29] digest_0.6.39      R6_2.6.1           tidyselect_1.2.1   pillar_1.11.1     
## [33] magrittr_2.0.4     bslib_0.9.0        withr_3.0.2        tools_4.5.2       
## [37] gtable_0.3.6       broom_1.0.11       cachem_1.1.0
Mushroom.” 1981. UCI Machine Learning Repository.
R Core Team. 2022. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
Wickham, Hadley. 2016. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org.
Wickham, Hadley, Winston Chang, Lionel Henry, Thomas Lin Pedersen, Kohske Takahashi, Claus Wilke, Kara Woo, Hiroaki Yutani, Dewey Dunnington, and Teun van den Brand. 2025. Ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics. https://ggplot2.tidyverse.org.
Wickham, Hadley, Romain François, Lionel Henry, Kirill Müller, and Davis Vaughan. 2023. Dplyr: A Grammar of Data Manipulation. https://dplyr.tidyverse.org.
Xie, Yihui. 2023. Knitr: A General-Purpose Package for Dynamic Report Generation in r. https://yihui.org/knitr/.