Nichtparametrische Tests

Hypothesentests in Python

James Chapman

Curriculum Manager, DataCamp

Parametrische Tests

  • z-Test, t-Test und ANOVA sind alle parametrische Tests
  • Setzen Normalverteilung voraus
  • Erfordern ausreichend große Stichproben
Hypothesentests in Python

Kleinere Daten zu republikanischen Stimmen

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
Hypothesentests in Python

Ergebnisse mit pingouin.ttest()

  • 5 Paare reichen für den gepaarten t-Test nicht aus:
  • Mindestens 30 Wertepaaren über die Stichproben hinweg.
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
Hypothesentests in Python

Nichtparametrische Tests

  • Nichtparametrische Tests umgehen die Annahmen/Bedingungen parametrischer Tests
  • Viele nichtparametrische Tests nutzen Ränge der Daten
x = [1, 15, 3, 10, 6]
from scipy.stats import rankdata
rankdata(x)
array([1., 5., 2., 4., 3.])
Hypothesentests in Python

Nichtparametrische Tests

  • Nichtparametrische Tests sind bei kleinen Stichproben und wenn Daten nicht normalverteilt sind verlässlicher als parametrische Tests
Hypothesentests in Python

Nichtparametrische Tests

  • Nichtparametrische Tests sind bei kleinen Stichproben und wenn Daten nicht normalverteilt sind verlässlicher als parametrische Tests

 

Wilcoxon-Vorzeichen-Rang-Test
  • Entwickelt von Frank Wilcoxon (1945)
  • Eines der ersten nichtparametrischen Verfahren
Hypothesentests in Python

Wilcoxon-Vorzeichen-Rang-Test (Schritt 1)

  • Arbeitet mit den Rangplätzen der absoluten Differenzen der Paare
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
Hypothesentests in Python

Wilcoxon-Vorzeichen-Rang-Test (Schritt 2)

  • Arbeitet mit den Rangplätzen der absoluten Differenzen der Paare
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
Hypothesentests in Python

Wilcoxon-Vorzeichen-Rang-Test (Schritt 3)

  • Arbeitet mit den Rangplätzen der absoluten Differenzen der Paare
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
Hypothesentests in Python

Wilcoxon-Vorzeichen-Rang-Test (Schritt 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
  • Summiere die Ränge für negative und positive Differenzen getrennt
T_minus = 1 + 4 + 5 + 2 + 3

T_plus = 0
W = np.min([T_minus, T_plus])
0
Hypothesentests in Python

Umsetzung mit 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

H0 nicht verwerfen, da 0.03125 > 0.01

Hypothesentests in Python

Lass uns üben!

Hypothesentests in Python

Preparing Video For Download...