12.01.2015 Views

Logistisk regression

Logistisk regression

Logistisk regression

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

<strong>Logistisk</strong> <strong>regression</strong><br />

Susanne Rosthøj<br />

Biostatistisk Afdeling<br />

Institut for Folkesundhedsvidenskab<br />

Københavns Universitet<br />

sr@biostat.ku.dk<br />

Kursushjemmeside:<br />

www.biostat.ku.dk/~sr/forskningsaar/<strong>regression</strong>2012/<br />

29. maj 2012


u n i v e r s i t y o f c o p e n h a g e n<br />

Dagens program<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

• Chi-i-anden (χ 2 )-testet<br />

• Sandsynligheder, odds og odds-ratio<br />

• <strong>Logistisk</strong> <strong>regression</strong>:<br />

• En binær forklarende variabel<br />

• En kategorisk forklarende variabel<br />

• To binære forklarende variable<br />

• En kvantitativ forklarende variabel<br />

• Flere forklarende variable<br />

• Prædiktion<br />

Kirkwood & Sterne: Kapitel 14, 16, 17, 19 og 20.<br />

2 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Regressionsanalyse<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Formålet med en <strong>regression</strong>sanalyse er at beskrive fordelingen af én<br />

responsvariabel som en funktion af en eller flere forklarende variable<br />

Typen af respons-variablen bestemmer <strong>regression</strong>smodellen<br />

Respons<br />

Kvantitativ (kontinuert)<br />

Binær (0/1)<br />

Levetid (> 0, censurering)<br />

Model<br />

lineær <strong>regression</strong><br />

logistisk <strong>regression</strong><br />

Cox (Poisson) <strong>regression</strong>.<br />

og fortolkningen af effekten af en forklarende variabel<br />

Regressionsmodel<br />

Lineær<br />

<strong>Logistisk</strong><br />

Cox (Poisson)<br />

Effect<br />

forskelle mellem middelværdier<br />

odds-ratio (OR), ln(OR)<br />

rate / hazard ratio, ln(rate ratio).<br />

3 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

<strong>Logistisk</strong> <strong>regression</strong><br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Analyse af en binær responsvariabel, e.g.<br />

• syg/rask, død/levende, højt/lavt blodtryk, etc.<br />

ud fra en eller flere forklarende variable<br />

• behandling, rygning, vægt, alder, køn, etc.<br />

For individ i observerer vi:<br />

Responsen<br />

{<br />

1 hvis i er syg<br />

Y i =<br />

0 hvis i ikke er syg<br />

og forklarende variable: x i1 , . . . , x ip .<br />

Simpel logistisk <strong>regression</strong>: Én forklarende variabel.<br />

Multipel logistisk <strong>regression</strong>: Flere forklarende variable.<br />

4 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Eksempler<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Hvordan afhænger risikoen for hjertesygdom af køn, alder, rygning og<br />

blodtryk<br />

Hvordan afhænger sandsynligheden for menarke af alder<br />

Hvorledes afhænger risikoen for graft-vs-host disease af diverse<br />

forhold omkring knoglemarvstransplantationen<br />

5 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

χ 2 -testet<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Benyttes til at evaluere association mellem to kategoriske variable.<br />

Lad R and S være kategoriske variable med hhv k og m inddelinger.<br />

Uafhængighed er defineret som<br />

P(R = r, S = s) = P(R = r)P(S = s)<br />

hvorfor<br />

svarende til<br />

Andel rs ≈ Andel r × Andel s<br />

Observeret rs ≈ Total antal × Andel r × Andel s = Forventet rs<br />

χ 2 -testet måler afstanden mellem observerede og forventede værdier.<br />

6 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

χ 2 -testet (fortsat)<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Definition:<br />

Evaluering:<br />

χ 2 =<br />

∑r,s (Observeret rs − Forventet rs ) 2<br />

Forventet rs<br />

.<br />

• Store værdier peger på manglende uafhængighed.<br />

• Hvis de forventede antal alle er større end 5, kan p-værdien<br />

bestemmes i en χ 2 fordeling med (k − 1) × (m − 1) frihedsgrader.<br />

• Dette test kaldes for Pearson’s chi-i-anden-test.<br />

• Hvis nogle af de forventede antal er mindre end 5, benyttes i<br />

stedet Fishers eksakte test.<br />

7 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Framinghamstudiet<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Planlagt som 20-årigt kohorte studie af indbyggere i alderen 30-59 i<br />

Framingham Town, Massachusetts, i 1948.<br />

Vi har data på 1406 indbyggere i alderen 45-62 år.<br />

13 variable:<br />

Baseline: sex, age, frw, sbp, dbp, chol, cig<br />

Follow-up: sbp10, chd, yrschd, death, yrsdth, cause<br />

8 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Framingham: Kodning af variable<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

sex 1 for mænd, 2 for kvinder<br />

age alder (år) ved baseline (45-62)<br />

frw “Framingham relative weight” (pct) ved baseline (52-222)<br />

sbp systolisk blodtryk ved baseline (mmHg) (90-300)<br />

dbp diastolisk blodtryk ved baseline (mmHg) 50-160)<br />

