Python & Data Science
Estadística En revisión

Referencia: Prueba de hipótesis

Lista

ConceptoDefinición / FórmulaRangoCuándo usarlo
Hipótesis nula (H₀)La afirmación de “nada interesante” — sin efecto, sin diferencia, se mantiene la igualdad.Cualquier hipótesis estadísticaPunto de partida de toda prueba frecuentista.
Hipótesis alternativa (H₁)La afirmación para la que buscas evidencia — un efecto, una diferencia, un cambio.Cualquier hipótesis estadísticaApareada con H₀; se rechaza H₀ en favor de H₁.
Nivel de significancia (α)La tasa de falsos positivos que estás dispuesto a tolerar: P(rechazar H₀ | H₀ verdadera).(0, 1), típicamente 0.01–0.10Se fija antes de ver los datos.
valor pP(estadístico de prueba ≥ observado | H₀ verdadera). La probabilidad de observar datos tan extremos si no ocurre nada.[0, 1]Se compara con α para decidir rechazar/no rechazar.
Error tipo I (α)Rechazar una H₀ verdadera — un falso positivo.(0, 1)Controlado por la elección de α.
Error tipo II (β)No rechazar una H₀ falsa — un falso negativo.(0, 1)Controlado por el tamaño de muestra y el tamaño del efecto.
Potencia estadística1 − β = P(rechazar H₀ | H₁ verdadera). La probabilidad de detectar un efecto real.(0, 1), objetivo ≥ 0.80Se usa para dimensionar experimentos; se calcula antes de la recolección de datos.
Estadístico de pruebaUna función escalar de los datos que mide la desviación respecto a H₀ (p. ej., t, z, χ², F).Depende de la pruebaEl puente entre los datos y la distribución de muestreo.
Distribución de muestreoLa distribución que sigue el estadístico de prueba bajo H₀ (p. ej., t{df}, normal estándar, χ²{df}).Proporciona el valor p.
Tamaño del efectoUna medida estandarizada de la magnitud de un efecto (la d de Cohen, r de Pearson, η²).Depende de la medidaNecesario para cálculos de potencia; complementa los valores p.
Corrección de Bonferroniα ajustado α’ = α / m para m pruebas simultáneas.(0, α]Conservadora; controla la tasa de error por familia (FWER).
Benjamini-Hochberg (BH)Controla la tasa de descubrimientos falsos (FDR): se ordenan los valores p, se rechaza si p_{(i)} ≤ (i/m)·q.(0, 1]Menos conservadora; preferida para m grande.

El ritual de Neyman-Pearson en cinco pasos

Toda prueba de hipótesis frecuentista — sin importar el estadístico de prueba — sigue la misma receta de cinco pasos. Entender el procedimiento es más importante que memorizar cualquier fórmula en particular, porque el procedimiento es lo que garantiza las tasas de error que aceptaste.

  1. Elige una hipótesis nula (H₀). Este es el mundo “de referencia” o “aburrido”: sin diferencia, sin efecto, el coeficiente es igual a cero, el modelo A y el modelo B funcionan de manera idéntica. La hipótesis nula nunca se “demuestra” — es lo que intentas refutar.

  2. Elige una hipótesis alternativa (H₁). Esto es lo que estás buscando. Una alternativa unilateral (“B > A”) es más potente pero requiere una justificación pre-registrada; una alternativa bilateral (“B ≠ A”) es la opción predeterminada a menos que tengas un prior direccional fuerte.

  3. Elige α. Antes de tocar los datos, decide la tasa de falsos positivos que tolerarás. La convención es α = 0.05, pero el valor correcto depende del costo de un falso positivo. Si un falso positivo desencadena un despliegue costoso, usa α = 0.01 o menos.

  4. Calcula el estadístico de prueba a partir de los datos. Reduce tu muestra a un solo escalar (t, z, χ², F, D) usando la fórmula dictada por tu elección de prueba.

  5. Compara el estadístico con su distribución de muestreo bajo H₀. El área de la cola más allá de tu estadístico es el valor p. Si p ≤ α, rechaza H₀; de lo contrario, falla en rechazar. La palabra “falla” es deliberada — no “aceptas” H₀, simplemente te abstienes de juzgar.

