- H0: mu1 - mu2 = 0 (reactietijd is hetzelfde in beide groepen)
- H1: mu1 - mu2 < 0 (reactietijd is significant hoger in de behandelingsgroep vergeleken met de controlegroep)
##The following chart types may be appropriate for this type of data:
- grouped boxplot or violin plot
- grouped density (kde-)plot
- bar chart with error bars (e.g. standard deviation, only for data that is normally distributed)
tips = sns.load_dataset("tips")
sns.boxplot(data=tips, x='tip', y='sex');
sns.violinplot(data=tips, x='tip', y='sex');
sns.kdeplot(data=tips, hue='sex', x='tip');
#altijd zorgen bij barchart voor ERRORBAR!!!
sns.barplot(data=tips, x='sex', y='tip', errorbar='sd');
# bij grote overlap van de error bars op de bar, geeft vaaj dat dat er geen tot weinig association is tussen de variabelen
- vergelijken van het gemiddelde van 2 groepen (niet perse even groot)
- gemiddelde van 2 verschillende groepen
- Groep met placebo en groep met medicijn
# alternative = 'less' -> one-tailed test
# `alternative='less'` indicates that we want to test for the alternative hypothesis that the mean of the control group is less than the mean of the treatment group.
# alternative = 'two-sided' -> two-tailed test
# alternative = 'greater' -> one-tailed test
control = np.array([91, 87, 99, 77, 88, 91])
treatment = np.array([101, 110, 103, 93, 99, 104])
# Bepaal alpha (significantieniveau)
alpha = 0.05
sns.boxplot(
data=pd.DataFrame({'control': control, 'treatment': treatment}),
orient='h');
t_statistic, p_value = stats.ttest_ind(a=control, b=treatment,
alternative='less', equal_var=False)
print("t-statistic:", t_statistic)
print("p-value:", p_value)
# Interpreteer het resultaat
# of met array
#stats.ttest_ind(alternative='two-sided',
# a=tips.tip[tips.sex == 'Male'],
# b=tips.tip[tips.sex == 'Female']);
# Interpreteer het resultaat
if p_value < alpha:
print("Verwerp de nulhypothese (H0). Er is voldoende bewijs om de alternatieve hypothese (H1) te ondersteunen.")
else:
print("Verwerp de nulhypothese (H0) niet. Er is onvoldoende bewijs om de alternatieve hypothese (H1) te ondersteunen.")
- vergelijken van dingen op dezelfde groep bv
- Voorbeelden
- Voorbeeld zelfde auto met verschillende soorten benzine
**Before and after measurements:** Gepaarde steekproeven worden vaak gebruikt wanneer je de metingen van dezelfde variabele wilt vergelijken vóór en na een behandeling of interventie. Bijvoorbeeld, je zou de bloeddruk van individuen kunnen meten vóór en na het ondergaan van een specifieke behandeling om te zien of er een significante verandering is.
**Matched pairs:** Analyse van gepaarde steekproeven is nuttig wanneer je een natuurlijke koppeling of matching hebt tussen de observaties in de twee datasets. Bijvoorbeeld, in een studie die de effectiviteit van twee verschillende medicijnen vergelijkt, zou je elk deelnemer kunnen koppelen aan een andere deelnemer met vergelijkbare kenmerken, zoals leeftijd, geslacht of ziekte-severiteit. Vervolgens zou je de uitkomsten voor elk paar onder de verschillende medicijncondities meten.
**Repeated measures:** PGepaarde steekproeven kunnen worden gebruikt wanneer je meerdere metingen hebt die op hetzelfde onderwerp zijn genomen over tijd of onder verschillende omstandigheden. Dit kan variabelen omvatten zoals reactietijd, prestatiescores of pijnniveaus vóór en na verschillende behandelingen binnen dezelfde individuen.
# Measurements:
before = np.array([16, 20, 21, 22, 23, 22, 27, 25, 27, 28])
after = np.array([19, 22, 24, 24, 25, 25, 26, 26, 28, 32])
# Visualization
sns.boxplot(
data={'before': before, 'after': after},
orient='h');
# Paired t-test with ttest_rel() -> vergeet niet alternative='less' of 'greater' of 'two-sided'
stats.ttest_rel(before, after, alternative='less')
Effect size is another metric to express the magnitude of the difference between two groups. Several definitions of effect size exist, but one of the most commonly used is Cohen's $d$.
# a= before en b = after in dit geval
def cohen_d(a, b):
na = len(a)
nb = len(b)
pooled_sd = np.sqrt( ((na-1) * a.std(ddof=1)**2 +
(nb-1) * b.std(ddof=1)**2) / (na + nb - 2) )
return (b.mean() - a.mean()) / pooled_sd
cohen_d(before, after)