chol kolesterol ved baseline (mg/100ml) (96-430)<br />

cig cigaretter per dag ved baseline (0-60)<br />

chd 0 hvis ej “coronary heart disease” i løbet af follow-up, 1 hvis<br />

“coronary heart disease” ved baseline, x=2-10 hvis “coronary<br />

heart disease” blev diagnosticeret ved follow-up no. x.<br />

9 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Eksempel 1: køn og CHD<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Er der forskel på hyppigheden af CHD blandt mænd og kvinder<br />

Køn vs CHD<br />

> framing$chdI0,1,0)<br />

> framing$mand framingCHD attach(framingCHD)<br />

> table(mand,chdI)<br />

chdI<br />

mand 0 1<br />

0 616 104<br />

1 479 164<br />

> chisq.test(mand,chdI)<br />

Pearson’s Chi-squared test with Yates’ continuity correction<br />

data: mand and chdI<br />

X-squared = 25.6119, df = 1, p-value = 4.175e-07<br />

> fisher.test(mand,chdI)<br />

Fisher’s Exact Test for Count Data<br />

data: mand and chdI<br />

p-value = 3.831e-07<br />

alternative hypothesis: true odds ratio is not equal to 1<br />

95 percent confidence interval:<br />

1.530131 2.693462<br />

sample estimates:<br />

odds ratio<br />

2.026904<br />

10 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Beskrivelse af effekten<br />

Risikoen for CHD for mænd: p 1 ≈ 164/643 = 0.26<br />

Risikoen for CHD for kvinder: p 2 ≈ 104/720 = 0.14<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Odds for CHD for mænd: p 1 /(1 − p 1 ) ≈ 164/479 = 0.34(≈ 1 : 3)<br />

Odds for CHD for kvinder: p 2 /(1 − p 2 ) ≈ 104/616 = 0.17(≈ 1 : 6)<br />

Mulige effektmål:<br />

Absolut differens i risiko (ARR): |p 1 − p 2 | ≈ 0.12<br />

Relativ risiko (RR) : p 1 /p 2 ≈ 1.77<br />

Odds-ratio (OR): p 1 /(1 − p 1 )/(p 2 /(1 − p 2 )) ≈ 2.03.<br />

