5. One-way ANOVA#

5.1. Toepassing#

Gebruik de one-way ANOVA bij het toetsen of de gemiddelden van twee of meer onafhankelijke groepen verschillen.1

5.2. Onderwijscasus#

Om wervingsactiviteiten beter af te stemmen op de aankomende studenten, wil het hoofd van de afdeling Communicatie weten wat de reistijd (in minuten) is van studenten van verschillende opleidingen. Hij heeft daarom data verzameld over de reistijd van uitwonende studenten voor de opleidingen: Arabische Taal en Cultuur, Filosofie en Geschiedenis.

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: De reistijden van de studenten van de drie opleidingen komen uit dezelfde verdeling en hebben dus een gezamenlijk gemiddelde

HA: De reistijden van de studenten van de drie opleidingen komen niet uit dezelfde verdeling en hebben dus een verschillend gemiddelde

5.3. Uitleg assumpties#

Om een valide toetsresultaat te bereiken moet de data aan een aantal voorwaarden voldoen. Controleer of de steekproef aan de volgende assumpties voldoet: normaliteit, homogeniteit van varianties en onafhankelijkheid.

De one-way ANOVA is een robuuste toets: als er niet voldaan is aan de assumptie van normaliteit of homogeniteit van varianties, dan kan de one-way ANOVA in bepaalde gevallen nog steeds uitgevoerd en geïnterpreteerd worden.2 Hierdoor kan het wel zijn dat de toets minder onderscheidend vermogen heeft, dan wanneer de assumpties niet geschonden worden.3, 4 Als er grote afwijkingen zijn van normaliteit of homogeniteit van varianties, is de Kruskal-Wallis toets een alternatief voor de one-way ANOVA.5, 6

5.3.1. Normaliteit#

De assumptie van normaliteit houdt bij de one-way ANOVA in dat de afhankelijke variabele normaal verdeeld is voor elke groep. Controleer de assumptie van normaliteit voor elke groep met de volgende stappen:

  1. Controleer de data visueel met een histogram, een boxplot of een Q-Q plot.

  2. Toets of de data normaal verdeeld zijn met de Kolmogorov-Smirnov test of bij een kleinere steekproef (n < 50) met de Shapiro-Wilk test.7, 8

De eerste stap heeft als doel een goede indruk te krijgen van de verdeling van de steekproef. In de tweede stap wordt de assumptie van normaliteit getoetst. De statistische toets laat zien of de verdeling van de observaties van een groep voldoet aan de assumptie van normaliteit. Voor alle groepen moet er voldaan zijn aan de assumptie van normaliteit.

Als er niet voldaan is aan normaliteit, is het transformeren van de data een optie.2 Een andere optie is het gebruik van de nonparametrische Kruskal-Wallis toets waar normaliteit geen assumptie is.3 De one-way ANOVA is echter ook een robuuste toets ten opzichte van de assumptie van normaliteit. Als elke groep een aantal observaties (n) heeft dat groter dan 100 is, ga er dan vanuit dat de one-way ANOVA robuust genoeg is om uit te voeren zonder dat de afhankelijke variabele een normale verdeling volgt.

5.3.2. Homogeniteit van varianties#

Toets met de Levene’s Test (for equality of variance) of de variantie van iedere groep ongeveer hetzelfde is. Bij een p-waarde kleiner dan 0,05 is de variantie van de groepen significant verschillend.10 De one-way ANOVA is in bepaalde gevallen robuust als er geen homogeniteit van varianties is. Als de ratio van de grootste en kleinste steekproefgrootte van alle groepen kleiner dan 10 is en de ratio van de grootste en kleinste variantie van alle groepen kleiner dan 4 is, dan kan de one-way ANOVA gewoon uitgevoerd worden.19 Voer de Kruskal-Wallis toets toets uit als er niet aan deze voorwaarden voor robuustheid is voldaan.

5.4. Effectmaat#

De p-waarde geeft aan of het verschil tussen groepen significant is. De grootte van het verschil of effect is echter ook relevant. Een effectmaat is een gestandaardiseerde maat die de grootte van een effect weergeeft, zodat effecten van verschillende onderzoeken met elkaar vergeleken kunnen worden.11 Voor de one-way ANOVA wordt de effectmaat eta squared vaak gebruikt.

