Pruebas de proporciones de una muestra

Pruebas de hipótesis en Python

James Chapman

Curriculum Manager, DataCamp

Resumen del capítulo 1

  • ¿Es viable una afirmación sobre una proporción poblacional desconocida?

 

  1. Error estándar de la estadística muestral desde el bootstrap
  2. Calcula una estadística de prueba estandarizada
  3. Calcula un p-valor
  4. Decide qué hipótesis tiene más sentido

 

  • Ahora, calcula la estadística de prueba sin usar el bootstrap
Pruebas de hipótesis en Python

Estadístico estandarizado para proporciones

$p$: proporción poblacional (parámetro desconocido)

$\hat{p}$: proporción muestral (estadístico muestral)

$p_{0}$: proporción poblacional hipotetizada

$$ z = \frac{\hat{p} - \text{mean}(\hat{p})}{\text{SE}(\hat{p})} = \frac{\hat{p} - p}{\text{SE}(\hat{p})} $$

Asumiendo que $H_{0}$ es cierta, $p = p_{0}$, entonces

$$ z = \dfrac{\hat{p} - p_{0}}{\text{SE}(\hat{p})} $$

Pruebas de hipótesis en Python

Simplificando el cálculo del error estándar

$SE_{\hat{p}} = \sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}$ $\rightarrow$ Bajo $H_0$, $SE_{\hat{p}}$ depende de $p_0$ hipotetizado y del tamaño muestral $n$

Asumiendo que $H_{0}$ es cierta,

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

  • Solo usa la información muestral ($\hat{p}$ y $n$) y el parámetro hipotetizado ($p_{0}$)
Pruebas de hipótesis en Python

¿Por qué z y no t?

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

  • $s$ se calcula a partir de $\bar{x}$
    • $\bar{x}$ estima la media poblacional
    • $s$ estima la desviación estándar poblacional
    • ↑ incertidumbre en la estimación del parámetro
  • Distribución t: colas más gruesas que la normal
  • $\hat{p}$ solo aparece en el numerador, así que z-scores sirven
Pruebas de hipótesis en Python

Categorías de edad en Stack Overflow

$H_{0}$: Proporción de usuarios de Stack Overflow menores de 30 = 0.5

$H_{A}$: Proporción de usuarios de Stack Overflow menores de 30 $\neq 0.5$

alpha = 0.01
stack_overflow['age_cat'].value_counts(normalize=True)
Under 30       0.535604
At least 30    0.464396
Name: age_cat, dtype: float64
Pruebas de hipótesis en Python

Variables para z

p_hat = (stack_overflow['age_cat'] == 'Under 30').mean()
0.5356037151702786
p_0 = 0.50
n = len(stack_overflow)
2261
Pruebas de hipótesis en Python

Cálculo del z-score

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

import numpy as np
numerator = p_hat - p_0
denominator = np.sqrt(p_0 * (1 - p_0) / n)
z_score = numerator / denominator
3.385911440783663
Pruebas de hipótesis en Python

Cálculo del p-valor

CDF de la normal. La parte menor que -2 en rojo y la mayor que 2 en verde. Cola izquierda ("menor que"):

from scipy.stats import norm
p_value = norm.cdf(z_score)

Cola derecha ("mayor que"):

p_value = 1 - norm.cdf(z_score)

Bilateral ("distinto de"):

p_value = norm.cdf(-z_score) + 
  1 - norm.cdf(z_score)
p_value = 2 * (1 - norm.cdf(z_score))
0.0007094227368100725
p_value <= alpha
True
Pruebas de hipótesis en Python

¡Vamos a practicar!

Pruebas de hipótesis en Python

Preparing Video For Download...