From 71d549b022e354e0869297f8d8a5504fc907614e Mon Sep 17 00:00:00 2001 From: jmontilla Date: Mon, 5 May 2025 14:03:21 -0500 Subject: [PATCH 01/11] Create R Estructura del Proyecto Signed-off-by: jmontilla --- R | 1 + 1 file changed, 1 insertion(+) create mode 100644 R diff --git a/R b/R new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/R @@ -0,0 +1 @@ + From c0df11b0a9f19bf32857ed1bccf4438401379e15 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Mon, 5 May 2025 14:06:18 -0500 Subject: [PATCH 02/11] Create IA-UniTools-R Signed-off-by: jmontilla --- IA-UniTools-R | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 IA-UniTools-R diff --git a/IA-UniTools-R b/IA-UniTools-R new file mode 100644 index 0000000..dd02928 --- /dev/null +++ b/IA-UniTools-R @@ -0,0 +1,23 @@ +# IA-UniTools-R 馃帗馃 + +[![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R) +[![R Version](https://img.shields.io/badge/R%20version-%3E%3D4.0.0-blue)](https://cran.r-project.org/) +[![Lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://www.tidyverse.org/lifecycle/#maturing) + +Conjunto de herramientas de IA para potenciar la investigaci贸n y gesti贸n acad茅mica universitaria. + +## 馃搶 Caracter铆sticas Principales + +- **An谩lisis Predictivo de Rendimiento** +- **Asistente de Investigaci贸n Automatizado** +- **Dashboard Interactivo de Progreso** +- **Sistema de Recomendaci贸n H铆brido** +- **Procesamiento de Notas con NLP** +- **Planificador Acad茅mico Inteligente** + +## 馃摜 Instalaci贸n + +```r +# Requiere RTools: https://cran.r-project.org/bin/windows/Rtools/ +install.packages("devtools") +devtools::install_github("tu_usuario/IA-UniTools-R") From cf2ed51024bb757eef05ab84341cd5dbe30e5e07 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Tue, 6 May 2025 23:14:31 -0500 Subject: [PATCH 03/11] Update Create Project in.R Signed-off-by: jmontilla --- Create Project in.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Create Project in.R b/Create Project in.R index c1f977c..5c52e07 100644 --- a/Create Project in.R +++ b/Create Project in.R @@ -1,6 +1,6 @@ # Create new project R # File > New Project > Version Control > Git -# Repository URL: https://github.com/usuario/hermetia-illucens-research.git +# Repository URL: https://github.com/VoidPerx/unalbsfec # Setting up Git in R library(usethis) @@ -17,4 +17,3 @@ use_git_config( deparse.max.lines = 2 ) } - From f004acfcc7acf429eafd1b45f09aacf5f0c00a43 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 13:32:59 -0500 Subject: [PATCH 04/11] Create analisis_multinivel_gam_visualizacion.R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ````markdown name=analisis_multinivel_gam_visualizacion.R # An谩lisis Multinivel usando GAM y Visualizaci贸n Integrada con ggalign # # Este script realiza un an谩lisis avanzado de datos multivariados para optimizar la cr铆a de *Hermetia illucens* (mosca soldado negra). # Utiliza Modelos Aditivos Generalizados (GAM) para modelar relaciones no lineales entre variables ambientales y de respuesta. # # **Componentes principales del an谩lisis**: # 1. **Ajuste de Modelos GAM**: # - Modela la biomasa producida en funci贸n de temperatura, humedad, densidad larval y sus interacciones. # 2. **Visualizaci贸n Integrada**: # - Mapa de calor: Relaci贸n entre temperatura y humedad sobre la biomasa producida. # - Gr谩ficos marginales: Totales acumulados por nivel de temperatura y humedad. # - Dendrograma: Agrupaciones jer谩rquicas de condiciones experimentales. # - Efectos parciales: Impacto individual de cada variable ambiental. # 3. **Clustering jer谩rquico**: # - PCA para reducci贸n de dimensionalidad. # - Agrupamiento de condiciones experimentales similares. # # **Aplicaci贸n pr谩ctica**: # - Optimizaci贸n de sistemas de producci贸n en entomocultura. # - Generaci贸n de visualizaciones claras para audiencias cient铆ficas e industriales. # # **Herramientas utilizadas**: # - Paquete `mgcv` para ajuste de GAM. # - `ggalign` para integrar m煤ltiples visualizaciones en un dise帽o cohesivo. # - `factoextra` y `dendextend` para clustering y dendrogramas. # # **Autor**: Juan Felipe Montilla Cuasquen # **Repositorio**: VoidPerx/unalbsfec # **Fecha**: 2025-05-08 ```` Signed-off-by: jmontilla --- analisis_multinivel_gam_visualizacion.R | 91 +++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 analisis_multinivel_gam_visualizacion.R diff --git a/analisis_multinivel_gam_visualizacion.R b/analisis_multinivel_gam_visualizacion.R new file mode 100644 index 0000000..d858358 --- /dev/null +++ b/analisis_multinivel_gam_visualizacion.R @@ -0,0 +1,91 @@ +# Carga de librer铆as necesarias +library(tidyverse) +library(mgcv) +library(ggalign) +library(factoextra) +library(viridis) +library(dendextend) + +# Generaci贸n de datos simulados (reemplazar con tus datos reales) +set.seed(123) +datos_hermetia <- tibble( + temperatura = runif(100, 20, 35), + humedad = runif(100, 50, 80), + densidad_larval = runif(100, 1, 10), + biomasa = rnorm(100, mean = 50, sd = 10) +) + +# Ajuste del modelo GAM +modelo_gam <- gam( + biomasa ~ s(temperatura, bs = "tp") + + s(humedad, bs = "tp") + + s(densidad_larval, bs = "tp") + + te(temperatura, humedad), + data = datos_hermetia, + method = "REML" +) + +# Predicciones para mapa de calor +grid <- expand.grid( + temperatura = seq(20, 35, length.out = 100), + humedad = seq(50, 80, length.out = 100) +) +grid$pred_biomasa <- predict(modelo_gam, newdata = grid) + +# Gr谩fico de mapa de calor +heatmap_plot <- ggplot(grid, aes(x = temperatura, y = humedad, fill = pred_biomasa)) + + geom_tile() + + scale_fill_viridis_c(option = "C") + + labs(title = "Mapa de Calor: Biomasa en funci贸n de Temperatura y Humedad", + x = "Temperatura (掳C)", + y = "Humedad (%)", + fill = "Biomasa") + + theme_minimal() + +# Gr谩ficos de efectos parciales +efectos_parciales <- plot.gam(modelo_gam, pages = 1, seWithMean = TRUE) + +# Clustering jer谩rquico basado en variables ambientales +pca <- prcomp(datos_hermetia %>% select(temperatura, humedad, densidad_larval), scale. = TRUE) +distancias <- dist(pca$x[, 1:2]) +hc <- hclust(distancias, method = "ward.D2") +dendrograma <- as.dendrogram(hc) + +# Dendrograma visual +dendrogram_plot <- ggdendrogram(dendrograma, theme_dendro = TRUE) + + labs(title = "Dendrograma: Agrupaci贸n de Condiciones Experimentales") + + theme_minimal() + +# Gr谩ficos marginales +marginal_temp <- datos_hermetia %>% + group_by(temperatura) %>% + summarise(total_biomasa = sum(biomasa)) %>% + ggplot(aes(x = temperatura, y = total_biomasa)) + + geom_bar(stat = "identity", fill = "steelblue") + + labs(title = "Biomasa Total por Temperatura", x = "Temperatura (掳C)", y = "Biomasa Total") + + theme_minimal() + +marginal_hum <- datos_hermetia %>% + group_by(humedad) %>% + summarise(total_biomasa = sum(biomasa)) %>% + ggplot(aes(x = humedad, y = total_biomasa)) + + geom_bar(stat = "identity", fill = "steelblue") + + labs(title = "Biomasa Total por Humedad", x = "Humedad (%)", y = "Biomasa Total") + + theme_minimal() + +# Visualizaci贸n integrada con ggalign +final_plot <- ggalign( + heatmap_plot, + marginal_temp, + marginal_hum, + dendrogram_plot, + ncol = 2, + nrow = 2, + labels = c("A", "B", "C", "D") +) + +# Guardar visualizaci贸n +ggsave("visualizacion_integrada.png", final_plot, width = 14, height = 10) + +# Mostrar visualizaci贸n +print(final_plot) From 979ab79d2b3bdc6e552c17b400e633a3ff96e34e Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 13:41:54 -0500 Subject: [PATCH 05/11] Update IA-UniTools-R Signed-off-by: jmontilla --- IA-UniTools-R | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/IA-UniTools-R b/IA-UniTools-R index dd02928..803fe54 100644 --- a/IA-UniTools-R +++ b/IA-UniTools-R @@ -1,3 +1,4 @@ +````markdown name=README.md # IA-UniTools-R 馃帗馃 [![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R) @@ -14,10 +15,29 @@ Conjunto de herramientas de IA para potenciar la investigaci贸n y gesti贸n acad - **Sistema de Recomendaci贸n H铆brido** - **Procesamiento de Notas con NLP** - **Planificador Acad茅mico Inteligente** +- **Visualizaci贸n Integrada de Datos**: Genera gr谩ficos avanzados combinando mapas de calor, gr谩ficos marginales y dendrogramas. ## 馃摜 Instalaci贸n ```r # Requiere RTools: https://cran.r-project.org/bin/windows/Rtools/ install.packages("devtools") -devtools::install_github("tu_usuario/IA-UniTools-R") +devtools::install_github("VoidPerx/IA-UniTools-R") +``` + +## 馃殌 Actualizaciones Recientes + +- **[2025-05-08]**: A帽adida funcionalidad para an谩lisis multinivel usando GAM y visualizaci贸n avanzada con `ggalign`. +- **Mejoras en el sistema de recomendaci贸n h铆brido**: Ahora incluye un modelo m谩s robusto para predicciones personalizadas. +- **Optimizaci贸n del procesamiento de texto con NLP**: Reducci贸n del tiempo de ejecuci贸n en un 30%. + +## 馃摉 Documentaci贸n + +Consulta la documentaci贸n completa y ejemplos de uso en el [Wiki del repositorio](https://github.com/VoidPerx/IA-UniTools-R/wiki). + +## 馃摟 Contacto + +**Autor**: Juan Felipe Montilla Cuasquen +**Correo**: [jmontilla@unal.edu.co](mailto:jmontilla@unal.edu.co) +**GitHub**: [VoidPerx](https://github.com/VoidPerx) +```` From faddf540729cf18ced90d239b8de9df4f398922d Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:15:07 -0500 Subject: [PATCH 06/11] =?UTF-8?q?Update=20and=20rename=20R=20to=20Diagn?= =?UTF-8?q?=C3=B3stico=20de=20Colinealidad.R?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jmontilla --- "Diagn\303\263stico de Colinealidad.R" | 96 ++++++++++++++++++++++++++ R | 1 - 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 "Diagn\303\263stico de Colinealidad.R" delete mode 100644 R diff --git "a/Diagn\303\263stico de Colinealidad.R" "b/Diagn\303\263stico de Colinealidad.R" new file mode 100644 index 0000000..0a5f478 --- /dev/null +++ "b/Diagn\303\263stico de Colinealidad.R" @@ -0,0 +1,96 @@ +## Gu铆a para Manejar Colinealidad y Alta Dimensionalidad en GAM con R (Corregida y Ampliada) +# Diagn贸stico de Colinealidad +# 1. Matriz de Correlaci贸n: + +library(corrplot) + +# Simulaci贸n de datos correcta (X2 depende de X1) +set.seed(123) +X1 <- rnorm(100) +datos <- data.frame( + X1 = X1, + X2 = 2*X1 + rnorm(100, sd = 0.5), + X3 = runif(100), + Y = 3*X1 + rnorm(100) # Variable respuesta +) + +matriz_cor <- cor(datos[, c("X1", "X2", "X3")]) +corrplot(matriz_cor, method = "number", type = "upper") +Correcci贸n: Se simula X1 fuera del data.frame para claridad, aunque el c贸digo original era funcional. + +# 2. Factor de Inflaci贸n de Varianza (VIF): + +library(car) +modelo_lineal <- lm(Y ~ X1 + X2 + X3, data = datos) +vif_values <- vif(modelo_lineal) +print(vif_values) # X2 muestra VIF alto (>5) +Nota: El VIF en modelos lineales es una aproximaci贸n. En GAM, considerar usar remoci贸n manual o t茅cnicas de penalizaci贸n. + +Tratamiento de Colinealidad +# 1. Eliminaci贸n de Variables: + +datos_limpios <- subset(datos, select = -c(X2)) +# 2. PCA sin Redundancia en Escalado: + +# Escalado correcto integrado en prcomp +pca_result <- prcomp(datos[, c("X1", "X2", "X3")], center = TRUE, scale. = TRUE) +summary(pca_result) + +# Extraer componentes principales (primeras dos componentes) +componentes <- as.data.frame(pca_result$x[, 1:2]) +colnames(componentes) <- c("PC1", "PC2") + +# Unir con Y correctamente +datos_pca <- data.frame(Y = datos$Y, componentes) +# Ajuste de GAM +# 1. Modelo con Variables Filtradas: + +library(mgcv) +modelo_gam <- gam(Y ~ s(X1) + s(X3), data = datos_limpios, method = "REML") +# 2. Modelo con PCA: + +modelo_gam_pca <- gam(Y ~ s(PC1) + s(PC2), data = datos_pca, method = "REML") +Validaci贸n del Modelo (Corregida) +Comparaci贸n con Validaci贸n Cruzada: + +library(caret) + +# Funci贸n para calcular RMSE +rmse <- function(real, predicho) sqrt(mean((real - predicho)^2)) + +# Validaci贸n cruzada para modelo filtrado +set.seed(456) +ctrl <- trainControl(method = "cv", number = 10) +modelo_filtrado_cv <- train(Y ~ s(X1) + s(X3), data = datos_limpios, + method = "gam", trControl = ctrl) +modelo_pca_cv <- train(Y ~ s(PC1) + s(PC2), data = datos_pca, + method = "gam", trControl = ctrl) + +# Comparar RMSE +print(paste("RMSE (Filtrado):", modelo_filtrado_cv$results$RMSE)) +print(paste("RMSE (PCA):", modelo_pca_cv$results$RMSE)) +Nota: La validaci贸n cruzada compara modelos en t茅rminos predictivos, evitando la comparaci贸n inv谩lida con AIC. + +#Clusterizaci贸n de Variables (Corregida) + +# Calcular matriz de distancia basada en 1 - |correlaci贸n| +dist_matrix <- as.dist(1 - abs(matriz_cor)) +clusters <- hclust(dist_matrix) +plot(clusters, main = "Cl煤steres de Variables") +Consideraciones Clave Ampliadas +Selecci贸n de Variables en GAM: + +# Usar select = TRUE en gam() para activar penalizaciones que eliminan t茅rminos no informativos: + +modelo_gam_penalizado <- gam(Y ~ s(X1) + s(X2) + s(X3), + data = datos, method = "REML", select = TRUE) +# Interpretaci贸n de Componentes PCA: + +# Analizar la carga de las componentes para entender qu茅 variables originales contribuyen: + +print(pca_result$rotation[, 1:2]) +Manejo de Datos No Lineales: + +# Si la colinealidad es no lineal, considerar t茅cnicas como Kernel PCA o Redes Neuronales Autoencoder. + +# Conclusi贸n: La gu铆a corregida prioriza m茅todos robustos como validaci贸n cruzada para comparar modelos y evita errores comunes en PCA y clustering. Al integrar t茅cnicas de penalizaci贸n en GAM y explicar la interpretaci贸n de componentes, se logra un equilibrio entre precisi贸n y claridad anal铆tica. diff --git a/R b/R deleted file mode 100644 index 8b13789..0000000 --- a/R +++ /dev/null @@ -1 +0,0 @@ - From 3996bc214a6d086eb81770efd35b755b7c8778e4 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:16:16 -0500 Subject: [PATCH 07/11] =?UTF-8?q?Update=20Diagn=C3=B3stico=20de=20Colineal?= =?UTF-8?q?idad.R?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jmontilla --- "Diagn\303\263stico de Colinealidad.R" | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git "a/Diagn\303\263stico de Colinealidad.R" "b/Diagn\303\263stico de Colinealidad.R" index 0a5f478..927ee1e 100644 --- "a/Diagn\303\263stico de Colinealidad.R" +++ "b/Diagn\303\263stico de Colinealidad.R" @@ -24,7 +24,7 @@ library(car) modelo_lineal <- lm(Y ~ X1 + X2 + X3, data = datos) vif_values <- vif(modelo_lineal) print(vif_values) # X2 muestra VIF alto (>5) -Nota: El VIF en modelos lineales es una aproximaci贸n. En GAM, considerar usar remoci贸n manual o t茅cnicas de penalizaci贸n. +# Nota: El VIF en modelos lineales es una aproximaci贸n. En GAM, considerar usar remoci贸n manual o t茅cnicas de penalizaci贸n. Tratamiento de Colinealidad # 1. Eliminaci贸n de Variables: @@ -51,7 +51,7 @@ modelo_gam <- gam(Y ~ s(X1) + s(X3), data = datos_limpios, method = "REML") modelo_gam_pca <- gam(Y ~ s(PC1) + s(PC2), data = datos_pca, method = "REML") Validaci贸n del Modelo (Corregida) -Comparaci贸n con Validaci贸n Cruzada: +# Comparaci贸n con Validaci贸n Cruzada: library(caret) @@ -69,16 +69,16 @@ modelo_pca_cv <- train(Y ~ s(PC1) + s(PC2), data = datos_pca, # Comparar RMSE print(paste("RMSE (Filtrado):", modelo_filtrado_cv$results$RMSE)) print(paste("RMSE (PCA):", modelo_pca_cv$results$RMSE)) -Nota: La validaci贸n cruzada compara modelos en t茅rminos predictivos, evitando la comparaci贸n inv谩lida con AIC. +# Nota: La validaci贸n cruzada compara modelos en t茅rminos predictivos, evitando la comparaci贸n inv谩lida con AIC. -#Clusterizaci贸n de Variables (Corregida) +# Clusterizaci贸n de Variables (Corregida) # Calcular matriz de distancia basada en 1 - |correlaci贸n| dist_matrix <- as.dist(1 - abs(matriz_cor)) clusters <- hclust(dist_matrix) plot(clusters, main = "Cl煤steres de Variables") Consideraciones Clave Ampliadas -Selecci贸n de Variables en GAM: +# Selecci贸n de Variables en GAM: # Usar select = TRUE en gam() para activar penalizaciones que eliminan t茅rminos no informativos: @@ -89,7 +89,7 @@ modelo_gam_penalizado <- gam(Y ~ s(X1) + s(X2) + s(X3), # Analizar la carga de las componentes para entender qu茅 variables originales contribuyen: print(pca_result$rotation[, 1:2]) -Manejo de Datos No Lineales: +# Manejo de Datos No Lineales: # Si la colinealidad es no lineal, considerar t茅cnicas como Kernel PCA o Redes Neuronales Autoencoder. From 27ee8b424edab70157c2cee2dd3cc680751bec60 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:18:19 -0500 Subject: [PATCH 08/11] Update IA-UniTools-R Signed-off-by: jmontilla --- IA-UniTools-R | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/IA-UniTools-R b/IA-UniTools-R index 803fe54..2d9c1fa 100644 --- a/IA-UniTools-R +++ b/IA-UniTools-R @@ -1,4 +1,4 @@ -````markdown name=README.md +markdown name=README.md # IA-UniTools-R 馃帗馃 [![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R) @@ -19,11 +19,9 @@ Conjunto de herramientas de IA para potenciar la investigaci贸n y gesti贸n acad ## 馃摜 Instalaci贸n -```r # Requiere RTools: https://cran.r-project.org/bin/windows/Rtools/ install.packages("devtools") devtools::install_github("VoidPerx/IA-UniTools-R") -``` ## 馃殌 Actualizaciones Recientes @@ -40,4 +38,4 @@ Consulta la documentaci贸n completa y ejemplos de uso en el [Wiki del repositori **Autor**: Juan Felipe Montilla Cuasquen **Correo**: [jmontilla@unal.edu.co](mailto:jmontilla@unal.edu.co) **GitHub**: [VoidPerx](https://github.com/VoidPerx) -```` + From 5b10669445c800d801d1e4dc3e93a742dd9f3bb2 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:19:09 -0500 Subject: [PATCH 09/11] Rename IA-UniTools-R to IA-UniTools-.R Signed-off-by: jmontilla --- IA-UniTools-R => IA-UniTools-.R | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename IA-UniTools-R => IA-UniTools-.R (100%) diff --git a/IA-UniTools-R b/IA-UniTools-.R similarity index 100% rename from IA-UniTools-R rename to IA-UniTools-.R From b5171a63485a20475fbaab02c9773531fbe57c33 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:19:31 -0500 Subject: [PATCH 10/11] Update IA-UniTools-.R Signed-off-by: jmontilla --- IA-UniTools-.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IA-UniTools-.R b/IA-UniTools-.R index 2d9c1fa..2efa209 100644 --- a/IA-UniTools-.R +++ b/IA-UniTools-.R @@ -1,4 +1,4 @@ -markdown name=README.md +# markdown name=README.md # IA-UniTools-R 馃帗馃 [![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R) From 39f084b001483ec8b117a4e06f0a0011df634dd1 Mon Sep 17 00:00:00 2001 From: jmontilla Date: Thu, 8 May 2025 15:19:59 -0500 Subject: [PATCH 11/11] Update IA-UniTools-.R Signed-off-by: jmontilla --- IA-UniTools-.R | 1 - 1 file changed, 1 deletion(-) diff --git a/IA-UniTools-.R b/IA-UniTools-.R index 2efa209..6735ea4 100644 --- a/IA-UniTools-.R +++ b/IA-UniTools-.R @@ -1,4 +1,3 @@ -# markdown name=README.md # IA-UniTools-R 馃帗馃 [![CRAN Status](https://www.rpcra.org/shields/cran/v/IA-UniTools-R)](https://cran.r-project.org/package=IA-UniTools-R)