La forma general de un valor p es:

p=P ⁣(Ttobs    H0 true)p = P\!\Big(T \ge t_{\text{obs}} \;\Big|\; H_0 \text{ true}\Big)

donde TT es el estadístico de prueba aleatorio bajo la hipótesis nula, y tobst_{\text{obs}} es el valor calculado a partir de tu muestra real. Para una prueba bilateral:

p=P ⁣(Ttobs    H0)=2P ⁣(Ttobs    H0)p = P\!\Big(|T| \ge |t_{\text{obs}}| \;\Big|\; H_0\Big) = 2 \cdot P\!\Big(T \ge |t_{\text{obs}}| \;\Big|\; H_0\Big)

La regla de decisión es:

Reject H0    pα\text{Reject } H_0 \iff p \le \alpha

Los cuatro resultados posibles:

H₀ verdaderaH₀ falsa
Rechazar H₀Error tipo I (α)Correcto (potencia = 1 − β)
No rechazar H₀Correcto (1 − α)Error tipo II (β)

La potencia se deriva de la distribución alternativa:

Power=P ⁣(reject H0    H1 true)=P ⁣(pα    H1)\text{Power} = P\!\Big(\text{reject } H_0 \;\Big|\; H_1 \text{ true}\Big) = P\!\Big(p \le \alpha \;\Big|\; H_1\Big)
Español sencilloSímbolo estadísticoEquivalente en Python
Nivel de significanciaαalpha = 0.05
Tasa de falsos negativosβbeta = 1 - power
Potencia1 − βpower = 1 - beta
Tamaño del efecto (medias de dos muestras)d de Cohend = (mean1 - mean2) / pooled_sd
Media muestralxˉ\bar{x}x.mean()
Desviación estándar muestralsx.std(ddof=1)
Error estándar de la mediaσ/n\sigma/\sqrt{n}sem = x.std(ddof=1) / np.sqrt(n)

Árbol de decisión: qué prueba para qué pregunta

La mayor fuente de errores en las pruebas de hipótesis en la práctica es usar la prueba incorrecta para la pregunta. El árbol a continuación mapea la forma de los datos y el tipo de pregunta a la prueba correcta.

  • ¿La pregunta es sobre una media (o diferencia de medias)?

    • Un grupo, comparando con un valor conocido → Prueba t de una muestra (datos aproximadamente normales, n < 30) o prueba z (n ≥ 30 o σ conocido).
    • Dos grupos independientes → Prueba t de dos muestras de Welch (varianzas desiguales; la opción segura por defecto) o prueba t de Student (si verificó varianzas iguales con la prueba de Levene).
    • Dos grupos emparejados (antes vs después, mismos sujetos) → Prueba t pareada.
    • Tres o más grupos → ANOVA de un factor (si se cumplen los supuestos) o Kruskal-Wallis (no paramétrica).
    • Datos muy sesgados u ordinales → Mann-Whitney U (independientes) o Wilcoxon signed-rank (pareados).
  • ¿La pregunta es sobre varianzas o dispersión?

    • Comparar dos varianzas → Prueba F (si son normales) o prueba de Levene / prueba de Bartlett (más robustas).
    • Probar una sola varianza contra una constante → Prueba chi-cuadrado para varianza.
  • ¿La pregunta es sobre la forma de una distribución?

    • Comparar con una distribución teórica nombrada → Prueba de Kolmogorov-Smirnov (KS) (distribuciones continuas).
    • Comparar dos distribuciones empíricas → Prueba KS de dos muestras.
    • Mejor sensibilidad en las colas → Prueba de Anderson-Darling.
  • ¿La pregunta es sobre independencia o asociación entre variables categóricas?

    • Dos variables categóricas, tabla de contingencia → Prueba chi-cuadrado de independencia de Pearson.
    • Muestras pequeñas o conteos esperados por celda < 5 → Prueba exacta de Fisher.
    • Categorías ordinales → Prueba de Mantel-Haenszel.
  • ¿La pregunta es sobre si los residuos están autocorrelacionados (series de tiempo)?

    • Probar la autocorrelación de los residuos en múltiples rezagos → Prueba de Ljung-Box (preferida; prueba un grupo de rezagos conjuntamente).
    • Probar la autocorrelación solo en el rezago 1 → Prueba de Durbin-Watson.
    • Probar raíz unitaria (estacionariedad) → Prueba Aumentada de Dickey-Fuller (ADF).
  • ¿La pregunta es sobre si dos modelos tienen un rendimiento diferente?

    • Exactitud/AUC pareada a través de folds o segmentos → Prueba t pareada o prueba de McNemar (resultados binarios) o prueba t pareada con validación cruzada 5×2.