Når p 1 og p 2 er små ( 0, RR ≠1, OR ≠1<br />

11 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Regressionsanalyse for binær respons<br />

Formålet er relatere f.eks.<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Y i =<br />

{<br />

1 if i får CHD<br />

0 if i ej får CHD<br />

til forklarende variable for det i’te individ. Sæt<br />

p i = Prob (individ i får CHD) = Prob (Y i = 1) = E(Y i ).<br />

Køn som forklarende variabel, dvs.<br />

Lineær <strong>regression</strong><br />

x i =<br />

{<br />

1 hvis i er en mand<br />

0 hvis i er en kvinde<br />

p i = a + bx i<br />

Potentielt kan denne model tilskrive nogle individer<br />

sandsynligheder 12 / 42<br />

uden for [0, 1].


u n i v e r s i t y o f c o p e n h a g e n<br />

log-odds<br />

Vi ser på ln(odds i ) = logit(p i ) = ln<br />

(<br />

pi<br />

1−p i<br />

)<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

som er ubegrænset:<br />

logit(p)<br />

−10 −5 0 5 10<br />

0.0 0.2 0.4 0.6 0.8 1.0<br />

13 / 42<br />

p


u n i v e r s i t y o f c o p e n h a g e n<br />

Den logistiske <strong>regression</strong>smodel<br />

Model:<br />

( ) pi<br />

ln = a + bx i =<br />

1 − p i<br />

{<br />

a kvinder<br />

a + b mænd.<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Det betyder at kønsparameteren b får følgende fortolkning<br />

b = (a + b) − a = ln (odds for mænd) - ln (odds for kvinder)<br />

= ln (OR for mænd vs. kvinder)<br />

og tilsvarende<br />

−b = a − (a + b) = ln(OR for kvinder vs. mænd).<br />

Dermed er OR = exp(b) for mænd vs kvinder.<br />

For b > 0 er der øget risiko for mænd: OR > 1.<br />

For b < 0 er der lavere risiko for mænd: OR < 1.<br />

For b = 0 er der ingen forskel: OR < 1.<br />

14 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Estimation af simpel logistisk <strong>regression</strong> med køn<br />

Data er:<br />

Y = 0 (ej CHD) Y = 1 (CHD)<br />

Z = 0 (kvinder) 616 104<br />

Z = 1 (mænd) 479 164<br />

1095 264<br />

Vi kan selv trylle estimater for <strong>regression</strong>sparametrene frem:<br />

OR =<br />

( )<br />

164 · 616<br />

164 · 616<br />

104 · 479 = 2.03, b = ln(OR) = ln 104 · 479<br />

( ) 104<br />

a = ln(odds for kvinder) = ln = −1.78<br />

616<br />

Men hvad med usikkerheden<br />

= 0.71<br />

15 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Simpel logistisk <strong>regression</strong> i R<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

<strong>Logistisk</strong> <strong>regression</strong> i R laves vha funktionen glm:<br />

Estimation<br />

> glm1 summary(glm1)<br />

Call:<br />

glm(formula = chdI ~ mand, family = binomial)<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-0.7674 -0.7674 -0.5586 -0.5586 1.9672<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -1.7789 0.1060 -16.780 < 2e-16 ***<br />

mand 0.7070 0.1394 5.073 3.92e-07 ***<br />

--<br />

(Dispersion parameter for binomial family taken to be 1)<br />

Null deviance: 1351.2 on 1362 degrees of freedom<br />

Residual deviance: 1324.9 on 1361 degrees of freedom<br />

AIC: 1328.9<br />

Number of Fisher Scoring iterations: 4<br />

16 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Test af kønseffekten<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Nulhypotesen er at sandsynligheden for CHD ikke afhænger af køn:<br />

Dette kan testes med et Wald-test:<br />

z = estimat<br />

SE<br />

H 0 : b = 0.<br />

∼ N (0, 1).<br />

Her er b = 0.7070, SE = 0.1394, z=5.073, p < .0001.<br />

Bemærk at z 2 = 5.073 2 = 25.74 ∼ χ 2 (df = 1) stemmer overens med<br />

standard χ 2 -testet i 2×2-tabellen: 25.62 (df = 1).<br />

Der er en stærkt signifikant forskel på kønnene mht risikoen for CHD.<br />

17 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantificering af kønseffekten<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

OR for CHD for mænd vs kvinder er exp(0.707) = 2.03.<br />

Hvor sikre er vi på dette estimat<br />

Vi kan få et 95% KI for b ved b ± 1.94 · SE.<br />

Dermed fås et KI for OR ved exp(b ± 1.94 · SE).<br />

Konfidensinterval for OR<br />

> confint(glm1)<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

(Intercept) -1.9919851 -1.575984<br />

mand 0.4355102 0.982305<br />

> round( c( exp(glm1$coef[-1]), exp(confint(glm1))[-1,] ),2 )<br />

Waiting for profiling to be done...<br />

mand 2.5 % 97.5 %<br />

2.03 1.55 2.67<br />

><br />

18 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

<strong>Logistisk</strong> <strong>regression</strong> i R<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

<strong>Logistisk</strong> <strong>regression</strong> laves i R vha funktionen glm (Generaliserede<br />

Lineære Modeller).<br />

HUSK family=binomial for logistisk <strong>regression</strong>.<br />

På et glm-objekt kan vi benytte de samme funktioner, som vi har<br />

benyttet på lm-objekter:<br />

summary<br />

confint<br />

drop1<br />

anova<br />

predict<br />

19 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Forklarende variable med flere niveauer<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Spørgsmål: Hvorledes stiger risikoen for CHD med alderen<br />

Inddel alder i 4 grupper:<br />

⎧<br />

⎪⎨<br />

x i =<br />

⎪⎩<br />

Kategoriseret alder mod responsen:<br />

1 hvis i er 45 − 48 år<br />

2 hvis i er 49 − 52 år<br />

3 hvis i er 53 − 56 år<br />

4 hvis i er 57 − 62 år<br />

x = 1 x = 2 x = 3 x = 4<br />

45-48 49-52 53-56 57-62<br />

Y = 0 308 298 254 235 1095<br />

Y = 1 51 61 64 92 268<br />

359 359 318 327 1363<br />

20 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Beskrivelse af alderseffekten<br />

Alderseffekten kan undersøges ved at se på odds-ratio’erne:<br />

OR 1 (X = 2 vs. X = 1) =<br />

61·308<br />

298·51<br />

= 1.24<br />

= exp(0.21)<br />

OR 2 (X = 3 vs. X = 1) =<br />

64·308<br />

254·51<br />

1.52<br />

= exp(0.42)<br />

OR 3 (X = 4 vs. X = 1) =<br />

92·308<br />

235·51<br />

2.36<br />

= exp(0.86)<br />

Vi kan benytte et sædvanligt χ 2 -test til at undersøge om<br />

OR 1 = OR 2 = OR 3 = 1:<br />

Chi-i-anden test<br />

> ageGrp48)+I(age>52)+I(age>56))<br />

> chisq.test(ageGrp,chdI)<br />

Pearson’s Chi-squared test<br />

data: ageGrp and chdI<br />

X-squared = 23.2889, df = 3, p-value = 3.515e-05<br />

><br />

21 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

<strong>Logistisk</strong> <strong>regression</strong> på kategorisk variabel<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

For hver kategori estimeres ln(OR) relativt til en referencekategori:<br />

( ) pi<br />

ln =<br />

1 − p i<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

b 1 = ln(OR)(2 vs. 1) = 0.21<br />

b 2 = ln(OR)(3 vs. 1) = 0.42<br />

b 3 = ln(OR)(4 vs. 1) = 0.86<br />

a hvis i er 45 − 48 år<br />

a + b 1 hvis i er 49 − 52 år<br />

a + b 2 hvis i er 53 − 56 år<br />

a + b 3 hvis i er 57 − 62 år.<br />

NB: Computerprogrammerne vælger referencekategorien forskelligt.<br />

R vælger laveste niveau som reference.<br />

Jævnfør ensidet variansanalyse.<br />

22 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

<strong>Logistisk</strong> <strong>regression</strong> på kategorisk variabel i R<br />

Estimation<br />

> glm2 summary(glm2)<br />

Call:<br />

glm(formula = chdI ~ ageGrp, family = binomial)<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-0.8129 -0.6704 -0.6103 -0.5536 1.9756<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -1.7983 0.1512 -11.895 < 2e-16 ***<br />

ageGrp2 0.2121 0.2064 1.027 0.3042<br />

ageGrp3 0.4198 0.2060 2.038 0.0415 *<br />

ageGrp4 0.8605 0.1949 4.415 1.01e-05 ***<br />

--<br />

(Dispersion parameter for binomial family taken to be 1)<br />

Null deviance: 1351.2 on 1362 degrees of freedom<br />

Residual deviance: 1328.7 on 1359 degrees of freedom<br />

AIC: 1336.7<br />

Number of Fisher Scoring iterations: 4<br />

><br />

23 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Test af alderseffekten<br />

Vi kan også lave et test for effekt af alder vha anova eller drop1.<br />

Her skal vi ALTID benytte et chi-i-anden-test (Likelihood Ratio Test):<br />

Test af alderseffekt<br />

> glm2red anova(glm2,glm2red,test="Chisq")<br />

Analysis of Deviance Table<br />

Model 1: chdI ~ ageGrp<br />

Model 2: chdI ~ 1<br />

Resid. Df Resid. Dev Df Deviance P(>|Chi|)<br />

1 1359 1328.7<br />

2 1362 1351.2 -3 -22.595 4.904e-05 ***<br />

--<br />

> drop1(glm2,test="Chisq")<br />

Single term deletions<br />

Model:<br />

chdI ~ ageGrp<br />

Df Deviance AIC LRT Pr(Chi)<br />

1328.7 1336.7<br />

ageGrp 3 1351.2 1353.2 22.595 4.904e-05 ***<br />

--<br />

><br />

24 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantificering af alderseffekten<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

OR incl konfidensintervaller<br />

> confint(glm2)<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

(Intercept) -2.10571624 -1.5118423<br />

ageGrp2 -0.19158197 0.6192138<br />

ageGrp3 0.01756503 0.8264937<br />

ageGrp4 0.48250667 1.2477345<br />

> round( cbind( exp(glm2$coef[-1]), exp(confint(glm2))[-1,] ),2 )<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

ageGrp2 1.24 0.83 1.86<br />

ageGrp3 1.52 1.02 2.29<br />

ageGrp4 2.36 1.62 3.48<br />

><br />

Risikoen for CHD stiger med alderen.<br />

De ældste har mere end dobbelt så stor odds for CHD end de yngste<br />

(OR=2.4, 95% CI 1.6-3.5).<br />

25 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Valg af anden referencekategori<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Nogle gange ønsker vi sammenligningen en anden vej, f.eks. kunne vi<br />

sammenligne de yngre ifht de ældre.<br />

I R kan vi ændre referencekategorien vha relevel:<br />

Ny referencekategori<br />

> ageGrpNy table(ageGrpNy)<br />

ageGrpNy<br />

4 1 2 3<br />

327 359 359 318<br />

><br />

ref=4 specificerer at kategori nummer 4 skal være referencen (ikke<br />

værdien 4).<br />

26 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantificering af alderseffekten<br />

OR incl konfidensintervaller<br />

> glm3 summary(glm3)<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-0.8129 -0.6704 -0.6103 -0.5536 1.9756<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -0.9378 0.1230 -7.625 2.43e-14 ***<br />

ageGrpNy1 -0.8605 0.1949 -4.415 1.01e-05 ***<br />

ageGrpNy2 -0.6484 0.1867 -3.472 0.000516 ***<br />

ageGrpNy3 -0.4407 0.1862 -2.366 0.017981 *<br />

--<br />

(Dispersion parameter for binomial family taken to be 1)<br />

Null deviance: 1351.2 on 1362 degrees of freedom<br />

Residual deviance: 1328.7 on 1359 degrees of freedom<br />

AIC: 1336.7<br />

Number of Fisher Scoring iterations: 4<br />

> round( cbind( exp(glm3$coef[-1]), exp(confint(glm3))[-1,] ),2 )<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

ageGrpNy1 0.42 0.29 0.62<br />

ageGrpNy2 0.52 0.36 0.75<br />

ageGrpNy3 0.64 0.45 0.93<br />

><br />

27 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

<strong>Logistisk</strong> <strong>regression</strong> med to kategoriske variable<br />

Spørgsmål: Hvorledes afhænger sandsynligheden for CHD af køn og<br />

aldersgruppe<br />

ln<br />

(<br />

pi<br />

1−p i<br />

)<br />

= a + b 1 mand i + b 2 ryger<br />

⎧<br />

i<br />

a K ikke-ryger<br />

⎪⎨<br />

a + b<br />

=<br />

1 M ikke-ryger<br />

a + b 2 K ryger<br />

⎪⎩<br />

a + b 1 + b 2 M ryger.<br />

Bemærk: b 1 = (a + b 1 ) − a = (a + b 1 + b 2 ) − (a + b 2 )<br />

= ln OR (mænd vs. kvinder for givet rygestatus),<br />

b 2 = (a + b 2 ) − a = (a + b 1 + b 2 ) − (a + b 1 )<br />

= ln OR (rygere vs. ikke-rygere for givet køn)<br />

NB: Dette er en additiv model / ingen interaktion.<br />

Jævnfør tosidet variansanalyse<br />

28 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

To kategoriske variable i R<br />

Estimation<br />

> ryger=1,1,0))<br />

