Skip to content

Releases: PALP31/easyModels

easyModels v0.4.2 — Experiencia de ajuste más clara y reproducible

Choose a tag to compare

@PALP31 PALP31 released this 17 Aug 04:07

✨ Experiencia de ajuste más clara y reproducible

  • Se incorporó resumir_ajuste(), una salida tabular de una fila con fórmula, familia, enlace, AIC, BIC, R² y el detalle de observaciones totales, utilizadas y excluidas.
  • Los objetos easy_model ahora conservan ese detalle de muestra y lo muestran al imprimirse; si se omitieron filas, se advierte de forma explícita para evitar resultados interpretados con una muestra distinta a la esperada.
  • Los cuatro ajustadores principales (analizar_lm(), analizar_glm(), analizar_lmm() y analizar_glmm()) validan que los datos sean un data.frame, que la fórmula sea válida y que las variables existan antes de invocar el motor estadístico.
  • Se añadieron pruebas de regresión para el resumen de ajuste, el registro de filas omitidas y los mensajes de validación temprana.

📦 Instalación

devtools::install_github("PALP31/easyModels@v0.4.2")
# o versión más reciente en main:
devtools::install_github("PALP31/easyModels")

easyModels v0.4.0 — Diseños Experimentales Avanzados, Auditoría de Supuestos & Figuras de Publicación

Choose a tag to compare

@PALP31 PALP31 released this 14 Aug 15:54

📦 easyModels v0.4.0 — Diseños Experimentales Avanzados, Auditoría de Supuestos & Figuras de Publicación

Esta nueva versión mayor de easyModels amplía significativamente el catálogo de diseños experimentales bioagronómicos, introduce herramientas automatizadas de auditoría de supuestos, selección de modelos multivariados por AIC, formateo de tablas para manuscritos y figuras de publicación en barras e interacciones con letras de Tukey (CLD).


🌾 1. Nuevos Diseños Experimentales

  • analizar_latino(): Ajuste de diseños en Cuadrado Latino (LSD) controlando fuentes ortogonales de variación ambiental en filas y columnas mediante efectos mixtos cruzados ((1|fila) + (1|columna)) o efectos fijos.
  • analizar_medidas_repetidas(): Ajuste de modelos longitudinales y ensayos con Medidas Repetidas en el Tiempo sobre el mismo sujeto/planta/maceta ((1|sujeto) o (1|bloque/sujeto)).
  • analizar_strip_plot(): Modelado de diseños en Franjas Divididas / Bloques Cruzados (Strip-Plot / Criss-Cross) con factores principales perpendiculares.

🔍 2. Auditoría Automatizada de Supuestos (verificar_supuestos)

  • Batería completa de pruebas estadísticas:
    • Normalidad de residuos: Shapiro-Wilk ($W$ y $p$-valor exactos).
    • Homocedasticidad: Prueba de Breusch-Pagan y homogeneidad de varianza.
    • Multicolinealidad: Factores de Inflación de Varianza (VIF).
    • Autocorrelación: Estadístico de Durbin-Watson.
    • Valores Atípicos e Influyentes: Distancia de Cook con umbral $D > 4/n$.
  • Reporte interactivo en consola mediante cli con diagnósticos comprensibles y sugerencias bioestadísticas de corrección.

🤖 3. Asistente Bioestadístico de Transformación (sugerir_modelo)

  • Analiza la variable de respuesta empírica (proporción de ceros, soporte acotado $(0,1)$, sobredispersión de conteos, asimetría continua positiva).
  • Calcula el parámetro de potencia óptimo de Box-Cox ($\lambda$).
  • Recomienda la familia adecuada de GLM/GLMM (gamma, beta, tweedie, zip, zinb, poisson, negativa_binomial) o la transformación adecuada para LM clásico.

📊 4. Selección y Comparación de Modelos (comparar_modelos)

  • Compara múltiples modelos en una tabla unificada con:
    • Criterio de Información de Akaike ($AIC$) y Bayesiano ($BIC$).
    • Delta-AIC ($\Delta AIC$) y Pesos de Akaike ($w_i$) para ponderación de evidencia.
    • Log-Verosimilitud ($LogLik$) y coeficientes de determinación $R^2$ Marginal y Condicional.

📄 5. Tablas Formateadas para Tesis y Publicaciones (exportar_tablas)

  • exportar_tabla_anova(): Formatea la tabla ANOVA con grados de libertad, estadístico $F/\chi^2$, estrellas de significancia ($***, **, *, ns$) y tamaño del efecto (Eta-cuadrado parcial $\eta_p^2$). Compatible con Markdown, LaTeX y data.frame.
  • exportar_tabla_posthoc(): Exporta las medias marginales estimadas y grupos de letras Tukey en formato limpio para artículos.

🎨 6. Gráficos Científicos de Publicación

  • graficar_predichos():
    • Soporte para gráficos de barras (tipo_grafico = "barras"), puntos y líneas con barras de error al 95% o SE.
    • Letras de significancia Tukey (CLD) alineadas automáticamente sobre las barras/puntos.
    • Paletas de colores científicas integradas (teal, viridis, cividis, set2, okabe_ito).
  • graficar_interaccion(): Gráficos de efectos simples para interacciones de dos vías ($A \times B$).