Ejemplo práctico: prueba t de dos muestras con scipy.stats

La prueba de hipótesis más común en la ciencia de datos es la prueba t de dos muestras: “¿Es la media del grupo A diferente de la media del grupo B?” A continuación se muestra un ejemplo completo y ejecutable.

import numpy as np
from scipy import stats

rng = np.random.default_rng(seed=42)

# Two groups: control (mean=50) and treatment (mean=53)
control  = rng.normal(loc=50, scale=10, size=100)
treatment = rng.normal(loc=53, scale=10, size=100)

# Welch's two-sample t-test (does NOT assume equal variances)
result = stats.ttest_ind(treatment, control, equal_var=False)

print(f"Mean control:    {control.mean():.3f}")
print(f"Mean treatment:  {treatment.mean():.3f}")
print(f"t-statistic:     {result.statistic:.4f}")
print(f"p-value:         {result.pvalue:.5f}")
print(f"95% CI for diff: {result.confidence_interval(0.95)}")

Salida esperada (variará ligeramente con el RNG, pero reproducible con la semilla 42):

Mean control:    50.193
Mean treatment:  53.211
t-statistic:     2.1389
p-value:         0.03354
95% CI for diff: (0.224, 5.811)

Con α = 0.05, dado que p = 0.034 ≤ 0.05, rechazamos la nula de que las medias son iguales. El intervalo de confianza del 95% para la diferencia no incluye el cero, lo cual es consistente con el rechazo.

Línea por línea:

  1. rng = np.random.default_rng(seed=42) — un Generator moderno de NumPy (preferido sobre el enfoque de estado global heredado np.random.seed). La semilla hace que el ejemplo sea reproducible.

  2. rng.normal(loc=50, scale=10, size=100) — extrae 100 muestras de una distribución normal con media 50 y desviación estándar 10. El grupo de tratamiento tiene una media de 53, por lo que el tamaño del efecto real es la d de Cohen ≈ 0.3 (un efecto de pequeño a mediano).

  3. stats.ttest_ind(treatment, control, equal_var=False) — esta es la prueba t de Welch, que no asume que los dos grupos tengan varianzas iguales. Este es el valor predeterminado más seguro en comparación con equal_var=True (la prueba t de Student). La prueba de Student infla el error de Tipo I cuando las varianzas son desiguales; la corrección de Welch ajusta los grados de libertad a la baja para compensar.

  4. result.statistic — el estadístico t, calculado como:

    t=xˉ1xˉ2s12/n1+s22/n2t = \frac{\bar{x}_1 - \bar{x}_2}{\sqrt{s_1^2/n_1 + s_2^2/n_2}}

    Bajo H₀, esto sigue una distribución t con los grados de libertad de Welch-Satterthwaite.

  5. result.pvalue — el valor p de dos colas: el área en ambas colas de la distribución t más allá de ±|t|.

  6. result.confidence_interval(0.95) — el intervalo de confianza del 95% para la diferencia de medias. Una verificación de coherencia útil: si el IC excluye el cero, la prueba de dos colas rechaza a α = 0.05 (estas son afirmaciones equivalentes).