> table(ryger)<br />

ryger<br />

0 1<br />

748 614<br />

> glm5 summary(glm5)<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Call:<br />

glm(formula = chdI ~ mand + ryger, family = binomial)<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-0.7716 -0.7607 -0.5564 -0.5564 1.9708<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -1.78735 0.11508 -15.531 < 2e-16 ***<br />

mand 0.69521 0.14635 4.750 2.03e-06 ***<br />

ryger1 0.03296 0.14457 0.228 0.82<br />

-<br />

(Dispersion parameter for binomial family taken to be 1)<br />

Null deviance: 1350.8 on 1361 degrees of freedom<br />

Residual deviance: 1324.5 on 1359 degrees of freedom<br />

(1 observation deleted due to missingness)<br />

AIC: 1330.5<br />

Number of Fisher Scoring iterations: 4<br />

29 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

OR’er med to forklarende variable<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

I den logistiske <strong>regression</strong>smodel med to forklarende variable, er de<br />

estimerede ln(OR)’er indbyrdes justeret.<br />

De estimeres begge med det laveste niveau som referencekategori.<br />

OR’er incl konfidensintervaller<br />

> round( cbind( exp(glm5$coef[-1]), exp(confint(glm5))[-1,] ),2 )<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

mand 2.00 1.51 2.68<br />

