Saltar al contenido principal

Metodología y precisión

Todos los algoritmos que usa este sitio, por qué se eligieron y la evidencia de que son correctos. Si vas a meter en un artículo un número salido de una herramienta web gratuita, tienes derecho a saber exactamente de dónde viene.

Última revisión: 9 de agosto de 2026 · 83 pruebas automatizadas frente a SciPy 1.17

La versión corta

  • Las cinco distribuciones están implementadas a partir de métodos numéricos publicados, sin ninguna biblioteca estadística de terceros.
  • Las probabilidades de cola usan una función de supervivencia dedicada, nunca 1 − CDF.
  • Los resultados están validados frente a SciPy 1.17 con un error relativo por debajo de 1 × 10⁻¹³, mediante 83 pruebas automatizadas repartidas en 5 baterías.
  • Cada casilla de cada tabla de referencia publicada — 508 en total — se comprueba individualmente, no por muestreo.
  • Todo se ejecuta en tu navegador. Ninguna entrada se transmite, se registra ni se almacena jamás.

La fórmula del valor p, contraste a contraste

No existe una única fórmula del valor p. Un valor p es siempre la misma idea — el área de la distribución nula más allá de tu estadístico de contraste — pero el estadístico, y por tanto la fórmula, cambia con el contraste. Estas son las que están implementadas aquí.

ContrasteEstadísticoValor p
t de una muestrat = (x̄ − μ₀) / (s/√n), df = n − 12 · sft,df(|t|)
t de dos muestras (Welch)t = (x̄₁ − x̄₂) / √(s₁²/n₁ + s₂²/n₂), df de Welch–Satterthwaite2 · sft,df(|t|)
t para datos emparejadost = d̄ / (sd/√n) sobre las diferencias dentro de cada par2 · sft,n−1(|t|)
Z de una muestraz = (x̄ − μ₀) / (σ/√n)2 · sfN(|z|)
Z de dos proporcionesz = (p̂₁ − p̂₂) / √(p̄(1−p̄)(1/n₁ + 1/n₂))2 · sfN(|z|)
Chi-cuadrado, independenciaχ² = Σ (O − E)² / E, df = (r−1)(c−1)sfχ²,df(χ²) — solo cola derecha
ANOVA de un factorF = MSentre / MSdentro, df = (k−1, N−k)sfF(F) — solo cola derecha
Correlación de Pearsont = r√(df/(1−r²)), df = n − 22 · sft,df(|t|)

La sf de todas las columnas de la derecha es una función de supervivencia evaluada directamente en la cola superior, que es la parte que la mayoría de las implementaciones hacen mal; véase más abajo. Para un contraste unilateral, quita el factor 2 y usa la cola que se corresponda con tu hipótesis.

Por qué ninguna biblioteca estadística

La elección obvia para una herramienta estadística en JavaScript es jStat. No la usamos, por dos razones. Arrastra problemas de exactitud abiertos desde hace tiempo en sus funciones de distribución acumulada gamma y chi-cuadrado, que son precisamente las funciones de las que depende una calculadora de valor p. Y envía unos 40 KB a cada visitante para ofrecer cinco funciones.

Implementar directamente las funciones especiales subyacentes son unas trescientas líneas de análisis numérico bien documentado. Nos da control exacto sobre el comportamiento en la cola, que es lo que más importa, y significa que la calculadora entera son unos pocos kilobytes de JavaScript.

El problema de precisión que define esta herramienta

Esta es la decisión de implementación más importante del sitio, y es la razón de que esta calculadora dé respuestas distintas de varias muy conocidas en la cola lejana.

Una función de distribución acumulada Φ(x) devuelve la probabilidad de un valor igual o inferior a x. Para obtener un valor p de cola superior, el enfoque ingenuo calcula 1 − Φ(x). Eso funciona bien en el centro de la distribución y falla por completo en la cola.

Con z = 9, Φ(9) es aproximadamente 0.999999999999999999999. La coma flotante de doble precisión guarda unos 16 dígitos decimales significativos, así que ese valor se redondea a exactamente 1.0. La resta da 1 − 1 = 0, y la calculadora informa de p = 0, un número que nunca es un valor p válido.

