Realizar pruebas t

Pruebas de hipótesis en Python

James Chapman

Curriculum Manager, DataCamp

Problemas de dos muestras

  • Compara estadísticas muestrales entre grupos de una variable
  • converted_comp es una variable numérica
  • age_first_code_cut es una variable categórica con niveles ("child" y "adult")
  • ¿Quienes programaron primero de niños ganan más que quienes empezaron de adultos?
Pruebas de hipótesis en Python

Hipótesis

$H_{0}$: La media de la compensación (USD) es la misma para quienes codificaron primero de niños y quienes lo hicieron de adultos.

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: La media de la compensación (USD) es mayor para quienes codificaron primero de niños que para quienes lo hicieron de adultos.

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Pruebas de hipótesis en Python

Cálculo de estadísticas por grupo

stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
age_first_code_cut
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64
Pruebas de hipótesis en Python

Estadísticos de prueba

  • La media muestral estima la media poblacional
  • $\bar{x}$: media muestral
  • $\bar{x}_{child}$: media muestral de compensación para quien codificó primero de niño
  • $\bar{x}_{adult}$: media muestral de compensación para quien codificó primero de adulto
  • $\bar{x}_{child} - \bar{x}_{adult}$: un estadístico de prueba
  • z-score: un estadístico (estandarizado)
Pruebas de hipótesis en Python

Estandarizar el estadístico de prueba

$z = \dfrac{\text{sample stat} - \text{population parameter}}{\text{standard error}}$

$t = \dfrac{\text{difference in sample stats} - \text{difference in population parameters}}{\text{standard error}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Pruebas de hipótesis en Python

Error estándar

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

$s$ es la desviación estándar de la variable

$n$ es el tamaño muestral (número de observaciones/filas en la muestra)

Pruebas de hipótesis en Python

Asumiendo que la hipótesis nula es cierta

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$    $\rightarrow$     $t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$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}}}}}$

Pruebas de hipótesis en Python

Cálculos asumiendo H0

xbar = stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64 age_first_code_cut
s = stack_overflow.groupby('age_first_code_cut')['converted_comp'].std()
adult    271546.521729
child    255585.240115
Name: converted_comp, dtype: float64 age_first_code_cut
n = stack_overflow.groupby('age_first_code_cut')['converted_comp'].count()
adult    1376
child     885
Name: converted_comp, dtype: int64
Pruebas de hipótesis en Python

Cálculo del estadístico de prueba

$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}}}}}$

import numpy as np
numerator = xbar_child - xbar_adult
denominator = np.sqrt(s_child ** 2 / n_child + s_adult ** 2 / n_adult)
t_stat = numerator / denominator
1.8699313316221844
Pruebas de hipótesis en Python

¡Vamos a practicar!

Pruebas de hipótesis en Python

Preparing Video For Download...