De effectmaat eta squared (η^2^) berekent de proportie van de variantie in de afhankelijke variabele die verklaard wordt door de onafhankelijke variabele. In deze casus berekent het de proportie van de variantie in de lengte van de reistijd die verklaard kan worden door de opleiding. Een indicatie om η^2^ te interpreteren is: rond 0,01 is een klein effect, rond 0,06 is een gemiddeld effect en rond 0,14 is een groot effect.12,13

5.5. Post-hoc toetsen#

De one-way ANOVA toetst of de groepen afkomstig zijn van eenzelfde verdeling met een gezamenlijk gemiddelde of van verschillende verdeling met een eigen gemiddelde. Voer een post-hoc toets uit om te bepalen welke groepen significant verschillen. De post-hoc toetsen voeren meestal een correctie voor de p-waarden uit, omdat er meerdere toetsen tegelijkertijd worden gebruikt. Meerdere toetsen tegelijkertijd uitvoeren verhoogt de kans dat een van de nulhypotheses onterecht wordt verworpen en er bij toeval een verband wordt ontdekt dat er niet is (type I fout).

Er zijn meerdere post-hoc toetsen. De keuze voor een toets hangt onder andere af van het wel of niet schenden van de assumptie van homogeniteit van varianties:

  • Gebruik de Tukey Honestly Significant Difference post-hoc toets bij gelijke variantie.14

  • Gebruik de Games-Howell post-hoc toets bij ongelijke variantie.15

5.6. Toetsing assumpties#

Er is een dataset ingeladen met de reistijden van uitwonende studenten per opleiding genaamd dfReistijd_per_opleiding.

5.6.1. De data bekijken#

Gebruik <dataframe>.head() en <dataframe>.tail() om de structuur van de data te bekijken.

## Eerste 5 observaties
print(dfReistijd_per_opleiding.head(5))
   Studentnummer     Opleiding  Reistijd
0        4186262     Filosofie      7.82
1        4495577  Geschiedenis      9.56
2        4165973     Filosofie     14.15
3        4113936  Geschiedenis     14.19
4        4113263     Filosofie     15.00
## Laatste 5 observaties
print(dfReistijd_per_opleiding.tail(5))
     Studentnummer                  Opleiding  Reistijd
252        4484281               Geschiedenis     63.10
253        4393334               Geschiedenis     63.90
254        4245767               Geschiedenis     64.99
255        4086107               Geschiedenis     65.44
256        4071131  Arabische Taal en Cultuur     67.56

De dataset bevat gegevens van studenten van verschillende opleidingen. Gebruik .unique() om te onderzoeken welke opleidingen er in de data aanwezig zijn.

## Opleidingen in de data aanwezig
print(dfReistijd_per_opleiding['Opleiding'].unique())
['Filosofie' 'Geschiedenis' 'Arabische Taal en Cultuur']

Selecteer de drie groepen en sla deze op in een vector om deze makkelijker aan te kunnen roepen.

Reistijd_ATC = dfReistijd_per_opleiding[
    dfReistijd_per_opleiding['Opleiding'] == "Arabische Taal en Cultuur"]['Reistijd']
Reistijd_FIL = dfReistijd_per_opleiding[
    dfReistijd_per_opleiding['Opleiding'] == "Filosofie"]['Reistijd']
Reistijd_GSC = dfReistijd_per_opleiding[
    dfReistijd_per_opleiding['Opleiding'] == "Geschiedenis"]['Reistijd']

Om meer inzicht te krijgen in de data, inspecteer de data met len(), np.mean() en np.std()), door deze aan te roepen uit de library numpy.