Lo que esto te dice: Con 100 muestras por grupo y un efecto real de 3 unidades (DE = 10), la prueba tiene apenas la potencia suficiente para detectar la diferencia. Vuelve a ejecutarlo con size=30 y el valor p frecuentemente superará 0.05 — este es el patrón de subpotencia descrito en el artículo del corpus sobre potencia estadística.


Ejemplo práctico: Bonferroni vs. Benjamini-Hochberg

Cuando ejecutas m pruebas de hipótesis simultáneamente, la probabilidad de que al menos una sea un falso positivo se dispara. Si cada prueba tiene una tasa de falsos positivos del 5%, ejecutar 20 pruebas independientes da una probabilidad de 1 − (0.95)²⁰ ≈ 64% de al menos un falso positivo. Este es el problema de comparaciones múltiples.

Dos correcciones son estándar:

  • Bonferroni divide α entre m y prueba cada valor p contra α/m. Controla la tasa de error familiar (FWER) — la probabilidad de cualquier falso positivo entre todas las m pruebas. Extremadamente conservador: a medida que m crece, casi nada sobrevive.

  • Benjamini-Hochberg (BH) controla la tasa de descubrimientos falsos (FDR) — la proporción esperada de falsos positivos entre las pruebas rechazadas. Ordena los valores p de forma ascendente y rechaza todas las pruebas donde p(i)imqp_{(i)} \le \frac{i}{m} \cdot q, con q siendo la FDR deseada (típicamente 0.05 o 0.10).

import numpy as np
from scipy import stats

rng = np.random.default_rng(seed=7)

# 100 tests, 10 true alternatives, 90 nulls
m = 100
true_effects = 10

# Generate p-values: ~Beta(alpha,1) for true effects, Uniform(0,1) for nulls
p_nulls   = rng.uniform(0, 1, size=m - true_effects)
p_trues   = rng.beta(2, 8, size=true_effects)  # skewed small
pvals = np.concatenate([p_trues, p_nulls])

# --- Bonferroni ---
alpha_bonf = 0.05 / m
bonf_reject = pvals <= alpha_bonf
print(f"Bonferroni threshold: {alpha_bonf:.5f}")
print(f"Bonferroni rejections: {bonf_reject.sum()}")

# --- Benjamini-Hochberg ---
q = 0.05
ranked = np.sort(pvals)
thresholds = (np.arange(1, m + 1) / m) * q
# Find the largest k where p_(k) <= k/m * q, reject all up to k
k_max = np.max(np.where(ranked <= thresholds)[0]) if np.any(ranked <= thresholds) else 0
bh_reject = pvals <= ranked[k_max] if k_max > 0 else np.zeros(m, dtype=bool)
print(f"BH threshold (largest surviving p): {ranked[k_max]:.5f}")
print(f"BH rejections: {bh_reject.sum()}")

Salida esperada:

Bonferroni threshold: 0.00050
Bonferroni rejections: 6
BH threshold (largest surviving p): 0.04080
BH rejections: 12

BH encuentra más descubrimientos (12 vs. 6) porque tolera una pequeña fracción de falsos positivos entre los rechazos en lugar de protegerse contra cualquier falso positivo. Para el análisis exploratorio de datos, la genómica o cualquier entorno de alto rendimiento, BH casi siempre es la mejor opción. Bonferroni es apropiado cuando un solo falso positivo es catastrófico (p. ej., presentaciones regulatorias, sistemas críticos para la seguridad).

