Multivariabele regressie
Auteur | dr. ir. N van Geloven | |
Co-Auteur | ||
auteurschap op deze site |
Bij een multivariabele regressie worden er meerdere voorspellers tegelijkertijd gerelateerd aan de uitkomstmaat. Vaak wordt een multivariabel regressiemodel gebruikt om te corrigeren voor mogelijke confounders.
Hoe interpreteer ik een verschillende uitkomst in een univariabel en multivariabel model?
Voor een van mijn studies heb ik een logistische regressie analyse gedaan. Mijn outcome is een dichotome variabele: 1 is verbetering 0 is geen verbetering. Vervolgens wil ik weten of leeftijd en bepaalde genetische afwijkingen wel of geen invloed op die outcome hebben. Als ik alleen leeftijd toevoeg aan mijn model komt deze als zeer zeer significant uit de bus. Als ik daar dan vervolgens de genetische variabelen aan toevoeg, verdwijnt de significantie van age als predictor (p=0.054) en zijn alleen de genetische variabelen significante predictoren. Mijn vraag is nu, hoe moet ik dit interpreteren?
Als een variabele in je multivariabele model niet significant is, dan betekent het dat deze geen significante associatie heeft met de uitkomstmaat, rekeninghoudend met het effect van de andere variabelen die op dat moment in je model zitten (dus conditioneel op die variabelen). Bij jou lijkt het er op dat het effect leeftijd gecorrigeerd voor de andere covariaten geen significant effect (bij een signniveau van 5%) heeft op de uitkomstmaat. Dit kan door twee zaken beïnvloed worden. Of de andere covariaten vagen het effect van leeftijd weg, of er is niet genoeg data om het effect van leeftijd als significant te bestempelen. Ook al is het conditionele (gecorrigeerd in een multivariabel model) verband even groot als het onconditionele (univariabel model), dan nog is vaak de precisie van het conditionele model minder groot (bredere betrouwbaarheidsintervallen), doordat men in een model meerdere verbanden schat en daardoor minder kracht heeft effecten aan te wijzen. Door niet alleen naar de p-waarde, maar ook naar het confidence interval te kijken, ben je iets minder afhankelijk van de harde (maar willekeurige) 5% grens.
Hoeveel variabelen mag ik meegeven aan mijn model?
Ik wil graag een multivariabele logistische analyse doen voor de risicofactoren voor obesitas binnen een patiëntengroep. Hoeveel variabelen (risicofactoren) mag ik testen op 893 patiënten?
Een vuistregel is dat bij logistische regressie het aantal parameters in een multivariabel model maximaal 5% tot 10% mag zijn van het minimum van het aantal mensen met en zonder obesitas (event) in je sample. Dus als je 300 met en 593 zonder obesitas hebt, mag je max 15 tot 30 parameters in je model opnemen. Ik spreek hier over parameters, niet over variabelen, omdat bijv. een categorische variabele met 3 categorieën 2 extra parameters in je model geeft. Bij logistische regressie heb je per parameter dus minimaal 10, maar het liefst ten minste 20 of 30, 'events' nodig. Bij minder 'events' kunnen de schattingen van de parameters misleidend zijn. Hierbij tel je het uitkomst dat het minst vaak voorkomt als event. Stel je hebt een onderzoek waarbij 285 van de 300 patiënten overlijdt en 15 niet. Dan zijn er 15 'events'. [1]
Bij een lineair regressie model luidt de vuistregel dat het aantal parameters max 5% tot 10% mag zijn van het totaal aantal gebruikte observaties mag zijn, oftewel minimaal 10 a 20 patiënten per variabele. Deze suggestie wordt oa gedaan in het boek van Harrel [2]. Wanneer je een meer nauwkeurige schatting van het benodigd aantal voorspellers wilt hebben, dan zul je een inschatting moeten doen van de verwachte sterkte van de voorspellers, zie ook de suggesties in twee andere posts op deze wiki:
Hoe kies ik welke variabelen ik meeneem in mijn multivariabele model?
Ik heb 90 patienten waarbij ik baseline parameters heb verzamled (9 lab parameters en 13 klinische parameters). Met een non-parameterische test heb ik gevonden dat 1 lab parameter en enkele klinische parameters verschillend zijn tussen beide uitkomst groepen (=diagnose wel/niet na 2 jaar). Nu wilde ik kijken welke parameters het beste voorspellend zijn voor uitkomst. Ik heb backward logistische regressie gedaan met de parameters die eerder een significant verschil lieten zien, maar ik weet niet zeker of dit de beste keuze is. Mogelijk moet het anders of moeten er meer parameters in of moeten parameters gecombineerd worden?
In jouw geval waarin je 90 patienten hebt en het effect van 21 (9+13) variabelen wilt testen, heb je niet genoeg patienten om al deze variabelen in 1 multivariabel model te testen (hetgeen natuurlijk het mooist zou zijn). Er moet dus een keuze gemaakt worden welke variabelen meegegeven gaan worden in een multivariabel model. Er bestaat geen consensus over de beste wijze om variabelen te selecteren, maar de keuze maak je altijd op basis van twee criteria:
- 1. Van welke variabelen verwacht ik een effect / welke variabelen vind ik relevant?
- 2. Voor welke variabelen geeft de data aan dat er een effect zou kunnen optreden (welke wijst het model als significant aan)?
Wat jij hebt gedaan is een soort univariabele preselectie van variabelen, waarbij je de variabelen eerst los test en degene die daar significant uitkomen meegeeft in een multivariabel model. Hoewel er methodologische nadelen te noemen zijn van deze aanpak, is het een veel gebruikte. Hierbij probeer je vraag 2 te beantwoorden. Je beschrijft echter dat je deze preselectie op basis van een niet-parametrische toets hebt gedaan, en dus niet op basis van hetzelfde (logistische?) model als waarin je de multivariabele analyse hebt gedaan. Als je hetzelfde model gebruikt, zou het de analyse consistenter maken. Verder is het zaak om bij de preselectie niet te streng te zijn met afwijzing. Een p-waarde van 0,10 of 0,20 zou hiervoor aangehouden kunnen worden. Je uiteindelijke conclusies zullen gebaseerd zijn op het multivariabele model waar je wel met een gebruikelijke strenge p-waarde kunt rekenen. Kijk ook nog eens kritisch naar de variabelen in het kader van vraag 1. Het combineren van variabelen ten slotte is ook een goede manier om het aantal te testen variabelen te verkleinen.
Ik heb backwards selection gebruikt - hoe interpreteer ik mijn resultaten?
Ik ben bezig met een onderzoek naar welke variabelen van invloed zijn op een tumorbiopsie-uitkomst (wel of geen diagnose). Hiervoor heb ik een aantal parameters (bijv. tumorgrootte, lokatie van de tumor, in welke mate de tumor uitstulpt etc) genomen waarvan ik verwacht dat ze van invloed zijn. Ik heb er een backward multiple regressie op los gelaten en krijg hier ook wel resultaten uit, maar weet niet zo goed hoe ik die moet interpreteren.
De output vertelt welke factoren in het uiteindelijke model samenhangen met de uitkomst. Je ziet in de ouput de p waarde en een richtingscoefficient B met standaard error (SE (B)). Deze richtingscoefficient geeft aan hoe groot het effect is. Als je stapsgewijs variabelen uit je model haalt die niet significant bijdragen aan je model (zoals jij dat hebt gedaan), hou je uiteindelijk de variabelen over die dus significant geassocieerd zijn met je uitkomst, terwijl je corrigeert voor de andere variabelen in je model. Als je nog verder zou willen gaan kun je er ook voor kiezen om forward te doen en kijken of dan dezelfde variabelen samenhangen met je uitkomst.
Hoe kan ik het best mijn variabelen selecteren, dmv handmatige selectie of met een automatische procedure?
Er zijn verschillende methode voor het doen van een multivariabele regressie. Ik wil een backwards selectiestrategie aanhouden. Wat is aan te raden? Een handmatig procebure met enter selection, waar bij je handmatig de variabele met de hoogtste p waarde verwijdert tot er een set variabelen overblijft die allemaal significant zijn, of een automatische backward procedure?
Ik adviseer de handmatige manier, omdat je daarmee zelf de stappen in de hand hebt, je data leert kennen, en kunt bijsturen waar nodig. Doorgaans wil je niet dat belangrijke selecties door een ‘machine’ gebeuren, je wilt kunnen bemerken daar waar juist zeer relevant geachte variabelen eruit gaan en ook daar waar mogelijk sprake is van colineariteit etc.
De enige reden om voor automatisch te gaan is dat daarbij vaak ook na exclusie van een variabele de set van reeds afgevallen voorspellers opnieuw een voor een aangeboden wordt aan het kleinere model om te zien of ze nu wel sign bijdragen. Uiteraard kun je dit ook handmatig doen, maar dat is wat veel werk. Een mooie combi is het eerst handmatig te doen en daarna ter controle nog eens automatisch.
Hoe rapporteer ik de resultaten van mijn multivariabele model?
Voor een vragenlijstonderzoek betreffende kwaliteit van leven heb ik in de analyse lineaire regressie gedaan met forward selection. In het uiteindelijke model zijn er variabelen met een niet-significante p-waarde. Als je een tabel maakt van de variabelen in het uiteindelijke model, zouden jullie die dan sorteren op grootte van de beta, op significantie van de p-waarde of op grootte van de verklaarde variantie? Of zouden jullie gewoon de output van SPSS overnemen?
Er zijn geen vaste regels voor de volgorde waarin je variabelen in een tabel zet. Er zou bijvoorbeeld hierarchie in de variabelen kunnen zitten, of chronologische volgorde (bijvoorbeeld eerst leeftijd en geslacht en pas later de invloed van roken oid). Het is wel helder om alle variabelen van je uiteindelijke model (dus ook niet significante) te laten zien, dan kan een lezer zien naast welke andere voorspellers de variabelen beoordeeld zijn.
Hoe zorg ik voor een heldere en gebruiksvriendelijke presentatie van mijn multivariabele model?
Dit artikel van Sullivan et al. [3] kan je daarbij wellicht helpen. Daarin wordt getoond hoe je de resultaten van je regressiemodel kunt vertalen in risicoscores.
Hoe selecteer ik mbv univariabele regressie factoren voor in een multivariabele regressie?
Wij analyseren de verschillen in uitkomst (success rate) tussen twee operaties. We hebben eerst een aantal factoren los getest op invloed op success rate. Daarna de significante factoren overgebracht naar een multivariabele logistische regressie. Is dit een goede methodiek?
Bij dergelijke 'univariabele preselectie' is het methodologisch te prefereren om niet alleen variabelen die significant zijn in de univariabele analyse door te schuiven naar multivariabele, maar daarbij een meer coulante p-waarde aan te houden (bijv variabelen met univariabele p<0.20 of p<0.30).
Wanneer is het noodzakelijk om leeftijd en geslacht als covariaat mee te nemen in mijn analyses?
Ik doe oa. een independent sample t-test om het verschil op een afhankelijke variabele (continu) te bekijken tussen twee groepen en Pearson Chi-Square analyses om het verschil op een afhankelijke variabele (dichotoom) te bekijken tussen twee groepen.
Nu heb ik wel bekeken of de twee groepen significant van elkaar verschillen qua leeftijd en geslacht. Dit is niet zo en om deze reden heb ik leeftijd en geslacht niet meegenomen in mijn verdere analyses. Is dit zo voldoende gegrond of moet je ook bekijken hoe het zit met de relatie tussen geslacht/leeftijd en de afhankelijke variabele?
Uitgangspunt van meenemen zijn de volgende: 1. Als er een verschil in leeftijd/geslacht is in de twee groepen & leeftijd en geslacht hebben wel invloed op de uitkomstmaat, dan moet je ervoor corrigeren, want dan kan het tot bias leiden. 2. Als er een verschil in leeftijd/geslacht is in de twee groepen & leeftijd en geslacht hebben geen invloed op de uitkomstmaat, dan zal meenemen van de variabelen niet tot andere resultaten leiden en kun je dat dus net zo goed niet doen. 3. Als er geen verschil in leeftijd/geslacht is in de twee groepen & leeftijd en geslacht hebben geen invloed op de uitkomstmaat, dan zal meenemen van de variabelen niet tot andere resultaten leiden en kun je dat dus net zo goed niet doen. 4. Als er geen verschil in leeftijd/geslacht is in de twee groepen & leeftijd en geslacht hebben wel invloed op de uitkomstmaat, dan zal meenemen van de variabelen niet tot andere schattingen leiden voor de groepsvariabele, maar kan er wel een sterker model komen door rekening te houden met de extra factoren. Het significantieniveau van de groepsvariabele kan hierdoor wel veranderen, daarom wil je de variabelen het liefst wel meenemen in het model.
Of de variabelen verschillen over de groepsvariabele kun je het beste in je eigen data bekijken (dit hoeft niet een significant verschil te zijn, dus een verschil is er al snel, in geval van een gerandomiseerde groepsverdeling kun je er meestal vanuit gaan dat er geen verschil is). Of er reden is om aan te nemen dat leeftijd en geslacht de afhankelijke variabele(n) beinvloeden, kun je het best op basis van (externe) kennis beoordelen. Als je goede redenen hebt om aan te nemen dat dat zo is, dan zou je ze (sowieso) mee kunnen nemen in een multivariabel model. Het zou namelijk kunnen dat die invloed er wel is, maar dat je die in jouw eigen data toevallig niet terugvindt.
Voorwaarde voor meenemen van extra covariaten is wel dat je voldoende data hebt om zo'n extra term in het model op te kunnen nemen (qua power). Als je niet voldoende ruimte hebt in de data, dan zou je de variabelen leeftijd en geslacht minder 'graag' willen meenemen. Je kunt dan een 'voorselectie' doen en in je eigen data kijken of er reden is om ze mee te nemen. Bijvoorbeeld door toch weer naar de invloed in je eigen data te kijken: 1. kijken of ze verschillen over de 2 groepen (zoals jij gedaan hebt) 2. kijken of ze (univariabel) invloed hebben op de uitkomstmaat. Zie hierbij ook de voorgaande vraag over preselectie.
Hoe kies ik welke variabelen ik in mijn model moet meenemen?
Ik heb een databestand met een heleboel variabelen. Ik ben op zoek naar een zo eenvoudig mogelijk (en dus makkelijk toepasbaar) voorspellend model. Hoe kies ik welke variabelen ik in mijn model moet meenemen?
Er zijn veel verschillende manieren om een multivariabele model te bouwen. We geven hier een voorbeeld van een eenvoudige procedure. Deze procedure is toepasbaar op verschillende vormen van regressie analyse.
- Stap 1. Voer een reeks regressie analyses uit, waarbij je steeds een verklarende variabel tegelijk meeneemt. Noteer bij elke analyse de p-waarde van de verklarende variabel in de regressie analyse.
- Stap 2. Neem alle variabelen die in stap 1 een p-waarde kleiner dan 0.3 hebben. Voer een regressie analyse met deze variabelen allemaal tegelijk.
- Stap 3. Verwijder de variabel uit stap 2 met de grootste p-waarde en voer de regressie analyse opnieuw uit.
- Stap 4. Herhaal stap 3 totdat alle variabelen die nog in het model zijn een p-waarde kleiner dan 0.05 hebben.
- Stap 5. Als alle variabelen een p-waarde kleiner dan 0.05 hebben, heb je je uiteindelijke model. Je kunt dit model verder in je manuscript beschrijven.
Er is overlap tussen twee van onze voorspellers, mogen deze samen in een multivariabel model?
We zijn op zoek naar voorspellende factoren voor het optreden van hepatitis A. We hebben verschillende factoren univariaat getoetst (leeftijd, geslacht, comorbiditeit, etc). Nu vonden we in de univariate analyse dat "man" vs. "vrouw" positief geassocieerd was met de uitkomstmaat en dat "comorbiditeit" negatief geassocieerd was (getoetst met een Chi-kwadraat toets). In de groep "zonder comborbiditeit" zitten veel mannen en in de groep "met comorbiditeit" zitten veel vrouwen, er is dus enige overlap in de groepen. Is het mogelijk om beide voorspellende factoren in een multivariabele logistische regressie te stoppen, of moeten wij daarvoor eerst bv. de mate van overlap toetsen omdat het model anders instabiel wordt?
De mate van overlap tussen de twee voorspellers mag inderdaad niet te hoog zijn, dan zal het model zoals je zegt instabiel worden. Dat wordt het probleem van colineariteit genoemd. Het is goed om daar eerst naar te kijken, al zijn er geen harde grenzen aan te geven voor wanneer de overlap te groot is. Wat wel eens gehanteerd wordt is dat de correlatiecoefficient tussen de twee voorspellers niet hoger mag zijn dan 0.8. Wanneer het model instabiel wordt, zul je dat zien aan zeer grote standaard errors van de regressiecoefficienten. Je kunt in SPSS ook handig gebruik maken van de optie 'Colinearity Diagnostics' te vinden onder 'Statistics' bij de lineare regressie procedure. Je doet dan net alsof je een lineaire regressie wilt doen, vraagt om deze diagnostics en kijkt dan in de output alleen naar dat gedeelte om te beoordelen of de voorspellers niet te veel overlap bevatten.
Hoe moet ik corrigeren voor baseline waardes?
Wij doen een onderzoek naar het voorspellers van fysiek functioneren na totale heup prothesen. Onze uitkomst maat van fysiek functioneren, HOOS (Hip disability and Osteoarthristis Outcome Score), drukt de functie uit op een schaal van 0-100 gemeten op de baseline en na 2 jaar. De volgende regressies met als voorspeller leeftijd en als afhankelijke variabele de HOOS zijn gedaan.
- 1: uitkomst HOOS absolute uitkomst op 2 jaar, predictoren leeftijd + baseline HOOS, p-waarde voor leeftijd: 0.503
- 2: uitkomst HOOS verschil score tussen 2 jaar en baseline, predictoren leeftijd + baseline HOOS, p-waarde voor leeftijd: 0.503
- 3. uitkomst HOOS verschil score tussen 2 jaar en baseline, predictor leeftijd (ongecorrigeerd), p-waarde voor leeftijd: 0.048
Zoals u ziet is er een verschil in significantie afhankelijk van de correctie voor baseline. Welke uitkomst moet ik gebruiken?
Een waarschijnlijke verklaring van jouw uitkomsten is dat de correlatie tussen leeftijd en HOOS score op baseline de schijnbare significantie in model 3 veroorzaakt. In het algemeen is het aan te raden de baseline score als covariaat mee te geven in het model, zie ook de EMA Guideline on adjustment for baseline covariates (draft April 2013), paragraaf 4.2.6, daar staat ook de te verwachten overeenstemming van model 1 en 2 genoemd.
Referenties
-
Regression Modeling Strategies with Applications to Linear Models, Logistic Regression and Survival Analysis. Frank E. Harrell, Jun, Springer-Verlag, New York, 2001. No. of pages: 568. ISBN 0-387-95232-2.
- Error fetching PMID 15122742:
Aanvullende bronnen
- Everything You Always Wanted to Know About Evaluating Prediction Models (But Were Too Afraid to Ask) Andrew J. Vickers and Angel M. Cronin, Urology Volume 76, Issue 6, December 2010, Pages 1298-1301.
Klaar met lezen? Je kunt naar het OVERZICHT van alle statistische onderwerpen op deze wiki gaan of naar de pagina KEUZE TOETS voor hulp bij het uitzoeken van een geschikte toets of analyse. Wil je meer leren over biostatistiek? Volg dan de AMC e-learning Practical Biostatistics. Vind je op deze pagina's iets dat niet klopt? Werkt een link niet? Of wil je bijdragen aan de wiki? Neem dan contact met ons op.
De wiki biostatistiek is een initiatief van de voormalige helpdesk statistiek van Amsterdam UMC, locatie AMC. Medewerkers van Amsterdam UMC kunnen via intranet ondersteuning aanvragen.