Binaire data, in HCO17 hebben we al naar glm() functies gekeken met binaire data. Hierbij heeft de
data een waarde van 0 of 1 en niks anders.
Proportie/percentage data, wanneer je met proporties te maken hebt, kan je data tussen 0 en 1
liggen. Dit is dus weer net wat anders dan binaire data. Verder worden proporties en percentages
nogal eens door elkaar gehaald doordat een percentage eigenlijk een proportie keer 100 is. Bij
proportie/percentage data weet je altijd hoe vaak iets gebeurt is én hoe vaak het niet gebeurt is.
Verder bestaat je data uit integers (hele getallen). Verder is het voor R noodzakelijk om je respons
variabele in 2 kolommen in te voeren, zodat R snapt dat je naar proportie data aan het kijken bent en
niet naar binaire data. Je gebruikt dan 1 kolom om te specificeren hoe vaak iets gebeurt is (p) en de
andere voor hoe vaak het niet gebeurt is (q=1-p). Tot slot gebruik je voor proporties de binomiaal
verdeling doordat je data begrensd is van 0 tot 1 en de residuen dus niet normaal verdeeld zijn.
Twee stappen glm(), bij een glm() voer je eigenlijk 2 stappen uit:
- Link functie, maakt het mogelijk de voorspellingen (fitted values) op een lineaire schaal te
modelleren. In het geval van proporties gebruik je de logit link.
- Family functie, maakt het mogelijk ongelijke variantie te modelleren. In het geval van
proportie data gebruik je de binomiaal verdeling als familie.
Logistic regression, bij proportie data heb je met een
logistische regressie te maken en deze is niet lineair op
de originele schaal. Dat komt doordat die afvlakt bij de
brengezing van 0 en 1. Doordat deze relatie niet lineair
is, kan je ook geen helling bepalen. Door link = ’logit’
in je glm() te zetten, kan je de sigmoïdale logistische
relatie omzetten in een lineaire relatie zonder de data
te transformeren. Het enige wat je hierbij doet is de
schaal veranderen naar een log schaal. Deze schaal is
echter moeilijk te interpreteren dus om je gefitte data te kunnen interpreteren, zal je weer moeten
terug transformeren.
Normaal verdeling, je kan je afvragen
waarom je dan niet alleen een logit
transformatie toepast en de resulterende
logits analyseert met een normaal verdeling.
Dat mag echter niet, omdat je variantie niet
constant. Deze is namelijk groter bij
intermediaire waardes dan richting de
extremen (0 en 1). In plaats van de normaal
verdeling gebruik je dan ook de binomiaal
verdeling. Rechts zie je met een 95% BHI
(blauw) aangegeven, waarom de variantie niet homogeen verdeeld is. Bij een proportie waarde van 1
kan je geen grotere waardes hebben, maar enkel lagere waardes en het BHI ligt er dus compleet
onder, terwijl dat bij 0 andersom is.
2-staps proportie analyse met glm(), gaat dus als volgt:
1. Modelleer de voorspellingen en gebruik daarbij logit om de proporties (integers tussen 0 en
1) tot een lineaire regressie (continue tussen -∞ en +∞) transformeren.
2. Modelleer de variantie (errors) met gebruik van de binomiaal verdeling om er rekening mee
te houden dat de variantie maximaal is bij de intermediaire proporties (0.5) en afneemt naar
de extremen (0 en 1).
Logistische regressie met proporties, je hebt de opdracht gekregen om van een insecticide te
onderzoeken bij welke dosis 50% van de insecten doodgaat (d50). Op de volgende pagina zie je je
data weergegeven. Bij een dosis van 1% heb je dus 0 dode insecten op een totaal van 376, terwijl je
, bij een dosis van 97% alle insecten hebt gedood van de
1049 die er waren. Je kan een kolom maken met de
proporties door de volgende regel aan code in te voeren:
> bioassay$p = bioassay$dead/bioassay$batch
Deze proporties kan je dan gebruiken om een grafiek te
plotten van je proporties zodat je een idee hebt van je
data. Nu je duidelijk gevisualiseerd hebt dat de proportie
aan dode insecten toeneemt met de dosis, kan je R aan
het werken zetten. Zoals eerder vermeld is, heeft R
echter niks aan proporties, want hij ‘snapt’ niet wat die ermee moet en zal
het als binaire data beschouwen.
Logistische proportie regressie in R, als je te maken hebt met de volgende variabelen:
- y: proportie respons: een gecombineerde variabele van integers met het aantal succes en het
aantal falen.
- x: continue explanatory variabele
Voer je de glm() als volgt in:
𝑔𝑙𝑚(𝑐𝑏𝑖𝑛𝑑(𝑠𝑢𝑐𝑒𝑠𝑠, 𝑓𝑎𝑖𝑙𝑢𝑟𝑒)~𝑥, 𝑓𝑎𝑚𝑖𝑙𝑦 = 𝑏𝑖𝑛𝑜𝑚𝑖𝑎𝑙(𝑙𝑖𝑛𝑘 =′ 𝑙𝑜𝑔𝑖𝑡 ′ ))
De logit link wordt by default al gebruikt als link functie voor de binomiaal verdeling dus je zou het
niet perse te hoeven coderen. Verder zie je dat de respons variabele als twee kolommen invoert
zodat R weet dat je hier met proporties te maken hebt en R per proportie ook de totale
groepsgrootte weet, want zoals bij de data te zien is, verschilt deze per dosis.
Output logistische proportie regressie R, rechts zie je de
anova en summary tabel van je glm() functie. In de anova
tabel zie je dat je met een significante regressie te maken
hebt. Uit de summary tabel kan je dan de magnitude,
richting en precisie van deze regressie halen, maar houd er
wel rekening mee dat de summary tabel in logit schaal is
gegeven en je deze dus nog terug moet transformeren.
Aanname checken, voordat je de data uit je summary
tabel gaat interpreteren, moet je eerst kijken of er wel aan
de aannames voldaan wordt. Uit het vorige HCO is
gebleken dat de deviance* ongeveer een chi-square
verdeling volgt. Deze verdeling wordt gekarakteriseerd
door 1 parameter: het aantal vrijheidsgraden. Hierbij is
het gemiddelde van de verdeling gelijk aan het aantal df en is de variantie gelijk aan
2*df. Een van de aannames van GLMs is dat de residual variance ongeveer gelijk is
aan het aantal vrijheidsgraden. De ratio van residual deviance tot het aantal
vrijheidsgraden, ook wel de dispersie parameter genoemd, moet dus ongeveer
gelijk zijn aan 1.
*Is het verschil tussen je nul model en je proposed model (zie HCO17.)
Dispersie parameter, de summary tabel die hierboven te zien is, is eigenlijk niet
compleet. Rechts is de volledige summary tabel
te zien en hiermee kan je de dispersie
parameter berekenen. Je ziet namelijk
aangegeven hoeveel residual deviance er is en
hoeveel vrijheidsgraden daarbij horen. De chi-
square distributie gaat uit van een dispersie
parameter van 1, maar in dit geval heb je een
dispersie parameter van 1.9. Je hebt hier dus te
maken met overdispersion.
Overdispersion, wanneer de residual deviance
groter is dan het aantal vrijheidsgraden en je