Rigor · Tharp 1.2.0

Cómo validamos Tharp.

Tharp calcula todo en tu navegador con un motor estadístico propio. Para que sus resultados sirvan en una tesis o un artículo, cada análisis se compara automáticamente con los paquetes de R que usa la comunidad científica antes de publicar cada versión. Si un solo número deja de coincidir, la versión no se publica.

30grupos de análisis comparados con R
46 633valores comparados: estadísticos, p, IC, tamaños del efecto, cargas, errores típicos…
100 %coinciden con R (46 633 de 46 633)
10⁻⁶tolerancia relativa: al menos seis cifras iguales, salvo las excepciones justificadas

Cinco comprobaciones antes de cada versión

  1. Batería contra R. Para cada grupo de análisis, un script de R simula varios conjuntos de datos con semilla fija (muestras de 4 a 600 casos, empates, asimetría, grupos desiguales, hipótesis unilaterales) y calcula los resultados con los paquetes de referencia. Otro script ejecuta las mismas funciones de Tharp y compara cada valor.
  2. Comprobación cruzada con Python (SciPy, statsmodels y pingouin), una segunda referencia independiente de R.
  3. Resultados de referencia de la aplicación completa. Se ejecutan los análisis desde la interfaz, como lo haría una persona, en 18 escenarios (datos de ejemplo, archivos de SPSS, formato largo, muestras pequeñas, jueces, medidas repetidas…) y se compara el texto completo: tablas, redacción APA y registro de decisiones. Cualquier cambio, aunque sea de un decimal, detiene la publicación. La prueba se repite contra la web ya publicada.
  4. El script de R de cada análisis. En 39 escenarios se ejecuta el script de R que genera Tharp y se comprueba que cada número que muestra Tharp aparece en la salida de R con el mismo redondeo.
  5. Lectura de datos. R lee los mismos casos, valores perdidos y categorías que Tharp. La importación de SPSS se compara con pyreadstat, incluidos archivos reales de SPSS 23 y 25, y la de JASP con los 1052 archivos de ejemplo oficiales.

Criterio de coincidencia

Un valor de Tharp (a) coincide con el de R (b) si |a − b| ≤ 10⁻⁶ · máx(1, |b|): coinciden al menos seis cifras significativas, muchas más de las dos o tres que se publican. Solo se admite una tolerancia mayor cuando R o Tharp resuelven el problema con un algoritmo iterativo o numérico cuya precisión no llega a 10⁻⁶:

AnálisisToleranciaMotivo
Modelos mixtos (lmerTest)10⁻⁶ a 10⁻³El optimizador de lme4 se detiene antes; los gl de Satterthwaite se obtienen por derivación numérica
AFC (lavaan)10⁻⁵ a 10⁻⁴Optimización iterativa en ambos programas
Prueba de Dunnett2 · 10⁻³La probabilidad multivariante de multcomp se calcula por integración aleatoria (Genz)
Tamhane T210⁻⁴Integración numérica
ω de McDonald10⁻⁵Ejes principales iterados
AFE con MinRes o ML, o con rotaciones iterativas (oblimin, promax, quartimax, equamax, geomin)10⁻⁴psych y GPArotation se detienen con una tolerancia de 10⁻⁵ (Tharp usa la misma, como JASP); el ACP y los ejes principales sin rotar o con varimax se exigen a 10⁻⁶

Resultados por análisis