# Om het gemiddelde en de standaard deviatie te berekenen, hebben we de library 'numpy' nodig
import numpy as np
## Aantallen, gemiddelde en standaarddeviatie voor Arabische Taal en Cultuur
print(len(Reistijd_ATC))
print(np.mean(Reistijd_ATC))
print(np.std(Reistijd_ATC))
48
47.454583333333325
9.94052353549461
## Aantallen, gemiddelde en standaarddeviatie voor Filosofie
print(len(Reistijd_FIL))
print(np.mean(Reistijd_FIL))
print(np.std(Reistijd_FIL))
60
33.76916666666666
10.869736472068778
## Aantallen, gemiddelde en standaarddeviatie voor Geschiedenis
print(len(Reistijd_GSC))
print(np.mean(Reistijd_GSC))
print(np.std(Reistijd_GSC))
149
36.53006711409396
12.048398177899575
  • Gemiddelde reistijd Arabische Taal en Cultuur (standaarddeviatie): r Round_and_format(py$vM_ATC) (r Round_and_format(py$vSD_ATC)). n = r py$vN_ATC

  • Gemiddelde reistijd Filosofie (standaarddeviatie): r Round_and_format(py$vM_FIL) (r Round_and_format(py$vSD_FIL)). n = r py$vN_FIL.

  • Gemiddelde reistijd Geschiedenis (standaarddeviatie): r Round_and_format(py$vM_GSC) (r Round_and_format(py$vSD_GSC)). n = r py$vN_GSC.

5.6.2. Visuele inspectie van normaliteit#

Geef de verdeling van de reistijd voor elke opleiding visueel weer met een histogram, Q-Q plot en boxplot.

5.6.2.1. Histogram#

Focus bij het analyseren van een histogram20 op de symmetrie van de verdeling, de hoeveelheid toppen (modaliteit) en mogelijke uitbijters. Een normale verdeling is symmetrisch, heeft één top en geen uitbijters.16, 17

## Histogram met matplotlib
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (15, 10))
sub1 = fig.add_subplot(1, 3, 1)
title1 = plt.title("Arabische Taal en Cultuur")
ylab = plt.ylabel("Frequentiedichtheid")
hist1 = plt.hist(Reistijd_ATC, density = True, edgecolor = "black", bins = 10)

sub2 = fig.add_subplot(1, 3, 2)
title2 = plt.title("Filosofie")
xlab = plt.xlabel("Reistijd")
hist2 = plt.hist(Reistijd_FIL, density = True, edgecolor = "black", bins = 10)

sub3 = fig.add_subplot(1, 3, 3)
title3 = plt.title("Geschiedenis")
hist3 = plt.hist(Reistijd_GSC, density = True, edgecolor = "black", bins = 12)

main = fig.suptitle('Reistijd per opleiding')
plt.show()
../_images/05 One-way ANOVA-Python_21_0.png

De verdelingen van de opleidingen Filosofie en Geschiedenis lijken twee toppen te hebben. Alle drie de opleidingen hebben een niet geheel symmetrische verdeling, maar vertonen ook geen uitbijters. De verdeling van de opleiding Arabische taal en Cultuur is bij benadering normaal; voor de opleidingen Filosofie en Geschiedenis zijn lichte afwijkingen van de normale verdeling te zien.

5.6.2.2. Q-Q plot#

Importeer scipy.stats om een Q-Q plot te maken. Gebruik de functie scipy.stats.probplot() om een Q-Q plot te maken.

Als over het algemeen de meeste datapunten op de lijn liggen, neem dan aan dat de data normaal verdeeld is.

import scipy.stats as stats
qq = stats.probplot(Reistijd_ATC, dist="norm", plot=plt)
title = plt.title("Arabische Taal en Cultuur")
xlab = plt.xlabel("Theoretische kwantielen")
ylab = plt.ylabel("Kwantielen in data")
plt.show()
../_images/05 One-way ANOVA-Python_23_0.png
import scipy.stats as stats
qq = stats.probplot(Reistijd_FIL, dist="norm", plot=plt)
title = plt.title("Filosofie")
xlab = plt.xlabel("Theoretische kwantielen")
ylab = plt.ylabel("Kwantielen in data")
plt.show()
../_images/05 One-way ANOVA-Python_25_0.png
import scipy.stats as stats
qq = stats.probplot(Reistijd_GSC, dist="norm", plot=plt)
title = plt.title("Geschiedenis")
xlab = plt.xlabel("Theoretische kwantielen")
ylab = plt.ylabel("Kwantielen in data")
plt.show()
../_images/05 One-way ANOVA-Python_27_0.png
Bij alle drie de verdelingen liggen de meeste datapunten op of vlakbij de lijn. Hoewel er bij de uiteinden van de verdeling wat afwijkingen zijn, duidt deze grafiek op een goede benadering van de normaalverdeling voor de drie verdelingen.

