--- title: "Categorische Data Analyse" output: html_document: code_download: true theme: cosmo toc: true toc_float: true highlight: tango number_sections: true --- ````{r} library(dplyr) ```` In 1916 kende de VS de eerste grote epidemie van polio. John Salk ontwikkelde begin jaren vijftig in het laboratorium een vaccin met veelbelovende resultaten. In dit experiment worden kinderen willekeurig toegewezen aan de controle (placebo behandeling) of vaccin behandeling nadat toestemming is gegeven door de ouders. We hebben dus twee behandelingen - Controle: vaccinatie met placebo ("control") - Behandeling: vaccinatie met het vaccin ("case") Merk op: - Om confounding te vermijden hebben de onderzoekers de behandeling gerandomiseerd bij kinderen waarvan de ouders de toestemming gaven tot vaccinatie. - In de studie werd ook bijgehouden wat de polio incidentie is bij de kinderen waarvan de ouders geen toestemming hebben gegeven tot vaccinatie ("none") Om een goeie controle te hebben, is in het experiment gebruik gemaakt van dubbele blindering: - De ouders wisten niet of hun kind het vaccin of het placebo kregen - De verzorgers en onderzoekers wisten niet welk kind het placebo kreeg en welk kind een placebo kreeg. Na één jaar bekeek men de polio status van het kind. # Doel Het primaire doel van het experiment is om te onderzoeken of het vaccin de incidentie van het krijgen van de polio ziekte vermindert. Het secundaire doel van de analyse is om na te gaan of er een verschil is tussen de drie groepen: gevaccineerden (cases), niet-gevaccineerden (control) en kinderen waarvan de ouders geen toestemming gaven voor vaccinatie (none). ## Data ```{r} salk<-data.frame(group=c("cases","control","noConcent"), treatment=factor(c("vaccine","placebo","none"), levels = c("placebo","none","vaccine")), total=c(200745, 201229, 338778), polio=c(57,142,157)) salk <- salk %>% mutate(noPolio = total - polio, incidencePM = round(polio/total*1e6,0)) salk ``` ```{r} salk #Placebo is onze referentie klasse voor gemakkelijke interpretatie levels(salk$treatment) ``` # Vraag 1: Filter eerst de data Voor het beantwoorden van de primaire onderzoeksvraag zouden we gebruik kunnen maken van de subset van de data die enkel de kinderen bevat waarvan de ouders de toestemming gaven tot vaccinatie. Filter de salk dataset en sla deze op in het object met naam `salkConsent` ```{r} salkConsent <- ... ``` # Vraag 2: Beschrijvende statistiek relatief risico We kunnen ook het relatief risico op polio schatten voor de gevaccineerde groep tegenover de placebo groep. Sla dit op in `RR` ```{r} proportion <- salkConsent %>% dplyr::select(c(polio, noPolio)) %>% as.matrix %>% prop.table(.,1) RR <- ... RR ``` Het risico op besmetting met polio is dus 59.8% lager in de gevaccineerde groep dan in de placebo groep. # Vraag 3: Beschrijvende statististiek odds ratio Bereken nu ook de odds_ratio. Sla dit op in `odds_ratio`. ```{r} salkConsent <- ... odds_ratio <- ... odds_ratio ``` De odds op besmetting voor de gevaccineerde groep zijn dus 59.8% minder dan de odds op besmetting bij de placebo groep. Merk op dat bij ziektes de weinig voorkomen de odds ratio en het relatief risico vaak heel dicht bij elkaar liggen. De beschrijvende statistieken geven aan dat er in de steekproef een lagere kans is op besmetting in de vaccinatiegroep dan in de placebo groep. We gaan dat nu formeel testen aan de hand van een Chi-kwadraat toets. # Vraag 4: Chi-kwadraat test - Nulhypotheses (meerkeuzevraag) 1. $H_0$: Er is geen verschil in polio incidentie tussen gevaccineerden en niet-gevaccineerden. 2. $H_0$: Er is geen lineair verband tussen de vaccinatiestatus en de polio incidentie. 3. $H_0$: Er is een verschil in polio incidentie tussen gevaccineerden en niet-gevaccineerden. 4. $H_0$: Er is een lineair verband tussen de vaccinatiestatus en de polio incidentie. # Vraag 5: Chi-kwadraat test -Alternatieve hypotheses (meerkeuzevraag) 1. $H_A$: Er is geen verschil in polio incidentie tussen gevaccineerden en niet-gevaccineerden. 2. $H_A$: Er is geen lineair verband tussen de vaccinatiestatus en de polio incidentie. 3. $H_A$: Er is een verschil in polio incidentie tussen gevaccineerden en niet-gevaccineerden. 4. $H_A$: Er is een lineair verband tussen de vaccinatiestatus en de polio incidentie. # Vraag 6: Assumpties van de chi-kwadraat test Toets op het 5%-significantieniveau of de incidentie van polio afhangt van de behandelingen. Hiertoe zullen we de $\chi^2$-test uitvoeren met continuïteitscorrectie. We zullen allereerst de voorwaarden nagaan van de $\chi^2$-test, om te checken of onze test wel geldig is. De voorwaarden voor deze test zijn: - onafhankelijke observaties - minstens 80% van de verwachte aantallen is groter dan of gelijk aan 5 De eerste voorwaarde is voldaan volgens het studiedesign. Voor de tweede voorwaarde kunnen we de verwachte waarden onder de nulhypothese gemakkelijk extraheren uit de output van de `chisq.test` functie, sla dit op in `salk_chisq`. Sla de verwachte waarden van de kruistabel onder de nulhypothese op onder de naam `salk_verwacht`. ```{r} salk_matrix <- salkConsent %>% dplyr::select(c(polio, noPolio)) rownames(salk_matrix) <- rownames(c("cases","control")) salk_chisq <- ... salk_verwacht <- ... salk_chisq salk_verwacht ``` # Vraag 7: Conclusie (meerkeuze) 1. We besluiten een extreem significant effect is (p-waarde $= 2.8e-09$) van de vaccinatie op de polio incidentie. 2. We besluiten dat er op het 5% significantieniveau een extreem significante onafhankelijkheid is tussen de behandelingen en de polio incidentie (p-waarde $= 2.8e-09$) 3. We besluiten dat er op het 5% significantieniveau een extreem significant lineair verband is tussen de vaccinatiestatus en de polio incidentie (p-waarde $= 2.8e-09$) # Vraag 8: leesopdracht Merk op dat 1. we het verband hier causaal kunnen interpreteren omdat we beschikken over een gerandomiseerde experimentele studie. 2. we de onderzoeksvraag ook hadden kunnen testen aan de hand van een logistische regressiemodel. In dat geval hadden we ook een odds ratio en een betrouwbaarheidsinterval op de odds ratio kunnen rapporteren wat ons toe zou laten om een meer informatieve conclusie te formuleren. We zullen de analyse op de 2 x 2 tabel niet herhalen met logistische regressie, gezien we logistische regressie sowieso illusteren voor de analyses van het secundaire doel waarbij we alle groepen met elkaar vergelijken: gevaccineerden (cases), niet-gevaccineerden (control) en kinderen waarvan de ouders geen toestemming gaven voor vaccinatie (none). # Vraag 9: Logistische regressie (leesopdracht) Het secundaire doel is om de polio incidentie tussen alle groepen met elkaar vergelijken: gevaccineerden (cases), niet-gevaccineerden (control) en kinderen waarvan de ouders geen toestemming gaven voor vaccinatie (none). We zouden de analyse opnieuw kunnen doen met een chi-kwadraat toets. Dat zou echter heel omslachtig zijn om een post-hoc analyse uit te voeren. Bovendien is het interessanter om odds ratio's en betrouwbaarheidsintervallen te kunnen rapporteren in de conclusie. Daarom maken we gebruik van logistische regressie. De data analyse met logistische regressie waarbij we een categorische response hebben, kan op twee manieren: - Op basis van binaire data waarbij we vertrekken van de observatie voor elk kind in de studie - Op basis van binomiale data waarbij we het aantal "successes (polio)" berekenen en het totaal aantal kinderen per groep (n). Dat laatste is computationeel interessanter en we hebben die data reeds voorhanden in het `salk` data object. Merk op dat je bij het modelleren van binomiale data in R een matrix mee moet geven voor de response waarin het aantal "successes" en "failures (niet-polio)" staan in respectievelijk de eerste en tweede kolom. # Vraag 10: Binomial Zoals eerder vermeld kunnen we dus ook een binomiaal model fitten, sla dit model op in `glm_salk`. De voorwaarde hiervoor is dat alle subjecten onafhankelijk zijn. Merk op dat je in R voor binomiale data als response een matrix van het aantal "successes" en "failures (niet-polio)" mee moet geven . ```{r} glm_salk <- glm(cbind(polio,noPolio)~...,data = ...,family=...) summary(glm_salk) ``` # Vraag 11: Binaire data (leesopdracht) Merk op dat we a.d.h.v. de binomiale analyse hetzelfde resultaat bekomen als met de analyse op basis van binaire data voor elk subject in de studie. Merk op - dat de dataset dan veel groter is en meer geheugen in zal nemen - dat de analyse computationeel minder efficient is, en, - dat we exact dezelfde resultaten bekwamen met de meer efficiente binomiale analyse! ````{r} salk_binary <- data.frame(polio_status = c(rep(1,57), rep(0,200688), rep(1,142), rep(0,201087), rep(1,157), rep(0,338621)), treatment = factor(c(rep("vaccine", 57+200688), rep("placebo", 142+201087), rep("none",157+338621)),levels = c("placebo","none","vaccine"))) dim(salk_binary) ```` ```{r} glm_salk_bernoulli <- glm(data = salk_binary, polio_status~treatment, family = binomial) summary(glm_salk_bernoulli) ``` # Vraag 12: Interpretatie parameters Welke interpretatie is correct 1. De log-odds op besmetting met polio in de placebo groep is gelijk aan -7.25567 2. De log-odds op besmetting met polio in de none groep is gelijk aan -0.42073 3. De log-odds op besmetting met polio in de vaccinatie groep is gelijk aan -0.91079 # Vraag 13: Interpretatie parameters Welke interpretatie is correct 1. De log-oddsratio op besmetting met polio tussen de vaccinatie en placebo groep is gelijk aan -7.25567 2. De log-oddsratio op besmetting met polio tussen de vaccinatie en placebo groep is gelijk aan -8.16646 3. De log-oddsratio op besmetting met polio tussen de vaccinatie en placebo groep is gelijk aan -0.91079 # Vraag 14: Anova We kunnen de anova functie gebruiken om te testen of er een effect is van de behandeling op de besmetting van polio. Merk op dat we de associatie hier weer causaal kunnen interpreteren gezien het een experimentele studie betreft! Gebruik hiervoor het binomiale glm object `glm_salk`. Sla de anova output op in `salk_anova`. ```{r} salk_anova <- ... ``` We zien dat de chi-kwadraat test aangeeft dat er een extreem significantie associatie is. We voeren dus post-hoc testen uit om na te gaan voor welke groepen de incidentie van polie verschillend is. ## Vraag 15: Post Hoc Voer de posthoc test uit en bereken betrouwbaarheidsintervallen op de log OR en op de odds ratio's. Gebruik hiervoor het binomiale glm object `glm_salk`. ```{r} library(multcomp) set.seed(0) posthoc <- glht(...) summary_posthoc <- ... summary_posthoc ``` ```{r} confint(summary_posthoc)$confint exp(confint(summary_posthoc)$confint) ``` # Vraag 16: Interpretatie Post Hoc testen Welke interpretatie is correct 1. De odds op besmetting voor de gevaccineerde groep is 38.7% minder dan de odds op besmetting bij de none groep 2. De odds op besmetting voor de gevaccineerde groep is 61.3% minder dan de odds op besmetting bij de none groep 3. De odds op besmetting voor de gevaccineerde groep is 49.0% minder dan de odds op besmetting bij de none groep # Vraag 17: Algemene conclusie (leesopdracht) - Er is een extreem significant effect van de behandeling op de incidentie van polio (p <<0.001). - De odds op besmetting voor de gevaccineerde groep is 59.77% minder dan de odds op besmetting bij de placebo groep (p<0.001, CI [41.98%, 72.11%]). - De odds op besmetting voor de gevaccineerde groep is 38.74% minder dan de odds op besmetting bij kinderen die geen toestemming kregen tot vaccinatie (p=0.004 , CI [12.08%, 57.31%]). - De odds op besmetting voor bij kinderen die geen toestemming kregen tot vaccinatie is 34.34% minder dan de odds op besmetting bij de placebo groep (p<0.001, CI [13.94%, 49.90%] ).