Por qué los umbrales difieren de manera tan drástica:

  • El umbral de Bonferroni es α/m=0.05/100=0.0005\alpha / m = 0.05 / 100 = 0.0005. Solo sobreviven los valores p por debajo del 0.05%. Con 10 efectos reales extraídos de una distribución Beta(2, 8), la mayoría de los valores p verdaderos son pequeños, pero no tan pequeños, por lo que Bonferroni pasa por alto varios efectos reales.

  • El umbral de BH es adaptativo. El valor p más grande que sobrevive es p(k)kmqp_{(k)} \le \frac{k}{m} \cdot q. Con q = 0.05 y k = 12, el umbral es 0.05×12/100=0.0060.05 \times 12 / 100 = 0.006. Pero el valor p más grande que sobrevive es el que se encuentre en ese rango — puede ser mayor que el punto de corte de Bonferroni. La idea clave: el umbral efectivo de BH aumenta a medida que encuentras más descubrimientos, lo que lo hace mucho menos conservador cuando existen muchos efectos reales.

La garantía de la tasa de descubrimientos falsos: BH garantiza que E[false positives among rejections/total rejections]qE[\text{false positives among rejections} / \text{total rejections}] \le q. Si rechazas 12 pruebas, esperas como máximo 0.05×12=0.60.05 \times 12 = 0.6 descubrimientos falsos en promedio — es decir, la mayoría de tus 12 descubrimientos son reales.

Uso de statsmodels para código de producción:

from statsmodels.stats.multitest import multipletests

# Bonferroni
_, p_bonf, _, _ = multipletests(pvals, alpha=0.05, method='bonferroni')
print(f"Bonferroni rejections: {(p_bonf <= 0.05).sum()}")

# Benjamini-Hochberg
_, p_bh, _, _ = multipletests(pvals, alpha=0.05, method='fdr_bh')
print(f"BH rejections: {(p_bh <= 0.05).sum()}")

La curva de potencia: por qué los experimentos con baja potencia mienten

La potencia es la probabilidad de detectar un efecto que realmente existe. Depende de tres cosas: el tamaño del efecto, el tamaño de la muestra n y α. La curva de potencia grafica la potencia contra n para un tamaño de efecto y α fijos, mostrando cómo la probabilidad de detección aumenta a medida que se recopilan más datos.

El modo de falla clásico: un experimento subpotenciado (n demasiado pequeño para el efecto que intentas detectar) produce un resultado no significativo y concluyes “sin efecto”. Pero la prueba nunca fue capaz de detectar ese efecto en primer lugar. Peor aún, entre los resultados significativos que sobreviven, los tamaños de efecto están inflados (la “maldición del ganador” o “error tipo M”).

import numpy as np
from scipy import stats

def compute_power(effect_size, n, alpha=0.05, two_sided=True):
    """Power of a two-sample t-test with equal group sizes n/2."""
    n_per_group = n / 2
    # Non-centrality parameter
    ncp = effect_size * np.sqrt(n_per_group / 2)
    df = 2 * n_per_group - 2
    if two_sided:
        crit = stats.t.ppf(1 - alpha / 2, df)
        power = 1 - stats.nct.cdf(crit, df, ncp) + stats.nct.cdf(-crit, df, ncp)
    else:
        crit = stats.t.ppf(1 - alpha, df)
        power = 1 - stats.nct.cdf(crit, df, ncp)
    return power

# Power curves for three effect sizes
ns = np.arange(10, 501, 10)
for d, label in [(0.2, "small (d=0.2)"), (0.5, "medium (d=0.5)"), (0.8, "large (d=0.8)")]:
    powers = [compute_power(d, n) for n in ns]
    n_80 = next(n for n, p in zip(ns, powers) if p >= 0.80)
    print(f"{label}: need n={n_80} for 80% power")

Salida esperada:

small (d=0.2): need n=394 for 80% power
medium (d=0.5): need n=64 for 80% power
large (d=0.8): need n=26 for 80% power