ryger1 1.03 0.78 1.37<br />

><br />

OR for CHD for mænd vs kvinder er 2.0 (1.5-2.7).<br />

OR for rygere vs ikke-rygere er 1.03 (0.8-1.4).<br />

30 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantitativ forklarende variabel<br />

Eksempel 2: juul-datasættet i ISwR-pakken.<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Spørgsmål: Hvordan afhænger sandsynligheden for menarke af alder<br />

Respons: Menarke (ja/nej) Forklarende variabel: alder.<br />

Alder vs menarke<br />

> install.packages("ISwR")<br />

> library(ISwR)<br />

> data(juul)<br />

><br />

> juul28 &age juul2$ageGrp juul2$menarke attach(juul2)<br />

> table(ageGrp,menarke)<br />

menarke<br />

ageGrp 0 1<br />

(8,10] 100 0<br />

(10,12] 97 4<br />

(12,13] 32 21<br />

(13,14] 22 20<br />

(14,15] 5 36<br />

(15,16] 0 31<br />

(16,18] 0 105<br />

><br />

31 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Plot af hyppighederne<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Sandsynlighed for menarke<br />

−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

8 10 12 14 16 18<br />

Linien angiver den estimerede <strong>regression</strong>slinie fra en lineær<br />

model.<br />