5.6.2.3. Boxplot#

De box geeft de middelste 50% van de reistijd weer. De zwarte lijn binnen de box is de mediaan. In de staarten of snorreharen zitten de eerste 25% en de laatste 25%. Cirkels visualiseren mogelijke uitbijters.16, 17 Hoe meer de boxen overlappen, hoe waarschijnlijker er geen significant verschil is tussen de groepen.

fig, ax = plt.subplots()
box = ax.boxplot([Reistijd_ATC, Reistijd_FIL, Reistijd_GSC], labels = ["Arabische Taal en Cultuur", "Filosofie", "Geschiedenis"])
title = plt.title("Reistijd per opleiding")
ylab = plt.ylabel("Reistijd in minuten")
plt.show()
../_images/05 One-way ANOVA-Python_30_0.png

De boxplotten geven de spreiding weer van de gemiddelde reistijd van uitwonende studenten voor de opleidingen Arabische Taal en Cultuur, Filosofie en Geschiedenis. De boxplotten Arabische Taal en Cultuur en Geschiedenis zien er symmetrisch uit; de boxen zijn even hoog boven als onder de mediaan en de snorreharen zijn onder en boven even groot. De boxplot van Filosofie is boven de mediaan groter dan onder de mediaan, de data kan wat scheef verdeeld zijn. De mediaan Arabische Taal en Cultuur ligt hoger dan de twee andere opleidingen.

5.6.3. Toetsen van normaliteit#

Om te controleren of de data normaal verdeeld is, kan de normaliteit getoetst worden. Twee veelgebruikte toetsen zijn: de Kolmogorov-Smirnov test en de Shapiro-Wilk test.

5.6.3.1. Kolmogorov-Smirnov#

De Kolmogorov-Smirnov test toetst het verschil tussen twee verdelingen. Standaard toetst deze toets het verschil tussen een normale verdeling en de verdeling van de steekproef. De Lilliefors correctie is vereist als het gemiddelde en de standaardafwijking niet van tevoren bekend of bepaald zijn, wat meestal het geval is bij een steekproef. Als de p-waarde kleiner dan 0,05 is, is de verdeling van de data significant verschillend van de normale verdeling.

De standaard interpretatie van een statitische toets in Python is: (<teststatistiek>, <p-waarde>). Verder toetst Python standaard tweezijdig.

import statsmodels.stats.api as smod
``` {python Lilliefors Test-1, warning=FALSE} print(statsmodels.stats.api.lilliefors(Reistijd_ATC, pvalmethod="table")) ```
``` {python Lilliefors Test-2, warning=FALSE} print(statsmodels.stats.api.lilliefors(Reistijd_FIL, pvalmethod="table")) ```
``` {python Lilliefors Test-3, warning=FALSE} print(statsmodels.stats.api.lilliefors(Reistijd_GSC, pvalmethod="table")) ```

De p-waarde is groter dan 0,05 voor elke groep; er is geen significant verschil gevonden tussen de verdeling van de steekproef en de normale verdeling. 18 De one-way ANOVA kan uitgevoerd worden.

5.6.3.2. Shapiro-Wilk Test#

De Shapiro-Wilk test is een soortgelijke toets als de Kolmogorov-Smirnov test en vooral geschikt bij kleine steekproeven (n < 50). Als de p-waarde kleiner dan 0,05 is, is de verdeling van de data significant verschillend van de normale verdeling.

``` {python Shapiro-Wilk Test-1, warning=FALSE} import scipy.stats as stats print(stats.shapiro(Reistijd_GSC))
<!-- ## /OPENBLOK: Shapiro-Wilk-test-3.py -->
  </div>
  <div class= "col">
<!-- ## OPENBLOK: Shapiro-Wilk-test-2.py -->
``` {python Shapiro-Wilk Test-2, warning=FALSE}
import scipy.stats as stats
print(stats.shapiro(Reistijd_FIL))

``` {python Shapiro-Wilk Test-3, warning=FALSE} import scipy.stats as stats print(stats.shapiro(Reistijd_ATC)) ```

