4. El p-value en detalle

4.1 Definición del p-value

El p-value (o valor p) es uno de los conceptos más centrales y, a menudo, malinterpretados en la inferencia estadística. Se define como:

La probabilidad de obtener un resultado tan extremo o más extremo que el observado en nuestra muestra, asumiendo que la hipótesis nula (H₀) es verdadera.

En términos más simples, el p-value nos dice cuán probable es que hayamos observado nuestros datos (o datos aún más inusuales) si, de hecho, no hubiera ningún efecto o diferencia en la población (es decir, si H₀ fuera cierta).

  • Un p-value pequeño sugiere que nuestros datos son muy improbables bajo H₀, lo que nos da razones para dudar de H₀.
  • Un p-value grande sugiere que nuestros datos son bastante probables bajo H₀, lo que no nos da razones para rechazar H₀.

4.2 Interpretación práctica

La interpretación del p-value se realiza en comparación con el nivel de significancia (α) que hemos establecido previamente (comúnmente 0.05):

  • Si p-value < α:

    Se considera que el resultado es estadísticamente significativo. Esto significa que la probabilidad de observar nuestros datos (o datos más extremos) si H₀ fuera verdadera es muy baja. Por lo tanto, tenemos suficiente evidencia para rechazar la hipótesis nula a favor de la hipótesis alternativa.

    Ejemplo: Si α = 0.05 y obtenemos un p-value = 0.01, rechazamos H₀. Decimos que hay una diferencia o efecto significativo.

  • Si p-value ≥ α:

    Se considera que el resultado no es estadísticamente significativo. Esto significa que la probabilidad de observar nuestros datos (o datos más extremos) si H₀ fuera verdadera no es tan baja como para rechazarla. Por lo tanto, no tenemos suficiente evidencia para rechazar la hipótesis nula.

    Ejemplo: Si α = 0.05 y obtenemos un p-value = 0.10, no rechazamos H₀. Decimos que no hay evidencia suficiente de una diferencia o efecto significativo.

Es importante recordar que "no rechazar H₀" no significa que H₀ sea verdadera, sino que no hay suficiente evidencia en la muestra para refutarla.

4.3 Críticas y limitaciones del valor p

A pesar de su uso generalizado, el p-value ha sido objeto de numerosas críticas y tiene limitaciones importantes:

  • No indica la magnitud del efecto:

    Un p-value pequeño solo nos dice que un efecto es estadísticamente significativo, pero no nos dice cuán grande o importante es ese efecto en la práctica. Un efecto muy pequeño pero consistente en una muestra grande puede resultar en un p-value muy bajo.

  • No es la probabilidad de que H₀ sea verdadera:

    Una interpretación errónea común es pensar que un p-value de 0.01 significa que hay un 1% de probabilidad de que H₀ sea verdadera. Esto es incorrecto. El p-value se calcula asumiendo que H₀ es verdadera.

  • Sensibilidad al tamaño de la muestra:

    Con muestras muy grandes, incluso diferencias triviales pueden volverse estadísticamente significativas (p-value bajo), lo que puede llevar a conclusiones engañosas si no se considera la relevancia práctica.

  • "Caza de p-values" (p-hacking):

    La presión por obtener resultados "significativos" puede llevar a prácticas cuestionables, como probar múltiples hipótesis hasta encontrar una con un p-value bajo, o manipular los datos hasta lograr la significancia deseada.

Debido a estas limitaciones, se recomienda complementar el p-value con otras métricas como los intervalos de confianza y los tamaños del efecto.

4.4 Relación con el nivel de significancia

Como se mencionó, la relación es directa: el p-value se compara con el nivel de significancia (α) para tomar una decisión sobre la hipótesis nula.

  • Si p-value < α, se rechaza H₀.
  • Si p-value ≥ α, no se rechaza H₀.

El nivel de significancia es una decisión a priori del investigador, mientras que el p-value es un resultado calculado a partir de los datos.

4.5 Ejemplo aplicado en Python (scipy.stats)