32 / 42<br />

Alder


u n i v e r s i t y o f c o p e n h a g e n<br />

En kvantitativ forklarende variabel<br />

Model med alder som kvantitativ:<br />

( ) pi<br />

ln<br />

1 − p i<br />

= a + bage i<br />

Her er b øgningen / reduktionen i log-odds per år.<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Hvad er forskellen i log-odds for to piger med alder a 1 og a 2 <br />

svarende til<br />

( ) ( )<br />

p1<br />

p2<br />

ln − ln<br />

1 − p 1 1 − p 2<br />

= a + ba 1 − (a + ba 2 )<br />

= b(a 1 − a 2 )<br />

= log(OR).<br />

OR = exp(b(a 1 − a 2 )) = exp(b) (a 1−a 2 )<br />

33 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantitativ forklarende variabel i R<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Estimation<br />

> glm1a summary(glm1a)<br />

Call:<br />

glm(formula = menarke ~ age, family = "binomial")<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-2.32603 -0.22117 -0.04169 0.15090 2.45808<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -19.9894 2.0344 -9.826


u n i v e r s i t y o f c o p e n h a g e n<br />

Beskrivelse af alderseffekten<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Konfidensintervaller<br />

> glm1a$coef<br />

(Intercept)<br />

age<br />

-19.989374 1.515431<br />