De p-waarde is groter dan 0,05 voor elke groep, dus er is geen significant verschil gevonden tussen de verdeling van de steekproef en de normale verdeling. De one-way ANOVA kan uitgevoerd worden.

5.6.4. Toetsen van Homogeniteit van varianties#

Toets met de Levene’s test de homogeniteit van varianties. Gebruik hiervoor de functie leveneTest() van het package car met als eerst argument de afhankelijke variabele Reistijd_per_opleiding$Reistijd en als tweede argument de onafhankelijke variabele Reistijd_per_opleiding$Opleiding.

import scipy.stats as stats
# Geef de drie variabelen met de reistijden per opleiding als argumenten
print(stats.levene(Reistijd_ATC, Reistijd_FIL, Reistijd_GSC))
LeveneResult(statistic=1.6633438345593108, pvalue=0.19156167714524153)
  • F~r py$vDF1~~,~~r py$vDF2~ = r Round_and_format(py$stat), p-waarde = r Round_and_format(py$pval),

  • De p-waarde is groter dan 0,05, dus er is geen significant verschil gevonden tussen de groepen in spreiding.

  • Vrijheidsgraden bestaan uit twee cijfers, het eerste cijfer (het aantal groepen - 1 = r py$vDF1) en het tweede cijfer (n1 + n2+n3 - 3 = r py$vDF2).

5.7. One-way ANOVA#

Voer de one-way ANOVA uit om de vraag te beantwoorden of de gemiddelde reistijd van de studenten per opleiding verschilt.

Gebruik .anova() uit de package pingouin om een ANOVA-test uit te voeren. De argumenten van de functie zijn de dataset data = dfReistijd_per_opleiding, de afhankelijke variabele dv = "Reistijd", de groepsvariabele between = "Opleiding" en detailed = True om aan te geven dat de functie een uitgebreide versie van de resultaten geeft.