En su lugar, cada distribución de aquí expone una función de supervivencia calculada directamente en la cola superior:

  • Normal: mediante la función de error complementaria erfc, evaluada con un desarrollo de Chebyshev que es exacto en la cola por construcción, nunca como 1 − erf(x).
  • t de Student: aprovechando la simetría, sf(x) = cdf(−x), lo que esquiva la resta por completo.
  • Chi-cuadrado: mediante la función gamma incompleta superior regularizada Q(a, x), calculada con su propia fracción continua y no como 1 − P(a, x).
  • F: mediante la simetría de la función beta incompleta, I_(df₂/(df₁x+df₂))(df₂/2, df₁/2).

El resultado: z = 9 devuelve correctamente 1.13 × 10⁻¹⁹, y la calculadora se mantiene exacta hasta alrededor de 10⁻³⁰⁰, el límite de la propia aritmética de doble precisión.

Algoritmos

FunciónMétodo
log Γ(x)Aproximación de Lanczos, g = 7, n = 9, con reflexión para x < 0.5
erfc(x)Desarrollo de Chebyshev, 24 coeficientes (Numerical Recipes §6.2.2)
P(a, x), Q(a, x)Serie para x < a + 1; fracción continua por el método de Lentz en el resto
I_x(a, b)Fracción continua por el método de Lentz, con la identidad de simetría pasada la moda
Φ⁻¹(p)Aproximación racional de Acklam, refinada con dos iteraciones de Halley
Otros cuantilesBisección sobre la CDF hasta una tolerancia relativa de 1e-14

Todo lo que puede desbordar se calcula en espacio logarítmico. Γ(1000) es aproximadamente 10²⁵⁶⁴ y no puede representarse en absoluto, pero log Γ(1000) ≈ 5905.22 no tiene nada de particular, así que la densidad de la distribución F, que implica un cociente de gammas grandes, se ensambla a partir de logaritmos y se exponencia una sola vez al final. Por eso la calculadora maneja df de cientos sin devolver NaN, cosa que varios competidores sí hacen. Para un ejemplo trabajado de dónde aparece esto en la práctica, mira cómo se comparan estos resultados con GraphPad QuickCalcs.

Validación

Cada cifra de abajo la produce esta calculadora y se compara con SciPy 1.17. El script de referencia está en el repositorio para que cualquiera pueda regenerar los valores, y las comparaciones se ejecutan como una batería de pruebas automatizada: si alguna se desvía, la compilación falla.

FunciónEsta calculadoraSciPy 1.17Error rel.
Φ(1.96)0.97500210485177960.97500210485177951.1e-16
sf(8) normal6.220960574271822e-166.22096057427174e-161.3e-14
t(28).sf(2.14)0.020604580393996490.0206045803939964233.2e-15
t(17.3).sf(2.5)0.01137375008790050.0113737500879005726.4e-15
χ²(10).sf(25)0.00534550548713407650.0053455054871340691.5e-15
χ²(2).sf(100)1.9287498479639188e-221.9287498479639183e-222.4e-16
F(3,16).sf(5.29)0.0100158372449152750.0100158372449152861.0e-15
lgamma(1000)5905.2204232091815905.2204232091810
erfc(6)2.151973671249893e-172.151973671249891e-171.0e-15

Contrastes que parten de datos

La tabla de arriba valida las funciones de distribución. Las calculadoras que toman datos en bruto añaden aritmética por encima de ellas, así que esas se validan aparte frente a SciPy y statsmodels: f_oneway para el ANOVA, chi2_contingency con correction=False para las tablas de contingencia, y proportion_confint(method='wilson') para los intervalos de proporciones.

CantidadEsta calculadoraReferenciaError rel.
ANOVA F, 3 groups26.71897570584369326.7189757058437361.6e-15
ANOVA p4.093470054585312e-64.093470054585261e-61.3e-14
η² (eta squared)0.74803308823529390.7480330882352941.5e-16
χ² on a 2 × 2 table1.02040816326530611.02040816326530610
Cramér's V0.102040816326530610.102040816326530610
One-sample Z, p0.0455002638963581740.04550026389635826.1e-16
Wilson CI lower, 45/3000.114032468711853160.114032468711853141.2e-16
Wilson CI upper, 45/3000.1948176111453290.194817611145329031.4e-16
Cohen's d0.50280378691889990.50280378691889990
Hedges' g0.49603961041326450.49603961041326450

