the-stats-duck es una extensión de código abierto (licencia MIT) para DuckDB que incorpora un motor estadístico completo ejecutable desde SQL: distribuciones, contrastes, regresión, bootstrap y gráficos, sin salir del lenguaje de consultas. Funciona allí donde lo haga DuckDB, incluido el navegador. La versión 0.6.0, apodada i-m-not-dead, llega con novedades relevantes.
Entre las funciones nuevas destaca meta(), una table function que genera un perfil columna a columna y puede componerse con CTEs, joins y filtros. Se incorporan también la regresión lineal por mínimos cuadrados con sintaxis de fórmulas estilo R (lm y lm_summary, con R², R² ajustado, F y sigma), bootstrap() con semilla reproducible para intervalos por remuestreo, y un mini-gramática de gráficos (ggsql) que compila a Vega-Lite y suma marcas de violín, facetas 2D y el modificador STAT smooth (LOESS) por capa.
El catálogo de distribuciones crece con binomial negativa, hipergeométrica, Weibull, log-normal y Poisson, cada una con sus funciones d/p/q estilo R, más un conjunto completo de muestreadores aleatorios (rnorm, rt, rchisq, rf, rgamma, rbeta, rexp, rweibull, rlnorm, rpois), todos verificados contra R con seis decimales.
La otra gran mejora es de rendimiento: read_stat, el lector de archivos SAS/SPSS/Stata, dejó de tener un comportamiento cuadrático accidental y ahora parsea cada fichero una sola vez. El resultado es 52 veces más rápido en un XPT de 200 000 filas y 7 MB (de 67 s a 1,3 s), 36 veces más rápido en el fichero piloto qs.xpt de CDISC (de 39 s a 1,1 s) y pasa de unos 70 minutos a 15 segundos al leer 1,6 millones de filas.
La extensión es el motor estadístico sobre el que se apoyan las herramientas Bedevere y KoliLang de KoliStat, y puede instalarse en cualquier instancia de DuckDB.
