Testes não paramétricos

Testes de Hipóteses em Python

James Chapman

Curriculum Manager, DataCamp

Testes paramétricos

  • z-test, t-test e ANOVA são testes paramétricos
  • Assumem distribuição normal
  • Exigem tamanho de amostra suficientemente grande
Testes de Hipóteses em Python

Amostra menor 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
Testes de Hipóteses em Python

Resultados com pingouin.ttest()

  • 5 pares não bastam para a condição de tamanho da amostra do t-teste pareado:
  • Pelo menos 30 pares de observações entre as amostras.
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
Testes de Hipóteses em Python

Testes não paramétricos

  • Testes não paramétricos evitam as suposições e condições dos paramétricos
  • Muitos usam os postos (ranks) dos dados
x = [1, 15, 3, 10, 6]
from scipy.stats import rankdata
rankdata(x)
array([1., 5., 2., 4., 3.])
Testes de Hipóteses em Python

Testes não paramétricos

  • Testes não paramétricos são mais confiáveis que os paramétricos em amostras pequenas e quando os dados não são normais
Testes de Hipóteses em Python

Testes não paramétricos

  • Testes não paramétricos são mais confiáveis que os paramétricos em amostras pequenas e quando os dados não são normais

 

Teste de postos sinalizados de Wilcoxon
  • Desenvolvido por Frank Wilcoxon em 1945
  • Um dos primeiros procedimentos não paramétricos
Testes de Hipóteses em Python

Wilcoxon (Etapa 1)

  • Funciona com os valores absolutos das diferenças entre os pares, ranqueados
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
Testes de Hipóteses em Python

Wilcoxon (Etapa 2)

  • Funciona com os valores absolutos das diferenças entre os pares, ranqueados
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
Testes de Hipóteses em Python

Wilcoxon (Etapa 3)

  • Funciona com os valores absolutos das diferenças entre os pares, ranqueados
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
Testes de Hipóteses em Python

Wilcoxon (Etapa 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
  • Somar os postos das diferenças negativas e positivas
T_minus = 1 + 4 + 5 + 2 + 3

T_plus = 0
W = np.min([T_minus, T_plus])
0
Testes de Hipóteses em Python

Implementação com 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

Falha em rejeitar $H_0$, pois 0.03125 > 0.01

Testes de Hipóteses em Python

Vamos praticar!

Testes de Hipóteses em Python

Preparing Video For Download...