> confint(glm1)<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

(Intercept) -24.38353 -16.36677<br />

age 1.23980 1.85004<br />

> # OR incl CI<br />

> round( c(exp(glm1a$coef[-1]), exp(confint(glm1a)[-1,])),2 )<br />

Waiting for profiling to be done...<br />

age 2.5 % 97.5 %<br />

4.55 3.45 6.36<br />

><br />

Når alderen øges med et år, stiger log-odds med 1.51 (1.24-1.85).<br />

Når alderen øges med et år, øges odds med en faktor 4.55<br />

(3.45-6.36).<br />

Interceptet a = −19.99 er log-odds for en pige på 0 år (!).<br />

35 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Sandsynlighed for menarke som funktion af alder<br />

Sandsynlighed for menarke<br />

−0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

8 10 12 14 16 18<br />

Alder<br />

Kurven er baseret på den logistiske <strong>regression</strong>smodel.<br />

36 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Multipel logistisk <strong>regression</strong><br />

Hvordan afhænger risikoen for CHD af køn, alder, rygning og SBP<br />

( ) pi<br />

ln<br />

1 − p i<br />

= a + b 1 mand i + b 2 ryger i + b 3 alder i + b 4 log 2 (SBP i )<br />

Estimation<br />

> glm6 summary(glm6)<br />

Call:<br />

glm(formula = chdI ~ mand + ryger + age + I(log2(sbp)), family =<br />

binomial)<br />

Deviance Residuals:<br />

Min 1Q Median 3Q Max<br />

-1.4921 -0.6893 -0.5332 -0.3615 2.5142<br />

Coefficients:<br />

Estimate Std. Error z value Pr(>|z|)<br />

(Intercept) -19.74839 2.15012 -9.185 < 2e-16 ***<br />

mand 0.86400 0.15487 5.579 2.42e-08 ***<br />

ryger1 0.18504 0.15180 1.219 0.222858<br />

age 0.05376 0.01531 3.511 0.000446 ***<br />

I(log2(sbp)) 2.07204 0.28337 7.312 2.63e-13 ***<br />

><br />

37 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Kvantificering af effekterne<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

( ) pi<br />

ln<br />

1 − p i<br />