# We importeren een library om de ANOVA toets te kunnen berekenen
import pingouin as pg
/home/runner/.cache/pypoetry/virtualenvs/shs-python-GCQ4ysRl-py3.9/lib/python3.9/site-packages/outdated/utils.py:14: OutdatedPackageWarning: The package outdated is out of date. Your version is 0.2.1, the latest is 0.2.2.
Set the environment variable OUTDATED_IGNORE=1 to disable these warnings.
  return warn(
aov = pg.anova(data = dfReistijd_per_opleiding, dv = 'Reistijd', between = 'Opleiding', detailed = True)
print(aov)
      Source            SS   DF           MS          F         p-unc  \
0  Opleiding   5685.208679    2  2842.604339  21.577638  2.213016e-09   
1     Within  33461.563549  254   131.738439        NaN           NaN   

        np2  
0  0.145228  
1       NaN  
/home/runner/.cache/pypoetry/virtualenvs/shs-python-GCQ4ysRl-py3.9/lib/python3.9/site-packages/outdated/utils.py:14: OutdatedPackageWarning: The package pingouin is out of date. Your version is 0.5.2, the latest is 0.5.3.
Set the environment variable OUTDATED_IGNORE=1 to disable these warnings.
  return warn(
/home/runner/.cache/pypoetry/virtualenvs/shs-python-GCQ4ysRl-py3.9/lib/python3.9/site-packages/pingouin/parametric.py:992: FutureWarning: Not prepending group keys to the result index of transform-like apply. In the future, the group keys will be included in the index, regardless of whether the applied function returns a like-indexed object.
To preserve the previous behavior, use

	>>> .groupby(..., group_keys=False)

To adopt the future behavior and silence this warning, use 

	>>> .groupby(..., group_keys=True)
  sserror = grp.apply(lambda x: (x - x.mean()) ** 2).sum()

De effectmaat η^2^ is in de resultaten te vinden onder np2.

  • F ~r py$vDF1~~,~~r py$vDF2~ = r Round_and_format(py$stat), p < 0,0001.

  • p-waarde is kleiner dan 0,05, dus de H0 wordt verworpen.16

  • Vrijheidsgraden: het aantal groepen - 1 = r py$vDF1; n1 + n2 + n3- 3 = r py$vDF2.

5.8. Post-hoc toets: Tukey’s toets#

Gebruik de functie .pairwise_tukey() met als argumenten de dataset data = dfReistijd_per_opleiding, de afhankelijke variabele dv = "Reistijd", de groepsvariabele between = "Opleiding" en effsize = "cohen" om aan te geven dat Cohen’s d als effectmaat voor de post-hoc toets wordt gebruikt.

print(pg.pairwise_tukey(data = dfReistijd_per_opleiding, dv = "Reistijd", between = "Opleiding", effsize = "cohen"))
                           A             B    mean(A)    mean(B)       diff  \
0  Arabische Taal en Cultuur     Filosofie  47.454583  33.769167  13.685417   
1  Arabische Taal en Cultuur  Geschiedenis  47.454583  36.530067  10.924516   
2                  Filosofie  Geschiedenis  33.769167  36.530067  -2.760900   

         se         T       p-tukey     cohen  
0  2.222654  6.157241  8.616998e-09  1.192345  
1  1.904915  5.734910  8.275881e-08  0.951801  
2  1.754933 -1.573222  2.591223e-01 -0.240544  
/home/runner/.cache/pypoetry/virtualenvs/shs-python-GCQ4ysRl-py3.9/lib/python3.9/site-packages/pingouin/parametric.py:992: FutureWarning: Not prepending group keys to the result index of transform-like apply. In the future, the group keys will be included in the index, regardless of whether the applied function returns a like-indexed object.
To preserve the previous behavior, use

	>>> .groupby(..., group_keys=False)

To adopt the future behavior and silence this warning, use 

	>>> .groupby(..., group_keys=True)
  sserror = grp.apply(lambda x: (x - x.mean()) ** 2).sum()
THSD = pg.pairwise_tukey(data = dfReistijd_per_opleiding, dv = "Reistijd", between = "Opleiding", effsize = "cohen")
vATCvsFIL = THSD['diff'][0]
vATCvsGSC = THSD['diff'][1]
vFILvsGSC = THSD['diff'][2]
vpFILvsGSC = THSD['p-tukey'][2]
/home/runner/.cache/pypoetry/virtualenvs/shs-python-GCQ4ysRl-py3.9/lib/python3.9/site-packages/pingouin/parametric.py:992: FutureWarning: Not prepending group keys to the result index of transform-like apply. In the future, the group keys will be included in the index, regardless of whether the applied function returns a like-indexed object.
To preserve the previous behavior, use

	>>> .groupby(..., group_keys=False)

To adopt the future behavior and silence this warning, use 

	>>> .groupby(..., group_keys=True)
  sserror = grp.apply(lambda x: (x - x.mean()) ** 2).sum()

Het verschil tussen Filosofie en Arabische Taal en Cultuur is MD = r Round_and_format(py$vATCvsFIL), p = 0,001.
Het verschil tussen Geschiedenis en Arabische Taal en Cultuur is MD = r Round_and_format(py$vATCvsGSC), p = 0,001.
Het verschil tussen Geschiedenis en Filosofie is MD = r Round_and_format(py$vFILvsGSC), p = r Round_and_format(py$vpFILvsGSC).

5.9. Rapportage#

Een one-way ANOVA is uitgevoerd om te toetsen of de gemiddelde reistijd van de studenten per opleiding gelijk is aan elkaar. De opleidingen zijn: Arabische Taal en Cultuur (M~atc~ = r Round_and_format(py$vM_ATC), SD~atc~ = r Round_and_format(py$vSD_ATC)), Filosofie (M~fil~ = r Round_and_format(py$vM_FIL), SD~fil~ = r Round_and_format(py$vSD_FIL)) en Geschiedenis (M~gsc~ = r Round_and_format(py$vM_GSC), SD~fil~ = r Round_and_format(py$vSD_FIL); zie ook Tabel 1. De gemiddelde reistijd van de groepen verschilt significant van elkaar, F(r py$vDF1, r py$vDF2) = r Round_and_format(py$vF_waarde), p < 0,0001, η^2^ = r Round_and_format(py$Esq). De sterkte van het effect van de type opleiding op de reistijd is groot.

Opleiding

N

M

SD

Arabisch

r Round_and_format(py$vN_ATC)

r Round_and_format(py$vM_ATC)

r Round_and_format(py$vSD_ATC)

Filosofie

r Round_and_format(py$vN_FIL)

r Round_and_format(py$vM_FIL)

r Round_and_format(py$vSD_FIL)

Geschiedenis

r Round_and_format(py$vN_GSC)

r Round_and_format(py$vM_GSC)

r Round_and_format(py$vSD_GSC)

Tabel 1. Groepsgrootte, gemiddelde reistijd en standaarddeviatie per opleiding

Tukey’s HSD test is uitgevoerd om te toetsen welke van de drie gemiddelden significant verschillen. Filosofie en Arabische Taal en Cultuur verschillen significant (MD = r Round_and_format(py$vATCvsFIL), p < 0,01). Tussen Geschiedenis en Arabische Taal en Cultuur is een significant verschil (MD = r Round_and_format(py$vATCvsGSC), p < 0,01). Tussen Geschiedenis en Filosofie is geen significant verschil gevonden (MD = r Round_and_format(py$vFILvsGSC), p = r Round_and_format(py$vpFILvsGSC)).


1

Van Geloven, N. (25 mei 2016). One-way ANOVA. Wiki Statistiek Academisch Medisch Centrum.

2(1,2)

Universiteit van Amsterdam (8 juli 2014). One-way ANOVA. UvA Wiki Methodologiewinkel.

3(1,2)

Onderscheidend vermogen, in het Engels power genoemd, is de kans dat de nulhypothese verworpen wordt wanneer de alternatieve hypothese ‘waar’ is.

4

Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. London: Sage publications.

5

Van Geloven, N. (21 maart 2018). Kruskal Wallis. Wiki Statistiek Academisch Medisch Centrum.

6

De Kruskal-Wallis toets maakt een rangschikking van de data. Hierdoor is de toets verdelingsvrij en is normaliteit geen assumptie. Ook zijn uitbijters minder van invloed op het eindresultaat. Toch wordt er voor deze toets minder vaak gekozen, omdat bij het maken van een rankschikking de dataset informatie verliest. Als de data wel normaal verdeeld zijn, heeft de Kruskal-Wallis toets minder onderscheidend vermogen dan wanneer de one-way ANOVA uitgevoerd zou worden.

7

Laerd statistics (2018). Testing for Normality using SPSS Statistics. https://statistics.laerd.com/spss-tutorials/testing-for-normality-using-spss-statistics.php.

8

Universiteit van Amsterdam (14 juli 2014). Normaliteit. UvA Wiki Methodologiewinkel.

10

Wikipedia (7 september 2019). Analysis of variance. https://en.wikipedia.org/wiki/Analysis_of_variance.

19

Tabachnick, B.G. & Fidell, L.S. (2013). Using multivariate statistics. Sixth Edition, Pearson. Pagina 86.

11

Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. London: Sage publications.

12

Watson, P. (30 oktober 2019). Rules of thumb on magnitudes of effect sizes. MRC Cognition and Brain Sciences Unit Wiki.

13

Eta-squared. (2019 May 14). Retrieved from: https://en.wikiversity.org/wiki/Eta-squared.

14

Universiteit van Amsterdam (26 augustus 2014). MANOVA. UvA Wiki Methodologiewinkel.

15

Marshall, E., & Boggis, E. (2016). The statistics tutor’s quick guide to commonly used statistical tests. http://www.statstutor.ac.uk/resources/uploaded/tutorsquickguidetostatistics.pdf.

20

De breedte van de staven van het histogram wordt vaak automatisch bepaald, maar kan handmatig aangepast worden. Aangezien de breedte van de staven bepalend zijn voor de indruk die de visualisatie geeft, is het verstandig om hier goed op te letten.

16(1,2,3)

Outliers (13 augustus 2016). UvA Wiki Methodologiewinkel.

17(1,2)

Uitbijters kunnen bepalend zijn voor de uitkomst van toetsen. Bekijk of de uitbijters valide uitbijters zijn en niet een meetfout of op een andere manier incorrect verkregen data. Het weghalen van uitbijters kan de uitkomst ook vertekenen, daarom is het belangrijk om verwijderde uitbijters te melden in een rapport.

18

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.