Bhapkar toets
Contents
16. Bhapkar toets#
16.1. Toepassing#
Gebruik de Bhapkar toets om te toetsen of er verschillen zijn voor een nominale1 variabele tussen twee gepaarde groepen.2, 3 Als de nominale variabele twee categorieën heeft, kan ook de McNemar toets gebruikt worden.
16.2. Onderwijscasus#
De studieadviseur van de bachelor Leisure & Events Management geeft halverwege het eerste studiejaar een voorlopig BSA-advies aan alle eerstejaars studenten. Studenten ontvangen een positief, negatief of uitgesteld BSA. Daarnaast voert zij met alle studenten persoonlijke gesprekken om het advies toe te lichten en een plan voor de rest van het studiejaar te maken. De studieadviseur wil graag onderzoeken of er verschillen zijn tussen het voorlopige BSA-advies halverwege het jaar en het definitieve advies aan het einde van het jaar zodat ze de effectiviteit van de persoonlijke gesprekken kan beoordelen.
Dit onderzoek vertaalt zich in de volgende combinatie van hypothesen, waarbij de nulhypothese zo geformuleerd is dat er geen effect of verschil is en de alternatieve hypothese zo geformuleerd is dat er wel een effect of verschil is.
H0: Er is geen verschil tussen de verdeling van de voorlopige BSA adviezen en de definitieve BSA adviezen.
HA: Er is een verschil tussen de verdeling van de voorlopige BSA adviezen en de definitieve BSA adviezen.
16.3. Assumpties#
Om de Bhapkar toets uit te voeren, moeten de data aan een aantal voorwaarden voldoen. Er dient een categorische variabele te zijn met twee of meer categorieën en een binaire variabele die de twee gepaarde groepen weergeeft. Daarnaast mag er geen overlap zijn tussen de categorieën van de categorische variabele: elke observatie past slechts in een van beide categorieën.2, 3
16.4. Frequentiematrix#
De Bhapkar toets gaat uit van een frequentiematrix, een matrix waarin de rijen de eerste meting van de steekproef bevat en de kolommen de tweede meting. Een voorbeeld bij de casus is weergegeven in Tabel 1.
Definitief |
||||
|---|---|---|---|---|
Positief |
Negatief |
Uitgesteld |
||
Voorlopig |
Positief |
|
|
|
Negatief |
|
|
|
|
Uitgesteld |
|
|
|
|
Tabel 1. Frequentiematrix van de voorlopige en definitieve BSA-adviezen voor studenten van de bachelor Leisure & Event Management. |
De cel linksboven bevat het aantal studenten dat zowel bij het voorlopige BSA als het definitieve BSA advies een positief advies heeft ontvangen; dit zijn r py$BSA_frequentiematrix[2,2] studenten. De cel in het midden van de frequentiematrix laat het aantal studenten zien dat zowel bij het voorlopige BSA als het definitieve BSA advies een negatief advies heeft ontvangen; dit zijn r py$BSA_frequentiematrix[1,1] studenten. De cel rechtsonder bevat het aantal studenten dat zowel bij het voorlopige BSA als het definitieve BSA advies een uitgesteld advies heeft ontvangen; dit is r py$BSA_frequentiematrix[3,3] student. Deze drie cellen staan op de diagonaal van de tabel en worden daarom de diagonale elementen genoemd.
Er zijn ook cellen die niet onder de diagonale elementen van de frequentiematrix vallen. Deze cellen bevatten studenten waarbij het voorlopige BSA advies verschilt van het definitieve advies. In de cel rechtsboven bijvoorbeeld staat het aantal studenten dat een positief voorlopig BSA advies en een uitgesteld definitief BSA advies heeft ontvangen; dit zijn r py$BSA_frequentiematrix[2,3] studenten. De cel linksonder bevat het aantal studenten dat een uitgesteld voorlopig BSA advies en een positief definitief BSA advies heeft ontvangen; dit zijn r py$BSA_frequentiematrix[3,2] studenten.
16.5. De data bekijken#
Er is een dataset ingeladen genaamd dfBSA_LEM. In deze dataset is voor elke student aangegeven wat het voorlopige en definitieve BSA advies is.
## Eerste 5 observaties
print(dfBSA_LEM.head(5))
## Laatste 5 observaties
print(dfBSA_LEM.tail(5))
Studentnummer Soort_BSA BSA_advies
0 4909362 Voorlopig Positief
1 4731799 Voorlopig Positief
2 4623196 Voorlopig Uitgesteld
3 4720223 Voorlopig Positief
4 4468737 Voorlopig Positief
Studentnummer Soort_BSA BSA_advies
295 4825665 Definitief Negatief
296 4173895 Definitief Negatief
297 4109988 Definitief Negatief
298 4081066 Definitief Positief
299 4874260 Definitief Positief
Een kruistabel geeft de aantallen observaties weer voor de combinaties van de categorieën van de variabelen Soort_BSA en BSA_advies. In feite laat deze tabel de frequentie van het positieve, negatieve en uitgestelde BSA-advies zien voor de voorlopige en definitieve BSA. Maak de kruistabel met de functie .crosstab() van het package pandas met als argumenten de variabele dfBSA_LEM['Soort_BSA'], die weergeeft of het om het voorlopige of definitieve advies gaat, en de variabele dfBSA_LEM['BSA_advies'], die het BSA-advies aangeeft.
import pandas as pd
## Maak een kruistabel
BSA_kruistabel = pd.crosstab(dfBSA_LEM['Soort_BSA'], dfBSA_LEM['BSA_advies'])
## Print de kruistabel
print(BSA_kruistabel)
## Print een tabel met proporties, tweede argument 'index' zorgt ervoor dat de
## proporties per rij berekend worden
Prop_BSA_kruistabel = pd.crosstab(dfBSA_LEM['Soort_BSA'], dfBSA_LEM['BSA_advies'], normalize = 'index')
## Print de tabel met proporties
print(Prop_BSA_kruistabel)
BSA_advies Negatief Positief Uitgesteld
Soort_BSA
Definitief 20 124 6
Voorlopig 44 92 14
BSA_advies Negatief Positief Uitgesteld
Soort_BSA
Definitief 0.133333 0.826667 0.040000
Voorlopig 0.293333 0.613333 0.093333
De kruistabel en de kruistabel met proporties laten zien dat het aantal positieve BSA-adviezen hoger is bij het definitieve advies en het aantal negatieve BSA-adviezen juist lager. Het aantal uitgestelde BSA-adviezen is iets lager bij het definitieve advies.
16.6. Uitvoering#
16.6.1. Bhapkar toets#
Voer de Bhapkar toets uit om te onderzoeken of er een verschil is tussen de verdeling van de voorlopige en definitieve BSA-adviezen voor studenten van de bachelor Leisure & Events Management. Sla eerst de voorlopige en definitieve BSA adviezen op in vectoren. Maak daarna een frequentiematrix met behulp van de functie sms.SquareTable() van het package statsmodels.stats.api met als argument pd.crosstab(Voorlopig, Definitief), een manier om een frequentiematrix te maken met behulp van de functie pd.crosstab() van het package pandas. Voer vervolgens de Bhapkar toets uit met behulp van de functie .homogeneity(method = 'bhapkar'), ook van het package statsmodels.stats.api.
import statsmodels.stats.api as sms
import numpy as np
## Definieer de groepen
Voorlopig = np.array(dfBSA_LEM['BSA_advies'][dfBSA_LEM['Soort_BSA'] == 'Voorlopig'])
Definitief = np.array(dfBSA_LEM['BSA_advies'][dfBSA_LEM['Soort_BSA'] == 'Definitief'])
## Maak een frequentiematrix
BSA_frequentiematrix = sms.SquareTable(pd.crosstab(Voorlopig, Definitief))
## Voer de Bhapkar toets uit
print(BSA_frequentiematrix.homogeneity(method = 'bhapkar'))
df 2
pvalue 4.516458307479709e-05
statistic 20.010394677125866
χ^2^ =
r Round_and_format(py$stat), p < 0,0001De p-waarde is kleiner dan 0,05, dus de H0 wordt verworpen.6
De verdelingen van de voorlopige en definitieve BSA-adviezen zijn verschillend.
16.7. Rapportage#
De Bhapkar toets is uitgevoerd om uit te vinden of er een verschil tussen de verdeling van de voorlopige en definitieve BSA-adviezen van de studenten van de bachelor Leisure & Events Management. Uit de Bhapkar toets blijkt dat er een significant verschil is tussen de verdelingen van de voorlopige en definitieve BSA-adviezen, χ^2^ = r Round_and_format(py$stat), p < 0,0001. De frequenties en bijbehorende percentages voor de voorlopige en definitieve BSA-adviezen zijn te vinden in Tabel 2. Op basis van de resultaten en deze tabel is te zien dat er bij de definitieve BSA-adviezen meer positieve en minder negatieve BSA-adviezen zijn dan bij de voorlopige adviezen. Daarnaast is het aantal uitgestelde BSA-adviezen iets lager bij de definitieve adviezen. De persoonlijke gesprekken met de studieadviseur lijken er dus voor te zorgen dat er meer positieve en minder negatieve en uitgestelde BSA-adviezen zijn.
BSA-advies |
|||
|---|---|---|---|
Positief |
Negatief |
Uitgesteld |
|
Voorlopig |
|
|
|
Definitief |
|
|
|
Tabel 2. Kruistabel en rijpercentages voor de voorlopige en definitieve BSA-adviezen van studenten van de bachelor Leisure & Events Management. |
- 1
Een nominale variabele is een categorische variabele waarbij de categorieën niet geordend kunnen worden. Een voorbeeld is de variabele windstreek (noord, oost, zuid, west) en geslacht (man of vrouw).
- 2(1,2)
Sun, X., & Yang, Z., (2008) Generalized McNemar’s Test for Homogeneity of the Marginal Distributions. SAS Global Forum 2008
- 3(1,2)
Uebersax, J. (30 augustus 2006). McNemar Tests of Marginal Homogeneity
- 6
In dit voorbeeld wordt uitgegaan van een waarschijnlijkheid van 95% c.q. een p-waardegrens van 0,05. De grens is naar eigen inzicht aan te passen; houd hierbij rekening met type I en type II fouten.