= a + b 1 mand i + b 2 ryger i + b 3 alder i + b 4 log 2 (SBP i )<br />

Her er a=log-odds for et individ med værdi 0 af alle kovariater.<br />

OR’er incl konfidensintervaller<br />

> round( cbind( exp(glm6$coef[-1]), exp(confint(glm6))[-1,] ),2 )<br />

Waiting for profiling to be done...<br />

2.5 % 97.5 %<br />

mand 2.37 1.76 3.22<br />

ryger1 1.20 0.89 1.62<br />

age 1.06 1.02 1.09<br />

I(log2(sbp)) 7.94 4.58 13.91<br />

><br />

Odds for CHD er mere end dobbelt så stor for mænd.<br />

Der er ingen øget risiko for rygere (OR=1.2, CI=0.9-1.6).<br />

Risikoen stiger med alder, OR=1.06 per år (CI=1.02-1.09).<br />

Odds 8-dobles ved en fordobling af SBP (OR=7.9, CI=4.6-13.9).<br />

38 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Den logistiske <strong>regression</strong>smodel på odds-skala<br />

Modellen er lineær på log-odds-skala:<br />

( ) pi<br />

ln<br />

1 − p i<br />

= a + b 1 mand i + b 2 ryger i + b 3 alder i + b 4 log 2 (SBP i )<br />

og derfor multiplikativ på odds-skala:<br />

p i<br />

1 − p i<br />

= exp(a + b 1 mand i + b 2 ryger i + b 3 alder i + b 4 log 2 (SBP i ))<br />

= exp(a) exp(b 1 mand i ) exp(b 2 ryger i ) exp(b 3 alder i ) exp(b 4 log 2 (SBP i ))<br />

= exp(a) × OR mandi<br />

mand<br />

× ORryger i<br />

rygning × ORalderi alder<br />

× OR log 2 (SBPi)<br />

SBP<br />

39 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Fra <strong>regression</strong>smodel til prædiktion<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Den generelle model er<br />

( ) pi<br />

ln<br />

1 − p i<br />

= a + b 1 x i1 + · · · + b p x ip<br />

Der er en én-til-én relation mellem log-odds og sandsynlighed:<br />

p i =<br />

exp(a + b 1 x i1 + · · · + b p x ip )<br />

1 + exp(a + b 1 x i1 + · · · + b p x ip )<br />

40 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Prædiktion<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Vi ønsker at sammenligne sandsynligheden for CHD for en<br />

ikke-rygende mand på 50 år med sandsynligheden for en ikke-rygende<br />

kvinde på 50 år som funktion af SBP.<br />

Prædiktion i R<br />

> Mdata head(Mdata,3)<br />

mand ryger age sbp<br />

1 1 0 50 90<br />

2 1 0 50 91<br />

3 1 0 50 92<br />

> pM head(pM)<br />

1 2 3 4 5 6<br />

0.06037988 0.06228133 0.06421687 0.06618649 0.06819014 0.07022779<br />

><br />

> Kdata pK<br />

> plot(90:300,pM,xlab="SBP",ylab="Sandsynlighed for CHD",ylim=c(0,1),col="blue",type="l")<br />

> lines(90:300,pK,col="red")<br />

> legend(100,1,c("Mand, ikke-ryger, 50 aar","Kvinde, ikke-ryger, 50 aar"),<br />

> col=c("blue","red"),lty=1)<br />

><br />

41 / 42


u n i v e r s i t y o f c o p e n h a g e n<br />

Sandsynlighed for CHD som funktion af SBP<br />

d e p a r t m e n t o f b i o s t a t i s t i c s<br />

Sandsynlighed for CHD<br />

0.0 0.2 0.4 0.6 0.8 1.0<br />

Mand, ikke−ryger, 50 aar<br />

Kvinde, ikke−ryger, 50 aar<br />

100 150 200 250 300<br />

SBP<br />

42 / 42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!