valores p

Pruebas de hipótesis en Python

James Chapman

Curriculum Manager, DataCamp

Juicios penales

  • Dos posibles estados reales:
    1. La persona acusada cometió el delito
    2. La persona acusada no cometió el delito
  • Dos posibles veredictos:
    1. Culpable
    2. No culpable
  • Inicialmente se presume la inocencia
  • La fiscalía debe aportar pruebas "más allá de toda duda razonable" para un veredicto de culpabilidad
Pruebas de hipótesis en Python

Edad del primer contacto con la programación

  • age_first_code_cut clasifica cuándo un usuario de Stack Overflow empezó a programar
    • "adult" significa que empezó con 14 o más
    • "child" significa que empezó antes de los 14
  • Investigación previa: el 35% de los desarrolladores empezó a programar de niños
  • ¿Hay evidencia de que una mayor proporción de data scientists empezó de niños?
Pruebas de hipótesis en Python

Definiciones

Una hipótesis es una afirmación sobre un parámetro poblacional desconocido

Una prueba de hipótesis contrasta dos hipótesis en competencia

  • La hipótesis nula ($H_{0}$) es la idea existente

  • La hipótesis alternativa ($H_{A}$) es la nueva idea "desafiante" del investigador

Para nuestro problema:

  • $H_{0}$: La proporción de data scientists que empezaron a programar de niños es del 35%
  • $H_{A}$: La proporción de data scientists que empezaron a programar de niños es mayor que el 35%
1 "Naught" es inglés británico para "cero". Por razones históricas, "H-naught" es la convención internacional para pronunciar la hipótesis nula.
Pruebas de hipótesis en Python

Juicios penales vs. pruebas de hipótesis

  • O bien $H_{A}$ o $H_{0}$ es verdadera (no ambas)
  • Inicialmente se asume $H_{0}$
  • El resultado es "rechazar $H_{0}$" o "no rechazar $H_{0}$"
  • Si la evidencia muestral es "significativa" a favor de $H_{A}$, rechaza $H_{0}$; si no, elige $H_{0}$

El nivel de significación es el "más allá de toda duda razonable" de las pruebas de hipótesis

Pruebas de hipótesis en Python

Pruebas de una y dos colas

Gráfico de densidad de la pdf de la normal estándar con las colas izquierda y derecha en rojo.

Las pruebas de hipótesis comprueban si las estadísticas muestrales caen en las colas de la distribución nula

Prueba Colas
alternativa distinta de la nula dos colas
alternativa mayor que la nula cola derecha
alternativa menor que la nula cola izquierda

 

$H_{A}$: La proporción de data scientists que empezaron a programar de niños es mayor que el 35%

Esta es una prueba de cola derecha

Pruebas de hipótesis en Python

valores p

valores p: probabilidad de obtener un resultado asumiendo que la hipótesis nula es cierta

  • p grande, mucho apoyo a $H_{0}$
    • Estadístico probablemente no en la cola de la distribución nula
  • p pequeña, evidencia fuerte contra $H_{0}$
    • Estadístico probablemente en la cola de la distribución nula
  • La "p" en p-valor → probabilidad
  • "pequeña" significa "cerca de cero"
Pruebas de hipótesis en Python

Cálculo del z-score

prop_child_samp = (stack_overflow['age_first_code_cut'] == "child").mean()
0.39141972578505085
prop_child_hyp = 0.35
std_error = np.std(first_code_boot_distn, ddof=1)
0.010351057228878566
z_score = (prop_child_samp - prop_child_hyp) / std_error
4.001497129152506
Pruebas de hipótesis en Python

Cálculo del p-valor

  • norm.cdf() es la CDF normal de scipy.stats.
  • Prueba de cola izquierda → usa norm.cdf().
  • Prueba de cola derecha → usa 1 - norm.cdf().

 

from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Pruebas de hipótesis en Python

¡Vamos a practicar!

Pruebas de hipótesis en Python

Preparing Video For Download...