Las tablas publicadas se validan casilla a casilla

Las tablas de referencia de la página de tablas de valores p y los valores críticos de la calculadora de valores críticos se generan a partir de estas mismas funciones en tiempo de compilación, en lugar de transcribirse de un manual. Las tablas estadísticas impresas se copian de otras tablas impresas, y los errores de transcripción que se cuelan tienden a sobrevivir al libro en el que empezaron.

Generarlas solo sirve de algo si el generador acierta en toda la cuadrícula, así que la batería recorre todas y cada una de las 508 casillas publicadas — cada grado de libertad, cada α, cada fila — frente a valores de SciPy almacenados. No una muestra. Si una sola casilla estuviera mal, la compilación fallaría y esta página estaría haciendo una afirmación falsa.

Junto a las comparaciones de referencia, la batería comprueba identidades que tienen que cumplirse si las implementaciones son consistentes entre sí:

  • t(df)² = F(1, df) — coinciden hasta 1 × 10⁻¹¹
  • z² = χ²(1) — coinciden hasta 1 × 10⁻¹²
  • cdf(x) + sf(x) = 1 donde ambas son representables — coinciden hasta 1 × 10⁻¹⁴
  • Φ(Φ⁻¹(p)) = p a lo largo de ocho órdenes de magnitud — coinciden hasta 1 × 10⁻¹¹

Estas importan porque una comparación de referencia solo comprueba los valores que a alguien se le ocurrió probar, mientras que una identidad tiene que cumplirse en todas partes. Un error en la implementación de t o en la de F rompe la primera de inmediato.

Decisiones estadísticas

Varias decisiones de aquí se apartan deliberadamente de lo que hacen otras calculadoras.

Chi-cuadrado y F están fijadas a cola derecha

Los dos estadísticos acumulan desviaciones al cuadrado, así que cualquier apartamiento de la hipótesis nula los empuja hacia arriba y toda la evidencia queda en la cola superior. Un valor p de chi-cuadrado "bilateral", obtenido duplicando, sencillamente no es una cantidad con sentido. En lugar de calcular uno a petición, la calculadora desactiva la opción y explica por qué.

La prueba t de Welch es la predeterminada

La prueba t de Student con varianza combinada asume que ambos grupos comparten una varianza poblacional. Cuando eso falla, produce valores p demasiado pequeños, la dirección que fabrica falsos positivos. La prueba de Welch prescinde del supuesto casi sin coste en potencia cuando las varianzas resultan ser iguales. R la usa por defecto desde hace años, y nosotros también. La versión combinada sigue disponible para los trabajos de clase que la exijan.

Errores estándar combinados y sin combinar en los contrastes de proporciones

El estadístico del contraste de dos proporciones usa el error estándar combinado, que es el correcto bajo una hipótesis nula que asume que las tasas son iguales. El intervalo de confianza usa el error estándar sin combinar, que es el correcto para estimar una diferencia que no se asume nula. Usar uno para las dos cosas es un fallo habitual que produce un intervalo que contradice a su propio valor p.

Los intervalos de proporciones usan Wilson, no Wald

El intervalo que enseña casi cualquier manual para una proporción es el de Wald, p̂ ± z√(p̂(1−p̂)/n). Es sencillo y es poco fiable: su cobertura real cae muy por debajo del nivel nominal cuando p̂ se acerca a 0 o a 1, puede devolver límites por debajo de 0 o por encima de 1, y con 0 éxitos de 20 se colapsa a anchura cero, afirmando certeza perfecta a partir de veinte observaciones.

La calculadora de intervalos de confianza invierte en su lugar el contraste de puntuación, lo que da el intervalo de Wilson. Se queda dentro de [0, 1] por construcción, mantiene su cobertura con proporciones extremas y devuelve aproximadamente del 0% al 16% para 0 de 20. Esta ha sido la recomendación de la literatura estadística durante décadas; la mayoría de las calculadoras siguen enviando Wald porque es el que enseñaron.

A un contraste ómnibus no se le da una estimación del efecto

Un ANOVA de un factor establece que al menos una media de grupo difiere. No puede decir cuál, ni por cuánto, y no existe ningún resumen de "la diferencia" que prescinda de las comparaciones post hoc. Lo mismo se aplica a una tabla de contingencia mayor que 2 × 2.