Vamos a retomar el ejemplo de la prueba t para una muestra para ilustrar el cálculo y la interpretación del p-value en Python.


import numpy as np
from scipy import stats

# Datos de ejemplo: Puntuaciones de un grupo de estudiantes
data = np.array([10.2, 9.8, 10.5, 10.1, 9.9, 10.3, 9.7, 10.0, 10.4, 9.6])

# Valor de la media bajo la hipótesis nula (ej., la media esperada es 10.0)
mu_h0 = 10.0

# Realizar la prueba t para una muestra
# stats.ttest_1samp devuelve el estadístico t y el p-value
t_statistic, p_value = stats.ttest_1samp(data, mu_h0)

print(f"Datos de la muestra: {data}")
print(f"Media de la muestra: {np.mean(data):.2f}")
print(f"Media hipotética (H0): {mu_h0}")
print(f"\nEstadístico t: {t_statistic:.3f}")
print(f"Valor p: {p_value:.4f}")

# Interpretar el resultado usando un nivel de significancia alfa = 0.05
alfa = 0.05
print(f"\nNivel de significancia (alfa): {alfa}")

if p_value < alfa:
    print(f"Dado que p-value ({p_value:.4f}) < alfa ({alfa}), se rechaza la hipótesis nula.")
    print(f"Conclusión: La media de la muestra es significativamente diferente de {mu_h0}.")
else:
    print(f"Dado que p-value ({p_value:.4f}) >= alfa ({alfa}), no se rechaza la hipótesis nula.")
    print(f"Conclusión: No hay evidencia suficiente para decir que la media de la muestra es diferente de {mu_h0}.")
            

En este ejemplo, el p-value calculado nos permite decidir si la diferencia observada entre la media de nuestra muestra y la media hipotética es lo suficientemente grande como para ser considerada estadísticamente significativa, o si podría deberse simplemente al azar del muestreo.

Análisis Detallado de la Prueba t de una Muestra

La prueba t de una muestra (o one-sample t-test) es una técnica de inferencia estadística que se usa para comprobar si la media de una muestra difiere significativamente de un valor conocido o supuesto (la media poblacional bajo la hipótesis nula).

Conceptos principales:

  • Hipótesis Nula (H₀):

    La media de la población es igual a un valor específico (por ejemplo, μ = 10).

  • Hipótesis Alternativa (H₁):

    La media de la población es diferente de ese valor (μ ≠ 10). (Se puede plantear también en forma unilateral: μ > 10 o μ < 10, según el caso).

  • Estadístico t:

    Mide cuántas desviaciones estándar está la media muestral de la media hipotética.

    t = ( x̄ - μ0 ) / ( s / √n )

    Donde:

    • x̄: media muestral
    • μ0: media hipotética bajo H₀
    • s: desviación estándar muestral
    • n: tamaño de la muestra
  • Valor p:

    Probabilidad de observar los datos (o más extremos) si la hipótesis nula fuera cierta.

    • Si p < α (nivel de significancia, comúnmente 0.05), se rechaza H₀.
    • Si p ≥ α, no se rechaza H₀.

Ejercicio Práctico: Modificando los Datos

Ahora, te proponemos un ejercicio. ¿Qué pasaría si los datos de la muestra fueran claramente diferentes a la media hipotética? Intenta reemplazar la variable data en el programa de Python con la siguiente lista y vuelve a ejecutarlo.

Este nuevo conjunto de datos está diseñado para que su media se aleje más de 10.0:


# Nuevo conjunto de datos para probar
data = np.array([11.2, 10.8, 11.5, 11.1, 10.9, 11.3, 10.7, 11.0, 11.4, 10.6])
            

Al ejecutar el programa con estos nuevos datos, observarás que el valor p disminuye drásticamente, cayendo por debajo del nivel de significancia de 0.05. Esto te llevará a rechazar la hipótesis nula, concluyendo que la media de esta nueva muestra es, de hecho, significativamente diferente de 10.0.