Pruebas no paramétricas

Pruebas de hipótesis en Python

James Chapman

Curriculum Manager, DataCamp

Pruebas paramétricas

  • z-test, t-test y ANOVA son pruebas paramétricas
  • Suponen normalidad
  • Requieren tamaños de muestra suficientemente grandes
Pruebas de hipótesis en Python

Datos reducidos de votos republicanos

print(repub_votes_small)
            state      county  repub_percent_08  repub_percent_12
80          Texas   Red River         68.507522         69.944817
84          Texas      Walker         60.707197         64.971903
33       Kentucky      Powell         57.059533         61.727293
81          Texas  Schleicher         74.386503         77.384464
93  West Virginia      Morgan         60.857614         64.068711
Pruebas de hipótesis en Python

Resultados con pingouin.ttest()

  • 5 pares no bastan para cumplir la condición de tamaño muestral de la t de pares:
  • Al menos 30 pares de observaciones entre las muestras.
alpha = 0.01

import pingouin pingouin.ttest(x=repub_votes_potus_08_12_small['repub_percent_08'], y=repub_votes_potus_08_12_small['repub_percent_12'], paired=True, alternative="less")
               T  dof alternative     p-val          CI95%   cohen-d    BF10     power
T-test -5.875753    4        less  0.002096  [-inf, -2.11]  0.500068  26.468  0.239034
Pruebas de hipótesis en Python

Pruebas no paramétricas

  • Las pruebas no paramétricas evitan los supuestos y condiciones de las paramétricas
  • Muchas usan rangos de los datos
x = [1, 15, 3, 10, 6]
from scipy.stats import rankdata
rankdata(x)
array([1., 5., 2., 4., 3.])
Pruebas de hipótesis en Python

Pruebas no paramétricas

  • Las pruebas no paramétricas son más fiables que las paramétricas con muestras pequeñas y cuando los datos no siguen una normal
Pruebas de hipótesis en Python

Pruebas no paramétricas

  • Las pruebas no paramétricas son más fiables que las paramétricas con muestras pequeñas y cuando los datos no siguen una normal

 

Prueba de rangos con signo de Wilcoxon
  • Desarrollada por Frank Wilcoxon en 1945
  • Una de las primeras técnicas no paramétricas
Pruebas de hipótesis en Python

Wilcoxon con signo (Paso 1)

  • Funciona con las diferencias absolutas ordenadas por rango entre pares de datos
repub_votes_small['diff'] = repub_votes_small['repub_percent_08'] -
                            repub_votes_small['repub_percent_12']
print(repub_votes_small)
            state      county  repub_percent_08  repub_percent_12      diff
80          Texas   Red River         68.507522         69.944817 -1.437295
84          Texas      Walker         60.707197         64.971903 -4.264705
33       Kentucky      Powell         57.059533         61.727293 -4.667760
81          Texas  Schleicher         74.386503         77.384464 -2.997961
93  West Virginia      Morgan         60.857614         64.068711 -3.211097
Pruebas de hipótesis en Python

Wilcoxon con signo (Paso 2)

  • Funciona con las diferencias absolutas ordenadas por rango entre pares de datos
repub_votes_small['abs_diff'] = repub_votes_small['diff'].abs()
print(repub_votes_small)
            state      county  repub_percent_08  repub_percent_12      diff  abs_diff
80          Texas   Red River         68.507522         69.944817 -1.437295  1.437295
84          Texas      Walker         60.707197         64.971903 -4.264705  4.264705
33       Kentucky      Powell         57.059533         61.727293 -4.667760  4.667760
81          Texas  Schleicher         74.386503         77.384464 -2.997961  2.997961
93  West Virginia      Morgan         60.857614         64.068711 -3.211097  3.211097
Pruebas de hipótesis en Python

Wilcoxon con signo (Paso 3)

  • Funciona con las diferencias absolutas ordenadas por rango entre pares de datos
from scipy.stats import rankdata
repub_votes_small['rank_abs_diff'] = rankdata(repub_votes_small['abs_diff'])
print(repub_votes_small)
            state      county  repub_percent_08  repub_percent_12      diff  abs_diff  rank_abs_diff
80          Texas   Red River         68.507522         69.944817 -1.437295  1.437295            1.0
84          Texas      Walker         60.707197         64.971903 -4.264705  4.264705            4.0
33       Kentucky      Powell         57.059533         61.727293 -4.667760  4.667760            5.0
81          Texas  Schleicher         74.386503         77.384464 -2.997961  2.997961            2.0
93  West Virginia      Morgan         60.857614         64.068711 -3.211097  3.211097            3.0
Pruebas de hipótesis en Python

Wilcoxon con signo (Paso 4)

            state      county  repub_percent_08  repub_percent_12      diff  abs_diff  rank_abs_diff
80          Texas   Red River         68.507522         69.944817 -1.437295  1.437295            1.0
84          Texas      Walker         60.707197         64.971903 -4.264705  4.264705            4.0
33       Kentucky      Powell         57.059533         61.727293 -4.667760  4.667760            5.0
81          Texas  Schleicher         74.386503         77.384464 -2.997961  2.997961            2.0
93  West Virginia      Morgan         60.857614         64.068711 -3.211097  3.211097            3.0
  • Suma los rangos de las diferencias negativas y positivas
T_minus = 1 + 4 + 5 + 2 + 3

T_plus = 0
W = np.min([T_minus, T_plus])
0
Pruebas de hipótesis en Python

Implementación con pingouin.wilcoxon()

alpha = 0.01
pingouin.wilcoxon(x=repub_votes_potus_08_12_small['repub_percent_08'],
                  y=repub_votes_potus_08_12_small['repub_percent_12'],
                  alternative="less")
          W-val alternative    p-val  RBC  CLES
Wilcoxon    0.0        less  0.03125 -1.0  0.72

No se rechaza H0, porque 0.03125 > 0.01

Pruebas de hipótesis en Python

¡Vamos a practicar!

Pruebas de hipótesis en Python

Preparing Video For Download...