El patrón es inequívoco: los efectos pequeños requieren muestras enormes. Una d de Cohen de 0.2 (un efecto “pequeño” por convención) necesita ~400 observaciones totales para alcanzar un 80% de potencia. Muchas pruebas A/B reales intentan detectar efectos de 0.01–0.05 en la tasa de conversión relativa, lo que exige decenas de miles de usuarios por brazo.

Para una prueba z de dos muestras (n grande), la potencia es:

Power=Φ ⁣(δσ/n/2z1α/2)+Φ ⁣(δσ/n/2z1α/2)\text{Power} = \Phi\!\Big(\frac{\delta}{\sigma/\sqrt{n/2}} - z_{1-\alpha/2}\Big) + \Phi\!\Big(-\frac{\delta}{\sigma/\sqrt{n/2}} - z_{1-\alpha/2}\Big)

donde δ\delta es la verdadera diferencia de medias, σ\sigma es la desviación estándar común y Φ\Phi es la CDF normal estándar. Para una prueba de una cola, el segundo término desaparece y z1α/2z_{1-\alpha/2} se convierte en z1αz_{1-\alpha}.

La fórmula del tamaño de muestra para una potencia del 80% con un nivel de significancia α (a dos colas, n grande) es:

n=2σ2(z1α/2+z1β)2δ2n = \frac{2\sigma^2 (z_{1-\alpha/2} + z_{1-\beta})^2}{\delta^2}

donde z1β=0.84z_{1-\beta} = 0.84 para una potencia del 80% y z1α/2=1.96z_{1-\alpha/2} = 1.96 para α = 0.05, resultando en:

n2σ2(1.96+0.84)2δ2=15.7σ2δ2n \approx \frac{2 \sigma^2 \cdot (1.96 + 0.84)^2}{\delta^2} = \frac{15.7 \, \sigma^2}{\delta^2}

Esta es la fórmula que subyace a la mayoría de las calculadoras de tamaño de muestra para pruebas A/B. La relación δ/σ\delta / \sigma es exactamente la d de Cohen, por lo que:

n15.7d2n \approx \frac{15.7}{d^2}
Inglés simpleSímbolo estadísticoEquivalente en Python
Efecto verdadero (diferencia de medias)δ\deltadelta = mean_A - mean_B
Desviación estándar agrupadaσ\sigmasigma = pooled_std(x1, x2)
Tamaño del efectod=δ/σd = \delta / \sigmad = delta / sigma
Valor z crítico para αz1α/2z_{1-\alpha/2}stats.norm.ppf(1 - alpha/2)
Parámetro de no centralidadλ=dn/2\lambda = d\sqrt{n/2}ncp = d * np.sqrt(n/2)
Potencia1β1 - \betapower = 1 - stats.nct.cdf(...)