Así que en los dos casos el panel de estimación no informa de ningún valor y explica por qué, en lugar de imprimir algo citable que no aguantaría el escrutinio. Lo que se muestra en su lugar es el material que necesitas para seguir adelante: las medias y desviaciones estándar por grupo para el ANOVA, y la tabla completa de frecuencias esperadas para el chi-cuadrado.

Los tamaños del efecto y los intervalos se muestran, no se esconden

La declaración de 2016 de la American Statistical Association sobre los valores p es explícita en que un valor p por sí solo es una base insuficiente para una conclusión científica. Todas las calculadoras de aquí que parten de datos informan de un tamaño del efecto y de un intervalo de confianza junto al valor p, con el mismo peso visual, porque el intervalo suele responder a la pregunta que realmente tienes.

Límites conocidos

Dónde se detiene esta herramienta, dicho sin rodeos:

  • Doble precisión. Los valores p por debajo de aproximadamente 10⁻³⁰⁰ se informan como una cota y no como un valor. Es un límite de la aritmética f64, no de los algoritmos.
  • Grados de libertad muy grandes. Por encima de unos 10⁶ la distribución t es numéricamente indistinguible de la normal. Eso es un hecho matemático, no un error, pero la búsqueda del cuantil será más lenta.
  • La prueba exacta de Fisher no está incluida. Cuando las frecuencias esperadas son demasiado pequeñas para la aproximación chi-cuadrado, la calculadora te avisa y nombra la alternativa correcta en lugar de disimular.
  • Sin corrección por comparaciones múltiples. Si estás ejecutando muchos contrastes, tu tasa efectiva de falsos positivos está muy por encima de tu α nominal, y ninguna calculadora de un solo contraste puede arreglarte eso.
  • Sin contrastes no paramétricos. Mann-Whitney, Wilcoxon y Kruskal-Wallis no están implementados. Donde los datos sugieren que hace falta uno, las páginas lo dicen.
  • Sin comparaciones post hoc. Un ANOVA significativo necesita la HSD de Tukey o un equivalente para localizar la diferencia, y eso no está construido aquí.
  • Una prueba t para datos emparejados necesita datos en bruto. El modo de estadísticos resumen cubre solo los contrastes de una y de dos muestras. La desviación estándar de las diferencias dentro de cada par no puede recuperarse a partir de dos SD de grupo: depende de la correlación entre pares, que los estadísticos resumen no registran. Una calculadora que lo ofrezca igualmente está ejecutando un contraste de muestras independientes bajo una etiqueta equivocada.
  • Los tamaños de muestra son aproximaciones normales. La calculadora de tamaño de la muestra usa las fórmulas cerradas estándar, que se vuelven optimistas cuando la n necesaria es pequeña o las tasas son extremas. Señala los casos en que eso muerde.
  • El ANOVA asume varianzas iguales. El ANOVA de Welch no está implementado; la calculadora avisa cuando las desviaciones estándar de los grupos divergen lo bastante como para que importe.

Referencias

  • Press, W. H. et al. Numerical Recipes: The Art of Scientific Computing, 3.ª ed., Cambridge University Press, 2007 — §6.2 gamma incompleta, §6.4 beta incompleta, §6.2.2 erfc.
  • Lanczos, C. "A Precision Approximation of the Gamma Function", SIAM Journal on Numerical Analysis, 1964.
  • Lentz, W. J. "Generating Bessel functions in Mie scattering calculations using continued fractions", Applied Optics, 1976.
  • Acklam, P. J. "An algorithm for computing the inverse normal cumulative distribution function", 2003.
  • Welch, B. L. "The generalization of Student's problem when several different population variances are involved", Biometrika, 1947.
  • Wasserstein, R. L. & Lazar, N. A. "The ASA Statement on p-Values: Context, Process, and Purpose", The American Statistician, 2016.
  • Greenland, S. et al. "Statistical tests, P values, confidence intervals, and power: a guide to misinterpretations", European Journal of Epidemiology, 2016.

¿Has encontrado un error?

Si algún resultado de aquí discrepa de R, SciPy, SAS o Stata en más que el ruido de la coma flotante, eso es un fallo y queremos saberlo. Envía las entradas exactas y ambas salidas: una discrepancia reproducible se corregirá y se registrará en esta página.