Faculty of Health Sciences Logistisk regression: Kvantitative forklarende variable Susanne Rosthøj Biostatistisk Afdeling Institut for Folkesundhedsvidenskab Københavns Universitet sr@biostat.ku.dk
Sammenhæng mellem alder og CHD CHD som respons Y i = { 1 hvis i får CHD 0 hvis i ikke får CHD. Vi så at risikoen for CHD stiger med alderen: ( ) pi ln = 1 p i a hvis i er 45 48 år a + b 1 hvis i er 49 52 år a + b 2 hvis i er 53 56 år a + b 3 hvis i er 57 62 år. b 1 = ln(or)(1 vs. 0) = 0.21 OR 1 = exp(b 1 ) = 1.24 b 2 = ln(or)(2 vs. 0) = 0.42 OR 2 = exp(b 2 ) = 1.52 b 3 = ln(or)(3 vs. 0) = 0.86 OR 3 = exp(b 3 ) = 2.36 2 / 16
Grupperet alder som kvantitativ variabel Da aldersvariablen er ordinal kan vi interessere os for den lineære model: ( ) pi ln 1 p i = a + b AlderGrp i a AlderGrp i = 0 a + b AlderGrp = i = 1 a + 2b AlderGrp i = 2 a + 3b AlderGrp i = 3 Her er b = ln(or) øgningen / reduktionen i log-odds per enhed af den forklarende variabel. 3 / 16
Kvantitative forklarende variable i SAS I PROC GENMOD inkluderes AlderGrp i model-linien som forklarende variabel, men ikke som en CLASS-variabel: proc genmod data=framing descending; model chdny=aldergrp / dist=bin type3; estimate age odds ratio AlderGrp 1 / exp; run; 4 / 16
Output fra PROC GENMOD I output aflæses estimatet for alderseffekten b = ln(or) = 0.29, SE = 0.06 OR = exp(b) = 1.33 (95%-CI (1.18;1.5)) Tests for effekt af grupperet alder: Wald test: Chi-square = 21.29, df = 1, P < 0.0001 Likelihood-Ratio test (LR): Chi-square = 21.74, df = 1, P < 0.0001 (pga. type3-option inkluderet i model-statement). Disse er trend tests, tager lineariteten for givet og tester om hældningen b er 0. 5 / 16
Grafisk vurdering af modellen Plot log-odds mod alderskategorierne: log odds 1.8 1.6 1.4 1.2 1.0 45 48 49 52 53 56 57 62 Grupperet alder 6 / 16
Et formelt test for linearitet Vi kan undersøge om modellen hvor grupperet alder AlderGrp indgår lineært er rimelig ved at sammenligne de to modeller (1) AlderGrp som CLASS-variabel (2) AlderGrp som kvantitativ variabel. Dette kan gøres ved at fitte begge modeller i SAS PROC GENMOD og bestemme 2 gange forskellen i Log likelihood. Man finder: Log likelihood model (1): -664.7540 Log likelihood model (2): -665.0824 2*Differens 0.66 Differensen - likelihood ratio testet - er χ 2 -fordelt med 3-1=2 frihedsgrader idet effekten af AlderGrp i model (1) estimeres med 3 parametre og effekten af AlderGrp i model (2) estimeres med 1 parameter. Dermed fås P = 0.72. 7 / 16
Likelihood Ratio test Testet, hvor man sammenligner loglikelihoods for to modeller, ved 2 ( loglikelihood(model (1)) - loglikelihood (model (2)) ) 0 er et Likelihood Ratio (LR) test. Det kan udføres når den ene model er en forsimpling af den anden. Det følger en χ 2 -fordeling. Antallet af frihedsgrader svarer til forskellen i antallet af estimerede parametre i de to modeller. Se evt. kapitel 28 i K & S for en udførlig gennemgang. 8 / 16
En mulig model for relationen mellem alder og CHD Risikoen / odds stiger med alderen. Sammenhængen er lineær hvis ( ) pi ln = a + b AGE i 1 p i Man får b = 0.066, SE=0.015. Fortolkning: For hvert år stiger OR for CHD med en faktor exp(b) = 1.07. Er dette en rimelig model? Ret linie? 9 / 16
Test for linearitet ved kvadratled Bemærk at vi ikke kan teste lineariteten af den kvantitative (oprindelige) aldersvariabel mod modellen med grupperet alder. I stedet kan vi definere en ny variabel AGESQ = AGE AGE; i et DATA-step og inkludere dette kvadratled i modellen indeholdende AGE og teste hvorvidt kvadratleddet kan udelades: Estimate Standard Wald P (= ln(or)) Error Chi-Square AGE 0.0577 0.3424 0.03 0.87 AGESQ 0.0001 0.0032 0.00 0.98 Konklusion: Den lineære model indeholdende AGE alene er rimelig. 10 / 16
Inklusion af kvantitive forklarende variable Ved at inkludere kvantitative variable lineært opnår vi at undgå at skulle vælge (tilfældigt valgte) inddelinger antallet af parametre i modellen reduceres modellen bliver biologisk fortolkelig og overordnet bliver modellen derfor simplere, men hældningen kan være sværere at fortolke end en OR målt i forhold til en referencekategori. 11 / 16
Plots i SAS Det er svært at lave pæne plots i SAS! Plots kan laves vha. proceduren PROC GPLOT. Se eventuelt afsnit 4.3 i Introduktion til SAS af Inge Henningsen på http://www.math.ku.dk/ michael/sast2/sas1til4.pdf Proceduren skal kaldes på et datasæt. Til plottet på slide 5 skal data først defineres: 12 / 16
DATA tilplot; INPUT AlderGrp b; CARDS; 0 -.8605 1 -.6484 2 -.4407 3 0 ; RUN; DATA tilplot; SET tilplot; a=-.9378; logodds=a+b; RUN; PROC PRINT; RUN; 13 / 16
Plots i SAS Plottet kan nu (uden linie) genereres ved PROC GPLOT DATA=tilPlot; PLOT logodds*aldergrp; RUN; eller med ekstra options SYMBOL1 C=RED V=DOT; PROC GPLOT DATA=tilPlot; PLOT logodds*aldergrp=1 / FRAME HAXIS -1 TO 4 BY 1; RUN; 14 / 16
SAS-øvelser. De følgende spørgsmål drejer sig igen om Framingham studiet. 1. Konstruér en variabel svarende til en passende inddeling af blodtryk (SBP) (f.eks. delt i 4 grupper ved 120, 140 og 180) og estimer i en logistisk regressionsanalyse effekten af denne variabel justeret for køn og alder. Benyt gerne alder som kvantitativ. 2. Undersøg om blodtryk kan indgå lineært i modellen, dvs. test for linearitet: a. Lav et grafisk check af linearitet af grupperet SBP 15 / 16
b. Lav et formelt test af linearitet af grupperet SBP. Antag at vi har beregnet en LLR-værdi på 1.2. Med 3 frihedsgrader kan man få SAS til at beregne p-værdien på følgende måde: data p; p=1-probchi(1.2,3); run; proc print data=p; title p-værdi for linearitetstest ; run; c. Lav et test for linearitet af den oprindelige SBP-variabel. 16 / 16