Tabla 1Valores de Tharp que coinciden con R, por grupo de análisis
AnálisisReferencia en RCoinciden
AFE (ejes principales, MinRes, ML) y ACP con 7 rotaciones, KMO, Bartlett, autovalores y ajuste por ML, en 12 conjuntos de datos (psych, GPArotation)GPArotation, psych2 277 / 2 277
ANOVA mixta: F, η², Mauchly, Greenhouse-Geisser, Huynh-Feldt y comparaciones (afex, emmeans)afex, emmeans104 / 104
Acuerdo entre jueces: CCI (6 formas), kappa de Cohen (ponderada) y kappa de Fleissirr, psych348 / 348
Análisis factorial confirmatorio por máxima verosimilitud: ajuste, cargas, EE, solución estandarizada (lavaan)lavaan1 577 / 1 577
Correlaciones de Pearson, Spearman y Kendall (p exactas), IC y correlación parcialstats (R base)226 / 226
Curva ROC: AUC con EE e IC de DeLong y punto de corte de Youden (pROC)pROC4 382 / 4 382
Densidad de los gráficos de violín y nube de lluvia: ancho de banda de Silverman y densidad gaussiana (bw.nrd0)stats (R base)6 948 / 6 948
Descriptivos (asimetría y curtosis como SPSS), Shapiro-Wilk, Lilliefors, Levene, ANOVA, Welch, Kruskal-Wallis y Dunncar, nortest, PMCMRplus, psych654 / 654
Equivalencia (TOST): t independiente (Student y Welch), relacionada y una muestra, límites brutos y en d, IC del 90 % (TOSTER)TOSTER432 / 432
Fiabilidad y acuerdo: IC de Feldt del α, W de Kendall, α de Krippendorff (intervalo, nominal, ordinal) y Bland-Altmanirr, psych126 / 126
Invarianza de medida (AFC multigrupo con medias): configural, métrica, escalar y estricta; ajuste, cargas, interceptos, medias latentes y EE (lavaan)lavaan7 192 / 7 192
MANOVA: Pillai, Wilks, Hotelling-Lawley y Roy con sus F, y M de Boxcar203 / 203
MLG factorial tipo III con covariables, medias marginales estimadas y comparaciones de Tukey (car, emmeans)car, emmeans117 / 117
MR de un factor (Mauchly, Greenhouse-Geisser), Friedman, ANCOVA con medias ajustadas, McNemar, Q de Cochran, α y ω (afex, car, emmeans, psych)afex, car, DescTools, emmeans, psych492 / 492
Medidas ordinales (γ, τ-b, τ-c, d de Somers) con IC, Fisher-Freeman-Halton y Mantel-Haenszel con Breslow-DayDescTools576 / 576
Medidas repetidas con dos factores intrasujeto y factor entre sujetos (afex, emmeans)afex, emmeans83 / 83
Metaanálisis: tamaños del efecto (SMD, MD, OR, COR), REML, DL y efectos fijos, Q, I², H², τ² con IC por perfil de Q, predicción y Egger (metafor)metafor2 071 / 2 071
Modelos lineales mixtos REML con gl de Satterthwaite y R² de Nakagawa (lmerTest, performance)lmerTest, performance175 / 175
No paramétricas: post hoc de Friedman, signos, mediana, KS de dos muestras, Jonckheere-Terpstra y rachasclinfun, DescTools, PMCMRplus792 / 792
PROCESS: moderación (1) con pendientes simples y Johnson-Neyman, mediación (4), en serie (6) y mediación moderada (7, 14)stats (R base)592 / 592
Post hoc (Tukey, Games-Howell, Bonferroni, Holm, Šidák, Scheffé, Tamhane, Dunnett), contrastes y Brown-ForsytheDescTools, emmeans, multcomp, onewaytests, PMCMRplus149 / 149
Post hoc SNK y Duncan (PMCMRplus), REGWQ (ptukey con los niveles de Ryan-Einot-Gabriel-Welsch), GT2 de Hochberg y Gabriel (módulo máximo estudentizado)PMCMRplus2 208 / 2 208
Potencia y tamaño muestral: t, ANOVA, regresión, χ², correlación y proporciones (pwr)pwr588 / 588
Pruebas t (independiente, Welch, relacionada, una muestra), unilaterales, d de Cohen con IC, Mann-Whitney y Wilcoxon (p exactas)stats (R base)600 / 600
Regresión de Poisson y binomial negativa: coeficientes, IRR, desvianza, AIC, χ² de Pearson, θ y offset (glm, MASS::glm.nb)MASS740 / 740
Regresión lineal (EE clásicos y HC3, Breusch-Pagan, Durbin-Watson, VIF, Cook) y logística binaria con Hosmer-Lemeshow (lm, sandwich, lmtest, car, glm, performance)car, lmtest, performance, sandwich897 / 897
Regresión logística multinomial (nnet) y ordinal de odds proporcionales (MASS::polr)MASS, nnet132 / 132
Supervivencia: Kaplan-Meier (Greenwood, IC log, mediana), log-rank y Cox con empates de Efron (survival)survival10 347 / 10 347
Tablas de contingencia: χ², G², Yates, Fisher, OR/RR, residuos, binomial y bondad de ajusteDescTools600 / 600
Valores perdidos: medias y covarianzas por EM (norm::em.norm) y prueba MCAR de Little (naniar::mcar_test), con pérdida MCAR y MARnaniar, norm1 005 / 1 005
Total (30 grupos)R 4.5.3 (2026-03-11)46 633 / 46 633

Diferencias estudiadas

Cuando un resultado no coincide, se reproduce el cálculo paso a paso hasta saber por qué. En algunos casos el error estaba en el paquete de R y Tharp usa la fórmula correcta; la batería compara entonces con la fórmula calculada directamente en R.

Entorno de referencia: R 4.5.3 (2026-03-11). Página generada a partir del informe técnico de validación de Tharp 1.2.0.