🧪 7. Suite de Pruebas Unitarias

  • 40 tests unitarios automatizados (testthat) cubriendo todas las funciones con 100% de aprobación.
  • Vignette de uso guia-easyModels.Rmd actualizada y compilada.

💻 Instalación / Actualización

# Instalar directamente desde GitHub
devtools::install_github("PALP31/easyModels")

Autor: Paúl Alexander López Peña (Pontificia Universidad Católica de Chile)

easyModels v0.3.0 — 17 Familias GLM & 16 GLMM (glmmTMB)

Choose a tag to compare

@PALP31 PALP31 released this 10 Jul 02:28

🚀 easyModels v0.3.0

Nuevas Características y Mejoras

1. Expansión Masiva de Familias en analizar_glm() (17 Familias)

Ahora puedes ajustar modelos lineales generalizados con casi cualquier distribución común en agronomía y biología:

  • Distribuciones de proporciones: binomial (logit), binomial_probit, binomial_cloglog, quasibinomial, y beta (vía betareg).
  • Distribuciones de conteo: poisson, quasipoisson, negativa_binomial (vía MASS::glm.nb), zip (Zero-Inflated Poisson) y zinb (Zero-Inflated Binomial Negativa) vía pscl.
  • Distribuciones continuas sesgadas/positivas: gamma (con link log), gamma_inverse, gaussian_inversa, y tweedie (vía statmod).
  • Distribuciones categóricas: ordinal (vía MASS::polr) y multinomial (vía nnet).

2. Soporte para Estructuras de Efectos Mixtos Complejos en analizar_glmm() (16 Distribuciones)

Aprovecha el motor de glmmTMB para modelar efectos aleatorios en distribuciones avanzadas:

  • Efectos mixtos continuos sesgados: gamma, gamma_inverse, y lognormal.
  • Proporciones mixtas: beta (tasas de germinación, coberturas).
  • Conteos mixtos zero-inflados: zip y zinb.
  • Respuesta continua con ceros mixtos: zifgamma (Zero-Inflated Gamma).
  • Modelos sobredispersos avanzados: parametrizaciones de binomial negativa nbinom1 y nbinom2.
  • Modelos mixtos ordinales: ordinal (vía ordinal::clmm).

3. Mensajes de Guía Fisiológica y Bioestadística

Al ajustar un modelo, el paquete imprime guías interactivas en la consola:

  • Validación de que los datos de la respuesta sean estrictamente > 0 en distribuciones Gamma o Log-normal.
  • Validación del rango abierto (0, 1) para la familia Beta, sugiriendo transformaciones clásicas (como la de Smithson & Verkuilen) si hay ceros u unos.
  • Guías de interpretación y sugerencias de correcciones por sobredispersión.

Instalación

devtools::install_github("PALP31/easyModels")

easyModels v0.2.0 — Arquitectura S3 Unificada

Choose a tag to compare

@PALP31 PALP31 released this 10 Jul 02:09

🚀 easyModels v0.2.0

Nuevas características

  • Arquitectura S3 unificada: todas las funciones (analizar_lm, analizar_glm, analizar_lmm, analizar_glmm, analizar_bloques_azar, analizar_parcelas_divididas) devuelven objetos de clase easy_model ó easy_splitplot.
  • Métodos genéricos S3: print(), summary(), plot() disponibles para todos los modelos con salida estilizada via cli.
  • evaluar_modelo(): función unificada de diagnóstico que extrae AIC, BIC, R², ICC, singularidad y genera gráficos DHARMa automáticamente.
  • obtener_emmeans(): separado de obtener_posthoc() para mayor flexibilidad.
  • Compact Letter Display (CLD) integrado en obtener_posthoc(letras = TRUE) via multcomp::cld().
  • Tests unitarios de arquitectura S3: suite completa tests/testthat/test-arquitectura.R — 12/12 PASS.

Correcciones de bugs

  • 🐛 Fix crítico: error fatal $ operator is invalid for atomic vectors al llamar evaluar_modelo() o plot() sobre modelos singulares (glmerMod, merMod con varianza de efectos aleatorios = 0). performance::icc() y performance::r2() devuelven NA lógico en este caso y el operador $ crasheaba.
  • Solución: helper interno .safe_get() que detecta NA lógico, vectores atómicos y listas con valores NA, extrayendo métricas de forma segura sin crashear.
  • 🔧 API consistente: parámetro diagnostico_dharma renombrado a diagnosticos en analizar_glmm() para consistencia con todas las funciones analizar_*.
  • 📋 DESCRIPTION: limpiado para compatibilidad con R CMD check (removidos caracteres multibyte en campos DCF, comment field de Authors@R, y añadido car a Imports).

Instalación

# Desde GitHub
devtools::install_github("PALP31/easyModels")

Uso básico

library(easyModels)

# Ajustar modelo mixto (devuelve objeto easy_model)
modelo <- analizar_lmm(datos, biomasa ~ tratamiento, aleatorios = "(1 | bloque)")

# S3 generics
print(modelo)    # Caja estilizada con cli
summary(modelo)  # Resumen + tabla ANOVA Tipo III
plot(modelo)     # Diagnósticos R²/ICC/DHARMa (sin crash en modelos singulares)

# Post-hoc con letras Tukey
medias <- obtener_posthoc(modelo, predictor = "tratamiento", letras = TRUE)