Skip to content

easyModels v0.2.0 — Arquitectura S3 Unificada

Choose a tag to compare

@PALP31 PALP31 released this 10 Jul 02:09
· 20 commits to main since this release

🚀 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)