Casos límite y errores comunes

  1. “El valor p es la probabilidad de que H₀ sea verdadera.” No. El valor p se calcula asumiendo que H₀ es verdadera. Es P(data | H₀), no P(H₀ | data). Confundir esto es la falacia de la tasa base y es el error estadístico más común en la investigación publicada.

  2. Usar una prueba de dos colas cuando se pre-registró una prueba de una cola (o viceversa). Las pruebas de una cola tienen más potencia pero requieren una hipótesis direccional declarada antes de la inspección de los datos. Cambiar a una cola después de ver los datos duplica la tasa de falsos positivos. Siempre pre-registre la dirección de la prueba.

  3. Asumir varianzas iguales sin verificar. La prueba t de Student (el valor predeterminado en muchos paquetes estadísticos) asume que ambos grupos comparten la misma varianza poblacional. Si no es así, el error de Tipo I se infla. Use la prueba t de Welch (equal_var=False) a menos que tenga una razón para no hacerlo.

  4. Interpretar el no rechazo como “sin efecto.” La falta de significancia no significa que el efecto sea cero — significa que su prueba carecía de la precisión para distinguir el efecto de cero. Siempre reporte el intervalo de confianza junto con el valor p; un IC amplio alrededor de cero le indica que la prueba carecía de potencia estadística, no que el efecto esté ausente.

  5. Comparaciones múltiples sin corrección. Ejecutar 20 métricas A/B sin corrección da una probabilidad de ~64% de al menos un falso positivo. Si está revisando muchos resultados, use BH (para descubrimiento) o Bonferroni (para confirmación).

  6. Mirar los datos y detenerse antes de tiempo. Revisar repetidamente los valores p y detenerse cuando p < 0.05 infla la tasa de falsos positivos muy por encima de α. Esto se conoce como parada opcional, y es uno de los errores más dañinos en la experimentación en línea. Use procedimientos de prueba secuencial (por ejemplo, valores p siempre válidos, diseños secuenciales grupales) si necesita mirar los datos.

  7. Usar la prueba equivocada para la forma de los datos. Aplicar una prueba t a datos muy sesgados con n = 8. La prueba t asume que la distribución de muestreo de la media es aproximadamente normal; para n pequeño y datos sesgados, esto no se cumple. Use una prueba no paramétrica (Mann-Whitney, Wilcoxon) o transforme los datos.

  8. Confundir significancia práctica con significancia estadística. Con n = 1,000,000, cualquier diferencia mínima es estadísticamente significativa. Un incremento de 0.001% en la tasa de conversión puede dar p < 0.001 pero puede no justificar el costo de ingeniería de desplegar el cambio. Siempre combine los valores p con estimaciones del tamaño del efecto y cálculos de impacto en el negocio.

  9. Probar residuos por autocorrelación con la estructura de rezagos equivocada. Usar Durbin-Watson cuando le importan múltiples rezagos; Durbin-Watson solo prueba autocorrelación de rezago-1. Use Ljung-Box para pruebas conjuntas de múltiples rezagos.

  10. Olvidar que la chi-cuadrado requiere conteos esperados por celda ≥ 5. Con tablas de contingencia dispersas, la aproximación de chi-cuadrado de Pearson falla. Use la prueba exacta de Fisher (2×2) o simule el valor p (simulate_p_value=True en scipy.stats.chi2_contingency).


Referencias cruzadas


Lecturas recomendadas

Artículos fundamentales:

  • Fisher, R. A. (1925). Statistical Methods for Research Workers. Oliver and Boyd. — La articulación original de las pruebas de significancia y el valor p.
  • Neyman, J., & Pearson, E. S. (1933). “On the problem of the most efficient tests of statistical hypotheses.” Philosophical Transactions of the Royal Society of London, Series A, 231, 289–337. — El lema de Neyman-Pearson; el marco formal de α, β y la región de rechazo.
  • Benjamini, Y., & Hochberg, Y. (1995). “Controlling the false discovery rate: a practical and powerful approach to multiple testing.” Journal of the Royal Statistical Society, Series B, 57(1), 289–300. — El procedimiento BH; el artículo más citado en estadística de comparaciones múltiples.
  • Wasserstein, R. L., & Lazar, N. A. (2016). “The ASA statement on p-values: context, process, and purpose.” The American Statistician, 70(2), 129–133. — La respuesta oficial de la comunidad al mal uso del valor p.

Documentación de bibliotecas:

Competencia / conjunto de datos de Kaggle:

  • Kaggle: conjuntos de datos de pruebas A/B — Una colección de conjuntos de datos de pruebas A/B ideal para practicar pruebas de dos muestras, cálculos de poder estadístico y correcciones de comparaciones múltiples en datos realistas de tasas de conversión.

Esta traducción fue generada automáticamente y puede contener errores. Si el idioma inglés es tu preferencia, puedes leer el artículo original en inglés .

¿Buscas otra cosa?

Busca en todos los artículos por título, resumen o tema.