La r´ egression logistique en ´ epid´ emiologie Jean Bouyer
To cite this version: Jean Bouyer. La r´egression logistique en ´epid´emiologie. Master. Epid´emiologie Quantitative, M2 recherche en Sant´e Publique, Universit´es Paris V, XI, XII, Versailles Saint Quentin, 2012.
HAL Id: cel-00124335 https://cel.archives-ouvertes.fr/cel-00124335v1 Submitted on 13 Jan 2007 (v1), last revised 26 Jan 2013 (v2)
HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.
M2 - Santé Publique Recherche Module “Epidémiologie Quantitative” 2006-2007
La régression logistique en épidémiologie
Jean BOUYER
• Un modèle multivarié permet d’exprimer une variable Y en fonction de plusieurs variables Xi
• En épidémiologie, - Y caractérise la maladie (ou sa distribution dans la population) - les Xi caractérisent les facteurs de risque de la maladie ou des variables d’ajustements. Ils peuvent être qualitatifs ou quantitatifs
• Les méthodes multivariées supposent une certaine modélisation de la réalité. Par exemple, on peut modéliser (représenter) la relation entre Y et les Xi - sous forme linéaire - et/ou en supposant l’absence d’interaction entre les Xi => Les conclusions qu’on tire des analyses multivariées sont en partie conditionnées par le bien-fondé des hypothèses faites (par exemple linéarité).
Régression logistique
1
Principaux modèles multivariés utilisés en épidémiologie • Régression linéaire multiple (Y est quantitative) p
E(Y|X1,..., Xp) = α+β1X1+…+βpXp = α+ " !iXi i=1 E(Y|X1,..., Xp) : moyenne de Y connaissant X1,…,Xp
• Régression logistique (Y = 0/1) P(M+|X1,..., Xp) =
1
p + % (. 1 + exp,!'" + $ #i Xi */ )0 - & i=1
P(M+|X1,..., Xp) : probabilité de maladie connaissant X1,…,Xp
Y avec plus de 2 classes : régression logistique polytomique
• Modèle de Cox (Y = incidence instantanée λ) p , & )/ λ(t, X1, ..., Xp) = ! 0 (t) exp-"(# + % $i Xi +0 *1 . ' i=1
Régression logistique
2
Définition du modèle logistique 1. Une seule variable X
• Fonction logistique : f(x) =
1 ! "+#x) 1+ e (
f(x) 1
1 • Modèle logistique : P(M+|X) =
x
1 ! "+#x) 1+ e (
Autre écriture : Logit P = α+βX avec
Logit P = Ln
P = Ln P - Ln(1-P) 1!P
=> β = accroissement de Logit P par unité de X
• X dichotomique β = Logit (P|X=1) - (Logit P|X=0) " P P % = Logit P1 - Logit Po = Ln $ 1 / 0 ' = Ln OR # 1! P1 1! P0 & Régression logistique
3
2. Plusieurs variables X
• P(M+|X1,..., Xk) =
1
k % ( 1 + exp! '" + $ #i Xi * & ) i=1
ou
k
Logit P = ! + # "i Xi i=1
• Si on s’intéresse particulièrement à une exposition E, on écrit : Logit P = ! + "E + # "i Xi
=> β = accroissement de Logit P par unité de E lorsque les Xi sont fixés
• E dichotomique Ln ORE = Logit P1 - Logit Po
(
) (
= ! + " + # 1 "i X i $ ! + # 0 "i X i
)
= β si les Xi sont fixés exp(β) = OR lié à l’exposition E ajusté sur les Xi
Régression logistique
4
Estimation des paramètres ! Modèle : P(M+|X) = y =
1 1 + e !("+#x)
Observations : échantillon de N sujets -> (xi,yi) i=1,N
α et β sont estimés par la méthode du maximum de ! ! vraisemblance : on obtient ! et !.
Régression logistique
5
Vraisemblance d’un échantillon Définition : la vraisemblance d’un échantillon est la probabilité d’observer l’échantillon. Elle est notée V (en anglais L pour likelihood). • Dans le cas où chaque sujet est caractérisé par une variable dichotomique (M+/ M-), notons P(i) la probabilité d'observer le sujet i. • Echantillon : n sujets ; k malades n
V=c
! P(i) i=1
où c = nombre d’échantillons possibles avec k malades c = Ckn =
n! où n! = n(n-1)…1 k! (n ! k)!
0! = 1
• P = pourcentage de malades dans la population P(i) = P
si le sujet i est malade
P(i) = (1-P) = Q
si le sujet i est non malade
V = Ckn Pk (1-P)n-k
Régression logistique
6
• La valeur de la vraisemblance dépend du nombre de malades dans l’échantillon, mais aussi de P : Exemple : n = 20 ; k =5 - P=10% V = C520 0,105 0,9015=
20! 0,105 0,9015 = 0,03 5! 15!
- P = 25%, V’ = C520 0,255 0,7515 = 0,20 → fonction de vraisemblance : V(P) = C520 P5 (1-P)15 - de façon générale : V = Ckn Pk (1-P)n-k
• Lorsqu'on ne connaît pas P, mais qu'on observe n et k sur un échantillon, on se sert de la vraisemblance pour estimer P : Estimation du maximum de vraisemblance = valeur po qui maximise V
• Propriétés : - Les estimateurs du maximum de vraisemblance ont une distribution asymptotiquement normale - La méthode du maximum de vraisemblance permet de calculer la variance des paramètres estimés Régression logistique
7
Estimation des paramètres du modèle logistique Dans un échantillon de n sujets, on observe k malades. n
V = c ! P(i) = c
! qi
! pi
(n"k) non malades k malades
i=1
Le modèle logistique permet d'exprimer P et 1-P en fonction de la valeur de X de chaque sujet. P = P(M+|X) =
1
1-P = Q = P(M-|X) = 1-
1 + e !("+#x)
1 1 + e !("+#x)
Pour le sujet i, on a donc : pi= P(M+|X=xi) =
1 1+e
qi= P(M-|=xi) = 1- pi =
si le sujet est malade
!("+#x i )
e !("+#x i ) 1+e
!("+#x i )
$ V= c
Régression logistique
s'il est non malade
e !("+#xi )
non malades $ 1+ e!("+#xi ) tous
(
) 8
$ V= c
e !("+#xi )
non malades $ 1+ e!("+#xi ) tous
(
)
Les estimations du maximum de vraisemblance de α et β sont les ! ! valeurs ! et ! qui rendent V maximum.
! ! Il n'y a de solutions explicites pour ! et ! que dans le cas d'un seul coefficient β. Sinon (quand il y a plusieurs variables X), il faut procéder par itérations, et les valeurs obtenues sont des approximations numériques
NB : En fait les logiciels donnent LnV et non V, et ne font pas figurer "c" (ce qui ne change rien pour la recherche du maximum)
Régression logistique
9
Exemple Grossesse extra-utérine et Clomid
• La variable maladie est notée "ct" (0 = accouchement; 1= GEU) • La variable "exposition" est notée "clomid" (grossesse induite par Clomid® : 0 = non ; 1 = oui)
Le modèle est donc : Logit P = α + β clomid +
ou : P(M |clomid) =
1 1+ exp{!(" + #clomid)}
. tab ct clomid,chi 0:acc | induction par clomid 1:GEU | 0 1 | Total -----------+----------------------+---------0 | 1,099 31 | 1,130 1 | 528 29 | 557 -----------+----------------------+---------Total | 1,627 60 | 1,687
Régression logistique
10
. tab ct clomid,chi 0:acc | induction par clomid 1:GEU | 0 1 | Total -----------+----------------------+---------0 | 1,099 31 | 1,130 1 | 528 29 | 557 -----------+----------------------+---------Total | 1,627 60 | 1,687
Contribution à la vraisemblance : 1 29 sujets E+ M+ : p1 = 1 + exp{!(" + #)} 1 528 sujets E- M+ : p2 = 1 + exp{!"} exp{!(" + #)} 31 sujets E+ M- : q1 = 1 + exp{!(" + #)} exp{!"} 1099 sujets E M : q2 = 1 + exp{!"} 31
V=
p129
p528 2
Régression logistique
q131 q1099 2
1099
[exp{!(" + #)}] [exp{!"}] = 60 1627 [1+ exp{!(" + #)}] [1+ exp{!"}]
11
Exemple (suite) Grossesse extra-utérine et induction par Clomid
. logit ct clomid Iteration 0: Iteration 1: Iteration 2:
log likelihood = -1070.0646 log likelihood = -1066.9637 log likelihood = -1066.9435
Logit estimates Log likelihood = -1066.9435
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | .6663683 .2637132 2.53 0.012 .1495 1.183237 _cons | -.7330597 .0529515 -13.84 0.000 -.8368426 -.6292767 ------------------------------------------------------------------------------
! ! = -0,733 ! ! = 0,666
s !! = 0,0530 s !! = 0,264
! ! ! OR = e = 1,95
Intervalle de confiance ! I.C. de β : ! ± zα/2 s !! = 0,666 ± 1,96×0,264 = [0,150 ; 1,18] D'où : I.C. de OR : [e0,150; e1,18] = [1,16 ; 3,26]
Régression logistique
12
• On peut obtenir directement l'odds ratio et son intervalle de confiance avec la commande "logistic" : . logistic ct clomid Logit estimates Log likelihood = -1066.9435
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 1.947153 .5134899 2.53 0.012 1.161253 3.264924 ------------------------------------------------------------------------------
• On retrouve les mêmes résultats avec le tableau initial : ad 29 ! 1099 OR = = 1,95 bc 31! 528
. cc ct clomid,w | induction par clomid | Proportion | Exposed Unexposed | Total Exposed -----------------+------------------------+---------------------Cases | 29 528 | 557 0.0521 Controls | 31 1099 | 1130 0.0274 -----------------+------------------------+---------------------Total | 60 1627 | 1687 0.0356 | | | Point estimate | [95% Conf. Interval] |------------------------+---------------------Odds ratio | 1.947153 | 1.161253 3.264925 (Woolf) Attr. frac. ex. | .4864297 | .1388614 .6937142 (Woolf) Attr. frac. pop | .0253258 | +----------------------------------------------chi2(1) = 6.60 Pr>chi2 = 0.0102
Régression logistique
13
Test des paramètres du modèle logistique Hypothèse testée : Ho : OR = 1 ⇔ β = 0 • Test de χ2 “habituel” ! ! • Test de Wald : z = suit une loi normale N(0,1) s !! • Test du rapport des vraisemblances maximales (pour des modèles emboîtés)
modèle 1 : Logit P = α + β1 X1 + β2 X2 (vraisemblance : V1) modèle 2 : Logit P = ! ' + "1' X1 + " '2 X2 + " '3 X3 (V2) ! '3 est significativement différent de 0 si V1 est significativement inférieur à V2
Test : 2 Ln
V2 = 2 Ln(V2) - 2 Ln(V1) suit une loi de !2 à 1ddl V1
Régression logistique
14
Exemple Association GEU - grossesse induite par Clomid • Test du χ2 habituel . tab ct clomid,chi 0:acc | induction par clomid 1:GEU | 0 1 | Total -----------+----------------------+---------0 | 1,099 31 | 1,130 1 | 528 29 | 557 -----------+----------------------+---------Total | 1,627 60 | 1,687 Pearson chi2(1) =
6.5989
Pr = 0.010
• Test de Wald . logistic ct clomid Logit estimates
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
Log likelihood = -1066.9435
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------clomid | 1.947153 .5134899 2.527 0.012 1.161253 3.264924 ------------------------------------------------------------------------------
• Test du rapport des vraisemblances . est store A . logistic ct if clomid!=. Logistic regression Log likelihood = -1070.0646
Number of obs LR chi2(0) Prob > chi2 Pseudo R2
= = = =
1687 0.00 . 0.0000
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+--------------------------------------------------------------------------------------------------------------------------------------------. est store B . lrtest A B Likelihood-ratio test (Assumption: B nested in A)
χ2 “habituel” 6,60 Régression logistique
Wald 6,39 (2,5272)
LR chi2(1) = Prob > chi2 =
6.24 0.0125
Rapport des vraisemblances 6,24 15
Test du rapport des vraisemblances Attention à bien conserver le même échantillon
. logistic ct clomid Logistic regression Log likelihood = -1066.9435
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 1.947153 .5134899 2.53 0.012 1.161253 3.264924 -----------------------------------------------------------------------------. est store A . logistic ct Logistic regression Log likelihood = -1097.2925
Number of obs LR chi2(0) Prob > chi2 Pseudo R2
= = = =
1725 0.00 . 0.0000
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+--------------------------------------------------------------------------------------------------------------------------------------------. est store B . lrtest A B
observations differ: 1687 vs. 1725 r(498);
Si on faisait quand même la différence des LnV, on trouverait (à tort) : 2 Ln
VB VA
Régression logistique
= 2 Ln(VB) - 2 Ln(VA) = 60,7
16
Les tests de Wald et du rapport des vraisemblances s’étendent au test de plusieurs coefficients à la fois
modèle 1 : Logit P = α + β1 x1 modèle 2 : Logit P = ! ' + "1' X1 + " '2 X2 + " '3 X3 Ho : β’2 = 0 et β’3 = 0
H1 : β’2 ≠ 0 ou β’3 ≠ 0
• Test du rapport des vraisemblances Test : 2 Ln
V2 = 2 Ln (V2) - 2 Ln (V1) suit une loi de χ2 à 2 ddl V1
• Test de Wald !2 ! ! ' ! "1 ! ! ! 2 zo = <=> χo = ! = (!) [ var(!)] (!) var(!) s !! "! % extension : θ = $ 1 ' # !2 &
cov(!1,!2 )% " var(!1 ) var(θ) = $ var(!2 ) '& # cov(!1,!2 )
! ' ! "1 ! Test : χo2 = (!) [ var(!)] (!) à 2 ddl
Régression logistique
17
Exemple univf : niveau d'études universitaires; fprof : activité prof. . logistic ct clomid univf fprof Logit estimates Log likelihood = -748.52958
Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1209 9.72 0.0212 0.0064
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 2.116155 .6359738 2.49 0.013 1.174177 3.813831 univf | .8600309 .1317507 -0.98 0.325 .6369655 1.161214 fprof | 1.26912 .1792061 1.69 0.091 .9622964 1.673773 ------------------------------------------------------------------------------
Le modèle logistique s'écrit :
LogitP = ! + "1clomid + "2unifv + " 3 fprof L'hypothèse testée est : Ho : β2 = 0 et β3 = 0 H1 : β2 ≠ 0 ou β3 ≠ 0
Régression logistique
18
. logistic ct clomid univf fprof Logit estimates Log likelihood = -748.52958
Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1209 9.72 0.0212 0.0064
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 2.116155 .6359738 2.49 0.013 1.174177 3.813831 univf | .8600309 .1317507 -0.98 0.325 .6369655 1.161214 fprof | 1.26912 .1792061 1.69 0.091 .9622964 1.673773 ------------------------------------------------------------------------------
• Test de Wald . testparm univf fprof ( 1) ( 2)
univf = 0.0 fprof = 0.0 chi2( 2) = Prob > chi2 =
3.26 0.1957
• Test du rapport des vraisemblances . est store A . logistic ct clomid if univf!=. & fprof!=. Logistic regression Log likelihood = -750.17606
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1209 6.42 0.0113 0.0043
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 2.152235 .6427296 2.57 0.010 1.19865 3.864444 -----------------------------------------------------------------------------. est store B . lrtest A B Likelihood-ratio test (Assumption: B nested in A)
Régression logistique
LR chi2(2) = Prob > chi2 =
3.29 0.1927
19
Interprétation des coefficients et codage des variables De façon générale, si Logit P = α + β X, l'odds ratio entre les catégories X = x1 et X = xo est donné par : Ln OR = Logit P1 - Logit Po = (α + β x1) - (α + β xo) = β(x1-xo) d'où : OR = e!(x1"x0 )
Exemple : X = age . logit ct age Iteration Iteration Iteration Iteration
0: 1: 2: 3:
log log log log
likelihood likelihood likelihood likelihood
= = = =
-1095.6718 -1068.2336 -1068.1375 -1068.1375
Logistic regression Log likelihood = -1068.1375
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1721 55.07 0.0000 0.0251
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------age | .0772177 .0105778 7.30 0.000 .0564855 .0979499 _cons | -3.003536 .3236634 -9.28 0.000 -3.637904 -2.369167 ------------------------------------------------------------------------------
Logit P = -3,00 + 0,0772 age OR entre Xo = 29 et X1 = 30 : exp(0,0772) = 1,08 OR entre Xo = 25 et X1 = 40 : exp(15×0,0772) = 1,0815 = 3,18 Régression logistique
20
Codage des variables 1. X qualitative à 2 classes (dichotomique) X=1 : exposé X=0 : non exposé Autre codage de X X= +1 : exposé (x1) X= -1 : non exposé (xo)
e! = OR OR = e (x1"x0 ) = e2
Coefficient ! " odds # ratio
. gen z=2*clomid-1 (38 missing values generated) . tab clomid z,miss induction | z par clomid | -1 1 . | Total -----------+---------------------------------+---------0 | 1,627 0 0 | 1,627 1 | 0 60 0 | 60 . | 0 0 38 | 38 -----------+---------------------------------+---------Total | 1,627 60 38 | 1,725
. logistic ct clomid Logistic regression Log likelihood = -1066.9435
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------clomid | 1.947153 .5134899 2.53 0.012 1.161253 3.264924 -----------------------------------------------------------------------------. logistic ct z Logistic regression Log likelihood = -1066.9435
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
1687 6.24 0.0125 0.0029
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------z | 1.395404 .1839932 2.53 0.012 1.077615 1.80691 ------------------------------------------------------------------------------
Régression logistique
21
Codage des variables 2. X qualitative nominale à plus de 2 classes Y = GEU
Logit P = α+βX
X= X=0 -> Non induite induction de X=1 -> Hcg la grossesse X=2 -> Clomid X=3 -> Autre
En prenant la catégorie “Non induite” comme référence : • OR”Hcg” = eβ • OR”Clomid” = e2β = (OR”Hcg”)2 • OR”Autre” = e3β = (OR”Hcg”)3 Le modèle contient ces relations entre les odds-ratios dans son écriture (c’est-à-dire indépendamment des données observées). Si le codage avait été : X’=0 -> Non induite X’=1 -> Clomid X’=2 -> Hcg X’=3 -> Autre
Logit P = α’+β’X’
On aurait obtenu (toujours avec la catégorie “Non induite” comme référence) : • OR”Clomid” = eβ’ • OR”Hcg” = e2β’ = (OR”Clomid”)2 • OR”Autre” = e3β = (OR”Clomid”)3 Une variable X qualitative nominale à plus de 2 classes ne doit jamais être incluse dans un modèle logistique sous sa forme initiale. Régression logistique
22
Exemple . tab ct gind 0:acc | 0:non ind 1:hcg 2:clomid 3:autr 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 1,099 13 31 4 | 1,147 1 | 528 10 29 5 | 572 -----------+--------------------------------------------+---------Total | 1,627 23 60 9 | 1,719
. logit ct gind Logit estimates
Number of obs = 1719 LR chi2(1) = 9.09 Prob > chi2 = 0.0026 Log likelihood = -1088.9259 Pseudo R2 = 0.0042 -----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------gind | .3382189 .111344 3.038 0.002 .1199887 .5564492 _cons | -.7318449 .0527975 -13.861 0.000 -.835326 -.6283637 ------------------------------------------------------------------------------
Logit P= α + βX = -0,73 + 0,34 X ORHcg=e0,34=1,40 ORClomid=e0,68=1,97
ORAutre=e1,02=2,77
. tab ct gind2 0:acc | 0:non ind 1:clomid 2:hcg 3:autr 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 1,099 31 13 4 | 1,147 1 | 528 29 10 5 | 572 -----------+--------------------------------------------+---------Total | 1,627 60 23 9 | 1,719 . logit ct gind2 Logit estimates
Number of obs = 1719 LR chi2(1) = 7.45 Prob > chi2 = 0.0064 Log likelihood = -1089.7504 Pseudo R2 = 0.0034 -----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------gind2 | .3714249 .1357612 2.736 0.006 .1053378 .6375119 _cons | -.7265713 .0526058 -13.812 0.000 -.8296766 -.6234659 ------------------------------------------------------------------------------
Logit P = α’ + β’X = -0,73 + 0,37 X’ ORClomid=e0,37=1,45 ORHcg=e0,74=2,10 Régression logistique
ORAutre=e1,11=3,03 23
Décomposition d'une variable qualitative à plus de 2 classes 0 1 X = 2 3
X1 0 1 0 0
X2 0 0 1 0
X3 0 0 0 1
Logit P = α + β1X1+ β2X2+ β3X3
X1, X2 et X3 sont appelées des variables indicatrices. Lorsque X a k classes, (k-1) variables indicatrices suffisent.
Si on en prenait modèle : Xo X1 0 1 0 1 0 1 X = 2 0 0 3 0 0
k, il n’y aurait plus unicité des coeffcients du X2 0 0 1 0
X3 0 0 0 Logit P = α + βoXo + β1X1+ β2X2+ β3X3 1
On peut constater que les modèles Logit P = α + βoXo β1X1+ β2X2+ β3X3 et Logit P = (α+a) +(βo-a)Xo + (β1-a)X1+ (β2-a)X2+ (β3-a)X3 donnent les mêmes valeurs de Logit P quelle que soit la valeur de X.
Régression logistique
24
0 1 X = 2 3
X1 0 1 0 0
X2 0 0 1 0
X3 0 0 0 1
Logit P = α + β1X1+ β2X2+ β3X3
X1, X2 et X3 sont appelées des variables indicatrices.
• β1 = Ln(ORo,1) Ln(ORo,1) = Logit P1- Logit Po P1 correspond à X1 = 1, X2 = 0, X3 = 0 Po correspond à X1 = 0, X2 =0, X3 = 0
D'où : Ln(ORo,1) = (α+β1) - α = β1
De même : • β2 = Ln(ORo,2) • β3 = Ln(ORo,3) • Ln(OR) entre les catégories 1 et 2 = β2-β1
La commande Stata pour construire les variables indicatrices est "xi".
Régression logistique
25
Exemple (suite) . tab ct gind 0:acc | 0:non ind 1:hcg 2:clomid 3:autr 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 1,099 13 31 4 | 1,147 1 | 528 10 29 5 | 572 -----------+--------------------------------------------+---------Total | 1,627 23 60 9 | 1,719
ORHcg =
10 ! 1099 = 1,60 13 ! 528
. xi:logit ct i.gind i.gind
_Igind_0-3
Logit estimates Log likelihood = -1088.8724
(naturally coded; Igind_0 omitted) Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1719 9.20 0.0267 0.0042
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Igind_1 | .4706954 .4239421 1.11 0.267 -.3602159 1.301607 _Igind_2 | .6663683 .2637133 2.53 0.012 .1494998 1.183237 _Igind_3 | .9562032 .672907 1.42 0.155 -.3626703 2.275077 _cons | -.7330597 .0529515 -13.84 0.000 -.8368426 -.6292767 ------------------------------------------------------------------------------
Logit P = -0,73 + 0,47 X1 + 0,67 X2 + 0,96 X3 ORHcg = e0,47 = 1,60
ORClomid = e0,67 = 1,95
ORAutre = e0,96 = 2,61
Régression logistique
26
Lorsqu’on décompose X en 3 variables, celles-ci doivent être toutes les 3 présentes (ou absentes) du modèle en même temps.
Supposons qu’on enlève X1
0 1 X = 2 3
X1 0 1 0 0
X2 0 0 1 0
X3 0 0 0 1
Logit P = α’ + β’2X2+ β’3X3
Les catégories 0 et 1 de X ne sont plus distinctes.
Le coefficient β’2 de la variable X2 n’a plus le sens précédent. Il devient le logarithme de l’odds ratio entre la catégorie X=2 et les catégories X=0 et X=1 réunies.
Régression logistique
27
Logit P = α + β1X1+ β2X2+ β3X3 Le test de l'association entre X et la maladie doit être un test global H0 : !1 = !2 = ! 3 = 0 H1 : !1 " 0 ou !2 " 0 ou ! 3 " 0 . xi:logit ct i.gind i.gind _Igind_0-3
(naturally coded; _Igind_0 omitted)
Logistic regression Log likelihood = -1088.8724
Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1719 9.20 0.0267 0.0042
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Igind_1 | .4706954 .4239421 1.11 0.267 -.3602159 1.301607 _Igind_2 | .6663683 .2637133 2.53 0.012 .1494998 1.183237 _Igind_3 | .9562032 .672907 1.42 0.155 -.3626703 2.275077 _cons | -.7330597 .0529515 -13.84 0.000 -.8368426 -.6292767 ------------------------------------------------------------------------------
Test de Wald . testparm _Ig* ( 1) ( 2) ( 3)
_Igind_1 = 0 _Igind_2 = 0 _Igind_3 = 0 chi2( 3) = Prob > chi2 =
9.36 0.0248
Test du rapport de vraisemblance . est store a . logit ct if e(sample) Iteration 0:
log likelihood = -1093.4734
Logistic regression Log likelihood = -1093.4734
Number of obs LR chi2(0) Prob > chi2 Pseudo R2
= = = =
1719 0.00 . 0.0000
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_cons | -.6957661 .0511868 -13.59 0.000 -.7960905 -.5954418 -----------------------------------------------------------------------------. est store b . lrtest a b Likelihood-ratio test (Assumption: b nested in a)
Régression logistique
LR chi2(3) = Prob > chi2 =
9.20 0.0267
28
Codage des variables 3. X qualitative ordinale Exemple Consommation de tabac comptée en cigarettes par jour . tab ct tabfc 0:acc | 0:nf;1:1-9;2:10-19;3:>=20 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 809 158 106 71 | 1,144 1 | 264 78 113 94 | 549 -----------+--------------------------------------------+---------Total | 1,073 236 219 165 | 1,693
En prenant les non fumeuses comme référence, il faut 3 odds ratios pour décrire l'ensemble de l'association GEU - tabac : Nombre de cigarettes par jour OR
0 1
1-9 10-19 ≥ 20 1,51 3,27 4,07
Pour inclure la variable tabac dans un modèle logistique, il y a deux possibilités : • "conserver" les 3 odds ratios en décomposant la variable tabac en variables indicatrices (comme précédemment). • "modéliser" l'association GEU - tabac pour représenter la relation dose-effet (de façon similaire à une régression linéaire)
Régression logistique
29
A. Décomposition en variables indicatrices Le modèle correspondant est : Logit P = α + β1X1 + β2X2 + β3X3 . xi:logistic ct i.tabfc i.tabfc _Itabfc_0-3 Logistic regression Log likelihood = -1012.8708
(naturally coded; _Itabfc_0 omitted) Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1693 107.61 0.0000 0.0504
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Itabfc_1 | 1.512802 .2352084 2.66 0.008 1.11542 2.051756 _Itabfc_2 | 3.26676 .4987294 7.75 0.000 2.421955 4.406242 _Itabfc_3 | 4.057085 .6997357 8.12 0.000 2.893378 5.68883 ------------------------------------------------------------------------------
On retrouve effectivement les 3 odds ratios précédents.
Choix de la catégorie de référence pour la décomposition : • Il s'impose en pratique quand il y a une catégorie "non exposé". • Sinon, plusieurs choix sont possibles
Régression logistique
30
Exemple : niveau d'études . tab ct et4 0:acc | 0:aucune;1:prim;2:sec,tech;3:univ 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 4 93 781 258 | 1,136 1 | 6 36 377 127 | 546 -----------+--------------------------------------------+---------Total | 10 129 1,158 385 | 1,682
Référence : X=0 (pas d'études) . tabodds ct et4,or --------------------------------------------------------------------------et4 | Odds Ratio chi2 P>chi2 [95% Conf. Interval] -------------+------------------------------------------------------------0 | 1.000000 . . . . 1 | 0.258065 4.50 0.0339 0.066946 0.994790 2 | 0.321810 3.39 0.0658 0.090058 1.149936 3 | 0.328165 3.18 0.0747 0.090361 1.191800 --------------------------------------------------------------------------Test of homogeneity (equal odds): chi2(3) = 4.73 Pr>chi2 = 0.1927 Score test for trend of odds:
chi2(1) Pr>chi2
= =
0.05 0.8230
Référence : X=1 (niveau d'études primaire) . tabodds ct et4,or base(2) --------------------------------------------------------------------------et4 | Odds Ratio chi2 P>chi2 [95% Conf. Interval] -------------+------------------------------------------------------------0 | 3.875000 4.50 0.0339 1.005237 14.937391 1 | 1.000000 . . . . 2 | 1.247012 1.15 0.2835 0.832377 1.868192 3 | 1.271641 1.15 0.2837 0.818647 1.975296 --------------------------------------------------------------------------Test of homogeneity (equal odds): chi2(3) = 4.73 Pr>chi2 = 0.1927 Score test for trend of odds:
chi2(1) Pr>chi2
= =
0.05 0.8230
Finalement, le choix de la catégorie de référence : - n'a pas de conséquence pour retrouver les différents odds ratios : 0,338 1,07 = 0,315 - peut changer "l'impression" donnée par les odds ratios présentés ou leur précision si une catégorie a un effectif petit Régression logistique
31
B. Modélisation de l'association GEU - tabac La décomposition en variables indicatrices ne tient pas compte de l'ordre des catégories de la variable tabac. => perte de puissance possible s'il y a une relation dose-effet. 0:acc | 0:nf;1:1-9;2:10-19;3:>=20 1:GEU | 0 1 2 3 | Total -----------+--------------------------------------------+---------0 | 809 158 106 71 | 1,144 1 | 264 78 113 94 | 549 -----------+--------------------------------------------+---------Total | 1,073 236 219 165 | 1,693
OR(observé)
1
1,51
3,27
4,07
Le calcul des Logit P pour les 4 catégories de tabac donne : " Po % " 264 / 1073 % " 264 % Logit P0 = Ln $ = Ln = Ln $# ' $# ' = !1,12 809 / 1073 & 809 & # 1! Po '& de même : Logit P1 = - 0,71 Logit P2 = 0,064
Logit P3 = 0,28
D'où la représentation graphique : 1
Logit P
0,5 0 0
1
2
Tabac 3
-0,5 -1 -1,5
Régression logistique
32
=> on peut raisonnablement représenter la variation des logits en fonction de la quantité de cigarettes par une droite. Le modèle correspondant est : Logit P = α + β X . logit ct tabfc ......... Logit estimates
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
Log likelihood = -1014.1795
= = = =
1693 104.99 0.0000 0.0492
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------tabfc | .505858 .0499975 10.12 0.000 .4078648 .6038512 _cons | -1.120282 .0673178 -16.64 0.000 -1.252222 -.9883411 ------------------------------------------------------------------------------
exp(β) = exp(0,506) = 1,66 Nombre de cigarettes par jour X OR observé OR donné par le modèle Logit P = α + β X
0 0 1
1-9 10-19 ≥ 20 1 2 3 1,51 3,27 4,07
1
1,66
2,75
4,56
Les odds ratios donnés par le modèle sont différents des odds ratios observés, mais on a résumé l'association GEU - tabac par un seul paramètre : β = 0,506 (ou OR = 1,66). Pour trouver avec Stata l'odds ratio correspondant à X=2, la commande est lincom (linear combination). . lincom 2*tabfc,or ( 1)
2 tabfc = 0
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------(1) | 2.750317 .2750177 10.12 0.000 2.260825 3.345789 -----------------------------------------------------------------------------Régression logistique
33
Choix des valeurs numériques attribuées à chaque classe de X Nombre de cigarettes par jour X OR observé OR donné par le modèle Logit P = α + β X 1
0 0 1
1-9 10-19 ≥ 20 1 2 3 1,51 3,27 4,07
1
1,66
2,75
4,56
Logit P
0,5 0 0
1
Tabac 3
2
-0,5 -1 -1,5
Nombre de cigarettes par jour X' (centre de la classe) OR observé OR donné par le modèle Logit P = α + β X' 1
0 0 1
1-9 10-19 ≥ 20 5 15 30 1,51 3,27 4,07
1
1,30
2,21
4,87
Logit P
0,5 0 0
5
10
15
20
25
X' 30
-0,5 -1 -1,5
NB : il n’y a pas de test pour comparer les deux codages Régression logistique
34
Codage des variables 4. X quantitative Si on inclut X dans le modèle avec son codage initial, on obtient : Modèle 1 : Logit P = α + β X => la relation entre Logit P et X est supposée linéaire
On va voir deux grandes questions : • Comment tester si la relation est linéaire ? • En cas de non linéarité, comment modéliser la relation ?
Régression logistique
35
4.a Test de la linéarité de la relation entre Logit P et X • Transformer X en une variable discrète X' à k classes codées de 0 à k-1 (par exemple, une classe par année si X est l'âge). Modèle A : Logit P = αA + βA X' • Comparer par rapport des vraisemblances le modèle A et celui avec (k-1) variables X'i indicatrices des classes de X' (X'i=1 si X=i et X'i = 0 sinon) k"1
Modèle B : Logit P = α'A + # i Xi' i=1
Modèle 1 Logit P
Modèle A “vraie” relation entre X et Logit P
!A
Modèle B
!i X
Les modèles A et B sont identiques si βi = i × βA Régression logistique
36
Exemple Age et GEU 1. Age en années, variable continue : X m = 29,64 s = 4,96 min = 15,7
max = 46,2
Modèle 1 : Logit P = α + β X = -3,004 + 0,0772 X Ln V = -1068,14 2. Age en années, variable discrète : X’ Age | n ------------+------15 | 1 16 | 1 18 | 6 19 | 8 20 | 33 21 | 42 22 | 41 23 | 67 24 | 116 25 | 111 26 | 118 27 | 151 28 | 148 29 | 130 30 | 113 31 | 119 32 | 76 33 | 93 34 | 80 35 | 75 36 | 51 37 | 39 38 | 31 39 | 28 40 | 21 41 | 10 42 | 4 43 | 3 44 | 3 45 | 1 46 | 1 ------------+------Total | 1721
X’ | n ------------+------18 | 8 19 | 8 20 | 33 21 | 42 22 | 41 23 | 67 24 | 116 25 | 111 26 | 118 27 | 151 28 | 148 29 | 130 30 | 113 31 | 119 32 | 76 33 | 93 34 | 80 35 | 75 36 | 51 37 | 39 38 | 31 39 | 28 40 | 21 41 | 10 42 | 4 43 | 3 44 | 5 ------------+------Total | 1721
Modèle A : Logit P = αA + βA X’ = -2,981 + 0,0778 X’
Ln V = - 1067,88
Modèles A et 1 non comparables par rapport des vraisemblances Régression logistique
37
3. Age en variables indicatrices : Xi Modèle B : Logit P = α’A +
i = 1 , 27
26 ' ! X i i i1
"
Age Acc. GEU Odds ratio [95% Conf. Interval] ------------------------------------------------------------18 5 3 1.696552 0.377761 7.619343 19 7 1 0.403941 0.046895 3.479405 20 27 6 0.628352 0.234148 1.686228 21 34 8 0.665314 0.274804 1.610762 22 33 8 0.685475 0.282668 1.662291 23 49 18 1.038705 0.521854 2.067453 24 80 36 1.272414 0.712357 2.272787 25 82 29 1 (catégorie de référence) 26 92 26 0.799100 0.434483 1.469705 27 102 49 1.358350 0.787002 2.344487 28 103 45 1.235353 0.711889 2.143730 29 93 37 1.124954 0.635569 1.991162 30 65 48 2.088064 1.175975 3.707569 31 85 34 1.131034 0.631731 2.024973 32 54 22 1.151980 0.598965 2.215583 33 56 37 1.868227 1.024366 3.407250 34 41 39 2.689655 1.434744 5.042186 35 43 32 2.104250 1.115467 3.969521 36 34 17 1.413793 0.685327 2.916580 37 22 17 2.184953 1.006794 4.741803 38 16 15 2.650862 1.142569 6.150237 39 11 17 4.369906 1.754933 10.881369 40 6 15 7.068966 2.324871 21.493779 41 3 7 6.597701 1.508532 28.855650 42 2 2 2.827586 0.373665 21.396827 43 1 2 5.655172 0.476079 67.175779 44 1 4 11.310345 1.122119 114.002073 ----------------------------------------------------------Test of homogeneity (equal odds): chi2(26) = 85.75 Pr>chi2 = 0.0000 Score test for trend of odds:
Régression logistique
chi2(1) Pr>chi2
= =
55.45 0.0000
38
Age Acc. GEU Odds ratio [95% Conf. Interval] ------------------------------------------------------------18 5 3 1.696552 0.377761 7.619343 19 7 1 0.403941 0.046895 3.479405 20 27 6 0.628352 0.234148 1.686228 21 34 8 0.665314 0.274804 1.610762 22 33 8 0.685475 0.282668 1.662291 23 49 18 1.038705 0.521854 2.067453 24 80 36 1.272414 0.712357 2.272787 25 82 29 1 (catégorie de référence) 26 92 26 0.799100 0.434483 1.469705 27 102 49 1.358350 0.787002 2.344487 28 103 45 1.235353 0.711889 2.143730 29 93 37 1.124954 0.635569 1.991162 30 65 48 2.088064 1.175975 3.707569 31 85 34 1.131034 0.631731 2.024973 32 54 22 1.151980 0.598965 2.215583 33 56 37 1.868227 1.024366 3.407250 34 41 39 2.689655 1.434744 5.042186 35 43 32 2.104250 1.115467 3.969521 36 34 17 1.413793 0.685327 2.916580 37 22 17 2.184953 1.006794 4.741803 38 16 15 2.650862 1.142569 6.150237 39 11 17 4.369906 1.754933 10.881369 40 6 15 7.068966 2.324871 21.493779 41 3 7 6.597701 1.508532 28.855650 42 2 2 2.827586 0.373665 21.396827 43 1 2 5.655172 0.476079 67.175779 44 1 4 11.310345 1.122119 114.002073
-2
-1.5
-1
Logit P -.5 0
.5
1
1.5
-----------------------------------------------------------
15
Régression logistique
20
25
30 âge (années)
35
40
45
39
Ln V = -1068,14
Modèle A : Logit P = αA + βA X’ = -2,981 + 0,0778 X’
Ln V = - 1067,88
26 !iXi' Modèle B : Logit P = α’A + "i=1
Ln V = - 1053,51
-2
-1.5
-1
Logit P -.5 0
.5
1
1.5
Modèle 1 : Logit P = α + β X = -3,004 + 0,0772 X
15
20
25
30 âge (années)
Logit observés
Modèle 1
Modèle A
Modèle B
35
40
45
On ne peut comparer que les modèles A et B : V χo2 = 2 Ln B = 2 Ln (VB) - 2 Ln (VA) VA = -2107,02 - (-2135,76) = 28,74 à 25 ddl p = 0,27 Les modèles A et B ne sont pas significativement différents. Régression logistique
40
Conclusion • Il n'y a pas de raisons statistiques de préférer le modèle B au modèle A • On ne rejette pas la linéarité (ou : la linéarité est acceptable) • En pratique, on prend le modèle A : Logit P = -2,981 + 0,0778 X’ (ou le modèle 1 : Logit P = -3,004 + 0,0772 X) Le coefficient 0,0778 (ou l'OR correspondant e0,0778=1,08) n'est cependant pas facile à "communiquer". D'où des regroupements en classes d'âge plus grandes (voir plus loin).
Régression logistique
41
4.b Modélisation de la relation entre Logit P et X Deux grands types de méthodes : • Ajustement local (ou "non paramétrique") - transformation de X en une variable en escalier - fonctions splines - régressions locales pondérées (lowess) avantages : flexibilité, bonne adaptation aux données observées inconvénients : choix des points de coupure ou des intervalles, reproductibilité sur d'autres données, sur-ajustement, pas de forme mathématique (pour lowess), pas d'approche reconnue pour sélectionner le meilleur le modèle
• Ajustement global - polynômes de degré supérieur à 1 - polynômes fractionnaires avantages : simplicité, exportable à d'autres données inconvénients : manque de flexibilité, pas d'asymptote (pour la première méthode artéfacts (si degré élevé)
Régression logistique
42
Transformation de X en fonction en escalier • C'est ce qui a été fait précédemment pour tester la linéarité • En général, on prend des classes plus larges pour limiter les "à-coups" (fluctuations d'échantillonnage) dus aux petits effectifs dans chaque classe. Par exemple, classes de 5 ans
Age
OR
15-19
0,98 [0,31 - 3,1]
20-24
1
25-29
1,2 [0,85 - 1,6]
30-34
1,8 [1,3 - 2,4]
35-39
2,3 [1,6 - 3,3]
40-44
6,8 [3,4 - 13]
Régression logistique
43
Fonctions spline Principe général • L'ensemble des valeurs de la variable X est découpé en intervalles • Au sein de chaque intervalle, la relation entre Y et X est modélisée par un polynôme de degré m • Les polynômes sont choisis de sorte que la courbe totale soit continue, et dérivable m-1 fois ("pas d'angles")
Choix à faire • Valeur de m (le choix le plus fréquent est m=3) • Nombre de nœuds et leur emplacement
Régression logistique
44
Splines linéaires (m=1) • La relation entre Logit P et X est représentée par une fonction linéaire par morceaux
.6 .5 .4
nœud à 29
0
.1
.2
.3
Probabilité
.7
.8
.9
1
1 nœud (donc 2 droites)
15
25
probabilités observées
modèle linéaire
Spline avec 1 noeud
Intervalle de confiance
âge (années)
35
45
Attention : l'angle n'indique pas l'âge de rupture de pente, mais l'emplacement choisi du nœud
Régression logistique
45
1 .9 .8 .7 .6 .5 .4 0
.1
.2
.3
Probabilité
nœuds à : 25, 27, 30, 34
25
modèle linéaire
Spline avec 4 noeuds
Intervalle de confiance
âge (années)
35
45
.6 .4
.5
noeuds à : 24, 26, 28, 30, 32, 35
0
.1
.2
.3
Probabilité
.7
.8
.9
1
15
probabilités observées
15
Régression logistique
25
probabilités observées
modèle linéaire
Spline avec 6 noeuds
Intervalle de confiance
âge (années)
35
45
46
.6 .5 .4 0
.1
.2
.3
Probabilité
.7
.8
.9
1
Splines cubiques (m=3)
25
modèle linéaire
Spline avec 5 noeuds
Intervalle de confiance
âge (années)
35
45
.6 .5 .4 0
.1
.2
.3
Probabilité
.7
.8
.9
1
15
probabilités observées
15
25
probabilités observées
modèle linéaire
Spline avec 12 noeuds
Intervalle de confiance
âge (années)
35
45
Les fonctions spline ont tendance à un être sensibles aux valeurs observées excentriques dans le premier et le dernier intervalle Régression logistique
47
Spline cubiques restreints (rectricted cubic splines)
.6 .5 .4 0
.1
.2
.3
Probabilité
.7
.8
.9
1
Ce sont les mêmes fonctions que précédemment (m=3), mais avec la contrainte d'être linéaires pour les deux intervalles extrêmes
15
Régression logistique
25
probabilités observées
modèle linéaire
Spline avec 5 noeuds
Intervalle de confiance
âge (années)
35
45
48
Régressions locales pondérées La valeur de la courbe en chaque point est obtenue par régression pondérée des valeurs observées des points situés autour Lowess smoother
-2
-1
Logit P 0
1
2
Logit transformed smooth
10
20
30 âge (années)
40
50
bandwidth = .8
Une des difficultés est le choix de la largeur de l'intervalle autour de chaque point (bandwith)
Lowess smoother Logit transformed smooth
Logit P 0 -2
-2
-1
-1
Logit P 0
1
1
2
2
Lowess smoother Logit transformed smooth
10
20
bandwidth = .4
Régression logistique
30 âge (années)
40
50
10
20
30 âge (années)
40
50
bandwidth = .2
49
Polynômes de degré supérieur à 1 Logit P = α1 + β1 X + β2 X2 + β3 X3 + …+ βm Xm Test de la linéarité facile : comparaison au modèle linéaire par le rapport de vraisemblances Peu de souplesse Difficulté à représenter certaines formes de relation entre Y et X
.6 .5 .4
p =0,13
0
.1
.2
.3
Probabilité
.7
.8
.9
1
Comparaison au modèle linéaire
25
modèle linéaire
Polynôme de degré 3
Intervalle de confiance
âge (années)
35
45
.6 .4
.5
p =0,18
0
.1
.2
.3
Probabilité
.7
.8
.9
1
15
probabilités observées
15
Régression logistique
25
probabilités observées
modèle linéaire
Polynôme de degré 7
Intervalle de confiance
âge (années)
35
45
50
Polynômes fractionnaires
Principe : PFm est une extension des polynômes ordinaires où les exposants peuvent être négatifs ou non entiers pris dans l'ensemble prédéfini de valaurs S ={-2; -1; -0,5; 0; 0,5; 1; 2; max(3,m)} avec x = lnx 0
m
PFm = 0 + # j x j où p j " S p
j=1
Les puissances peuvent être répétées m fois. Par exemple, pour PF2, on peut avoir !1xp1 + !2 xp1 ln(x) . Il y a donc 8 PF1 et 36 PF2. On peut ainsi obtenir la plupart des formes de fonctions.
Généralisation possible à la modélisation simultanée de plusieurs variables continues.
Royston P, Sauerbrei W. Building multivariable regression models with continuous covariates in clinical epidemiology--with an emphasis on fractional polynomials. Methods Inf Med. 2005;44(4):56171.
Régression logistique
51
Puissances différentes Puissances de X
!0,8
Formes des courbes
1 1 ! 2 ln(x) x2 x2
3,5
(-2, 0)
3 2,5 2
1 + ln(x) x
1,5 1 0,5 0 0
5
10
15
20
25
0,2 x 3 ! 0,6 x 3 ln(x)
Régression logistique
52
Mêmes puissances, coefficients différents Puissances de X
!0,8
Formes des courbes
1 1 ! 2 ln(x) x2 x2
1 1 + ln(x) 2 2 x x
Régression logistique
53
Exemple : relation GEU - âge Fonction avec deux termes . fracpoly logit ct agea, adjust(no) ........ -> gen double Iagea__1 = X^3 if e(sample) -> gen double Iagea__2 = X^3*ln(X) if e(sample) (where: X = agea/10) Iteration Iteration Iteration Iteration
0: 1: 2: 3:
log log log log
likelihood likelihood likelihood likelihood
= -1095.6718 = -1066.218 = -1066.0849 = -1066.0849
Logit estimates
Number of obs LR chi2(2) Prob > chi2 Pseudo R2
Log likelihood = -1066.0849
= = = =
1721 59.17 0.0000 0.0270
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------Iagea__1 | -.0046151 .0570651 -0.08 0.936 -.1164608 .1072305 Iagea__2 | .0217779 .0382244 0.57 0.569 -.0531406 .0966964 _cons | -1.254525 .3813804 -3.29 0.001 -2.002017 -.5070328 -----------------------------------------------------------------------------Deviance: 2132.170. Best powers of agea among 44 models fit: 3 3.
.6 .5 .4 0
.1
.2
.3
Probabilité
.7
.8
.9
1
Logit P = -1,25 - 0,0046 x3 + 0,022 x3 ln(x)
15
Régression logistique
25
probabilités observées
modèle linéaire
fracpoly 3 3
Intervalle de confiance
âge (années)
35
45
54
Fonction avec quatre termes . * quatre termes (prob sert au graphe plus loin) . fracpoly logit ct agea, degre(4) adjust(no) .............................................................................. > ........................................................................ -> gen double Iagea__1 = X^-2 if e(sample) -> gen double Iagea__2 = X^-2*ln(X) if e(sample) -> gen double Iagea__3 = X^-2*ln(X)^2 if e(sample) -> gen double Iagea__4 = X^-2*ln(X)^3 if e(sample) (where: X = agea/10) .............. Logit estimates
Number of obs LR chi2(4) Prob > chi2 Pseudo R2
Log likelihood = -1062.4287
= = = =
1721 66.49 0.0000 0.0303
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------Iagea__1 | 90.03172 54.37235 1.66 0.098 -16.53613 196.5996 Iagea__2 | -919.1266 392.5738 -2.34 0.019 -1688.557 -149.6961 Iagea__3 | 929.3392 412.5161 2.25 0.024 120.8226 1737.856 Iagea__4 | -730.0777 296.9745 -2.46 0.014 -1312.137 -148.0183 _cons | 84.40801 31.59011 2.67 0.008 22.49254 146.3235 -----------------------------------------------------------------------------Deviance: 2124.857. Best powers of agea among 494 models fit: -2 -2 -2 -2.
.6 .5 .4 0
.1
.2
.3
Probabilité
.7
.8
.9
1
Logit P = 84,4 + 90,0 x-2 - 919,1 x-2 ln(x) + 929,3 x-2 [ln(x)]2 - 730,1 x-2 [ln(x)]3
15
Régression logistique
25
probabilités observées
modèle linéaire
fracpoly -2 -2 -2 -2
Intervalle de confiance
âge (années)
35
45
55
1 .9 .8 .7 .6 .5 .4 .2
.3
Probabilité
.1
fracpoly 3 3
fracpoly -2 -2 -2 -2
0
probabilités observées
15
Régression logistique
25
âge (années)
35
45
56
Présentation des résultats Pour trouver un compromis entre la modélisation de l’âge obtenu et une présentation “lisible” des résultats, on peut faire des classes d’âge et calculer les OR avec les polynômes fractionnaires en prenant les centres de ces classes.
Age 15-19
OR observés
2 termes
0,98 [0,31 - 3,1] 0,91 [0,73 - 1,1]
4 termes 2,4 [0,33 - 18]
20-24
1
1
1
25-29
1,2 [0,85 - 1,6]
1,2 [1,0 - 1,5]
1,6 [1,1 - 2,1]
30-34
1,8 [1,3 - 2,4]
1,7 [1,3 - 2,3]
2,0 [1,4 - 2,8]
35-39
2,3 [1,6 - 3,3]
2,9 [2,1 - 4,0]
3,2 [ 2,4 - 4,7]
40-44
6,8 [3,4 - 13]
6,3 [3,7 - 11]
9,1 [4,7 - 17]
Régression logistique
57
Stratégie de choix du modèle FPm = polynômes fractionnaires avec m termes
1. Choisir le meilleur modèle FP2 2. Comparer ce modèle avec celui n'incluant pas la variable X o si NS : stop (X n'est pas inclus dans l'analyse) 3. Sinon, comparer le meilleur FP2 avec modèle linéaire o si NS : linéarité acceptée o sinon : comparer le meilleur FP2 et le meilleur FP1
Pour les étapes ci-dessus : - le meilleur FPm est celui des FPm qui a la plus grande vraisemblance - on "considère" (vérifié par simulations) qu'un modèle FPm a 2m ddl (1 pour chaque coefficient, et 1 pour le choix de chaque puissance)
Régression logistique
58
. fracpoly logit ct agea, adjust(no) compare ........ -> gen double Iagea__1 = X^3 if e(sample) -> gen double Iagea__2 = X^3*ln(X) if e(sample) (where: X = agea/10) Iteration Iteration Iteration Iteration
0: 1: 2: 3:
log log log log
likelihood likelihood likelihood likelihood
= -1095.6718 = -1066.218 = -1066.0849 = -1066.0849
Logistic regression Log likelihood = -1066.0849
Number of obs LR chi2(2) Prob > chi2 Pseudo R2
= = = =
1721 59.17 0.0000 0.0270
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------Iagea__1 | -.0046151 .0570651 -0.08 0.936 -.1164608 .1072305 Iagea__2 | .0217779 .0382244 0.57 0.569 -.0531406 .0966964 _cons | -1.254525 .3813804 -3.29 0.001 -2.002017 -.5070328 -----------------------------------------------------------------------------Deviance: 2132.17. Best powers of agea among 44 models fit: 3 3. Fractional polynomial model comparisons: --------------------------------------------------------------agea df Deviance Gain P(term) Powers --------------------------------------------------------------Not in model 0 2191.344 --Linear 1 2136.240 0.000 0.000 1 m = 1 2 2132.496 3.744 0.053 3 m = 2 4 2132.170 4.070 0.850 3 3 ---------------------------------------------------------------
Ici on retiendra le modèle linéaire
Régression logistique
59
Interaction Le modèle Logit P = α+βE+γX suppose l’absence d’interaction : -> Ln ORE = α + β + γ - (α +γ) = β -> Ln ORE = α + β - α = β
X=1 X=0
En présence d’une interaction, on a : -> Ln ORE = β + δ -> Ln ORE = β
X=1 X=0
d’où le modèle : Logit P = α + βE + γX + δEX avec
EX=0 si E=0 ou X=0 EX=1 si E=X=1
Régression logistique
60
Exemple d’interaction Induction de la grossesse : 0 = non induite 1 = induction par Clomid Age30 : 0 = âge < 30 ans 1 = âge ≥ 30 ans . xi:logit ct i.age30*i.clomid i.age30 _Iage30_0-1 i.clomid _Iclomid_0-1 i.age30*i.clo~d _IageXclo_#_#
(naturally coded; _Iage30_0 omitted) (naturally coded; _Iclomid_0 omitted) (coded as above)
........ Logistic regression Log likelihood =
-1046.124
Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1683 44.67 0.0000 0.0209
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Iage30_1 | .6511233 .1072584 6.07 0.000 .4409006 .8613459 _Iclomid_1 | 1.234339 .3807449 3.24 0.001 .4880927 1.980585 _IageXclo_~1 | -1.127027 .5354195 -2.10 0.035 -2.17643 -.0776236 _cons | -1.0267 .0744555 -13.79 0.000 -1.17263 -.8807696 ------------------------------------------------------------------------------
Logit P = -1,02 + 0,59 AGE30 + 1,24 CLOMID - 1,06 AGE30×CLOMID Il y a deux odds-ratios associé au Clomid : • chez les femmes de moins de 30 ans : OR = e1,24 = 3,46 • chez les femmes de plus de 30 ans: OR = e1,24-1,06 = 1,20 Le test du coefficient de la variable d’interaction est un test de comparaison de ces deux odds-ratios. Il est ici à la limite de la signification. Régression logistique
61
Intervalle de confiance des odds ratios en présence d’interaction Logit P = α + βE + γX + δEX Ln OR1 = β
Ln OR2 = β + δ
! ! IC de β : ! ± 1, 96 var(!) ! ! ! ! IC de β+δ : ! + " ± 1, 96 var(! + ") ! ! ! ! ! ! = ! + " ± 1, 96 var(!) + var(" ) + 2 cov(!, ") . xi:logistic ct i.age30*i.clomid i.age30 _Iage30_0-1 i.clomid _Iclomid_0-1 i.age30*i.clo~d _IageXclo_#_# Logistic regression Log likelihood =
-1046.124
(naturally coded; _Iage30_0 omitted) (naturally coded; _Iclomid_0 omitted) (coded as above) Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1683 44.67 0.0000 0.0209
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Iage30_1 | 1.917694 .2056888 6.07 0.000 1.554106 2.366344 _Iclomid_1 | 3.436107 1.30828 3.24 0.001 1.629206 7.246984 _IageXclo_~1 | .3239952 .1734733 -2.10 0.035 .1134459 .9253126 -----------------------------------------------------------------------------. lincom _Iclomid_1 + _IageXclo_1_1 ( 1)
_Iclomid_1 + _IageXclo_1_1 = 0
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------(1) | 1.113282 .4190843 0.29 0.776 .5323271 2.328262 ------------------------------------------------------------------------------
Régression logistique
62
Interaction et facteur à plus de 2 classes X en 3 classes -> décomposition en X1 et X2 Logit P = α + βE + β1X1 + β2X2 + δ1EX1 + δ2EX2 Test de l’interaction : Ho : δ1 = 0 et δ2 = 0 Exemple agec = 1 : ≤ 29 ; 2 : 30-34 ; 3 : ≥ 35 . xi:logistic ct i.agec3*i.clomid i.agec3 _Iagec3_1-3 i.clomid _Iclomid_0-1 i.agec3*i.clo~d _IageXclo_#_# Logistic regression Log likelihood = -1041.5811
(naturally coded; _Iagec3_1 omitted) (naturally coded; _Iclomid_0 omitted) (coded as above) Number of obs LR chi2(5) Prob > chi2 Pseudo R2
= = = =
1683 53.76 0.0000 0.0252
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Iagec3_2 | 1.690709 .1984507 4.47 0.000 1.343251 2.128043 _Iagec3_3 | 2.729796 .456932 6.00 0.000 1.966302 3.789746 _Iclomid_1 | 3.436107 1.30828 3.24 0.001 1.629206 7.246984 _IageXcl~2_1 | .2746101 .1623754 -2.19 0.029 .0861799 .8750387 _IageXcl~3_1 | .4960688 .4152706 -0.84 0.402 .0961572 2.559188 ------------------------------------------------------------------------------
Test de l’interaction . testparm _IageX* ( 1) ( 2)
_IageXclo_2_1 = 0 _IageXclo_3_1 = 0 chi2( 2) = Prob > chi2 =
4.82 0.0898
Attention : 3,46 = ORClomid chez les femmes < 29 ans
Régression logistique
63
Interaction et variable continue Logit P = α + βE + γX + δEX Exemple agea = âge en années . xi:logistic ct i.clomid*agea i.clomid _Iclomid_0-1 i.clomid*agea _IcloXagea_# Logistic regression Log likelihood = -1036.5066
(naturally coded; _Iclomid_0 omitted) (coded as above) Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1683 63.91 0.0000 0.0299
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Iclomid_1 | 112.8515 213.0682 2.50 0.012 2.788712 4566.787 agea | 1.084319 .0119044 7.37 0.000 1.061237 1.107904 _IcloXagea_1 | .8735553 .0537033 -2.20 0.028 .7743929 .9854156 ------------------------------------------------------------------------------
Attention : 112,9 = ORClomid chez les femmes de 0 ans !
Régression logistique
64
Choix des variables à inclure dans un modèle logistique ◊ Ce choix repose sur un “mélange” : - de connaissances scientifiques du problème - d’utilisation de méthodes statistiques - d’expérience et de bon sens ◊ L'objectif est de parvenir au “meilleur” modèle pour la question que l’on se pose. - variables scientifiquement importantes prises en compte - phénomènes de confusion contrôlés - résultats suffisamment stables pour être extrapolables ◊ Il faut trouver un équilibre entre : - Trop de facteurs pris en compte • perte de puissance • sur-ajustement • résultats instables, et moins interprétables - Pas assez de facteurs pris en compte • possibilité de confusion résiduelle • moins bonne adéquation du modèle • interprétation plus facile
◊ On peut isoler deux étapes 1 . Choix des variables “candidates” 2 . Sélection des variables à inclure dans le modèle final
Régression logistique
65
1. Choix des variables “candidates” Au moment du protocole Le choix en partie fait à ce moment (les variables doivent figurer dans le questionnaire ...) - connaissance scientifique de la question - hypothèses nouvelles à tester ou résultats anciens à confirmer - revue bibliographique - facteurs de risque reconnus de la maladie
(souvent inclus de façon
systématique dans les analyses ultérieures)
Au moment de l’analyse ◊ Commencer par une analyse univariée détaillée et complète pour : - examiner les liens entre les facteurs de risque reconnus et la maladie - identifier les autres facteurs de risque => étudier de façon systématique les liens entre les différentes variables de l’enquête et la maladie retenir celles dont le degré de signification est inférieur à 20 ou 25%
- choisir le codages des variables regroupement de catégories des variables qualitatives nominales représentation des variables qualitatives ordinales et quantitatives Ce choix pourra être rediscuté dans la suite de l’analyse
Régression logistique
66
◊ Rechercher les interactions à prendre en compte Ce choix pourra aussi être revu dans la suite de l’analyse après ajustement sur les autres variables
- rechercher les interactions au cas par cas (et quand il y a “une certaine logique”) par analyse “bivariée” - leur prise en compte permet de s’écarter du modèle multiplicatif (notamment en cas de défaut d’adéquation du modèle) - en pratique, on ne prend en compte que rarement les interactions d’ordre supérieur à 2 - ne retenir que le minimum de termes d’interaction car ils rendent l’interprétation du modèle difficile voire impossible ◊ Dans les étapes précédentes : - porter une attention particulière aux variables dont la répartition est déséquilibrée, notamment les variables pour lesquelles les tableaux croisés avec la maladie comportent des 0. Elles sont généralement à l’origine de problèmes numériques et d’instabilité dans les analyses ultérieures. Ces problèmes sont d’autant plus fréquent que la taille de l’échantillon est petite - ne pas conserver deux variables qui représentent à peu près la même chose. Exemple : intervention chirurgicale sur les trompes (ctub:chirurgie tubaire) et antécédent de GEU (ageu). Les GEU étaient presque toutes traitées chirurgicalement . tab ctub ageu chir | atcd geu tubaire | 0 1 | Total -----------+----------------------+---------0 | 1,540 1 | 1,541 1 | 70 114 | 184 -----------+----------------------+---------Total | 1,610 115 | 1,725 Régression logistique
67
. xi:logistic ct ctub Logit estimates
Number of obs = 1725 LR chi2(1) = 177.23 Prob > chi2 = 0.0000 Log likelihood = -1008.6796 Pseudo R2 = 0.0808 -----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------ctub | 9.301395 1.744355 11.892 0.000 6.440452 13.43321 -----------------------------------------------------------------------------. xi:logistic ct ageu Logit estimates
Number of obs = 1725 LR chi2(1) = 148.57 Prob > chi2 = 0.0000 Log likelihood = -1023.0071 Pseudo R2 = 0.0677 -----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------ageu | 14.78487 4.064804 9.797 0.000 8.625745 25.34185 -----------------------------------------------------------------------------. xi:logistic ct ctub ageu Logit estimates
Number of obs = 1725 LR chi2(2) = 188.82 Prob > chi2 = 0.0000 Log likelihood = -1002.8848 Pseudo R2 = 0.0860 -----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------ctub | 4.823154 1.230297 6.168 0.000 2.925536 7.951641 ageu | 3.390356 1.235498 3.350 0.001 1.659795 6.925261 ------------------------------------------------------------------------------
On note une forte variation des OR lorsque les deux variables sont incluses ensembles. Si on introduit un terme d’interaction, les estimations des OR deviennent aberrantes. . xi:logistic ct i.ctub*ageu i.ctub _Ictub_0-1 i.ctub*ageu _IctuXageu_# Logit estimates Log likelihood = -1002.3048
(naturally coded; _Ictub_0 omitted) (coded as above) Number of obs LR chi2(3) Prob > chi2 Pseudo R2
= = = =
1725 189.98 0.0000 0.0866
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------_Ictub_1 | 4.963675 1.281329 6.21 0.000 2.992769 8.232535 ageu | 2.69e+08 9.94e+07 52.62 0.000 1.31e+08 5.55e+08 _IctuXageu_1 | 1.19e-08 . . . . . -----------------------------------------------------------------------------Régression logistique
68
2. Sélection des variables à inclure dans le modèle final • Si - l’étape précédente a été faite soigneusement
(et cela peut prendre
du temps ...)
- on a une bonne connaissance du problème et/ou une expérience suffisante - les données s’y prêtent ..., le nombre de variables retenues est limité et on peut toutes les garder.
• Sinon - on peut retirer les variables dont le rôle de confusion est jugé négligeable (cela se justifie surtout lorsqu’on a une exposition d’intérêt, les autres variables étant des facteurs de confusion potentiels). modèle complet : Logit P = ! "E # "i Xi On retire une (ou des) variables Xi du modèle à condition que les effets de confusion soient correctement pris en compte c’est-àdire que le retrait des variables ne modifie pas (trop) la valeur du coefficient β de l’exposition d’intérêt principal. - on peut retirer les variables dont le coefficient est non significativement différent de 0. C’est ce que propose les procédures pas à pas (“stepwise”) de la plupart des logiciels. Régression logistique
69
Sélection des variables selon la modification du coefficient de la variable E d’intérêt Exemple : association entre GEU et age>30ans ajustée sur les facteurs de confusion potentiels . epiconf ct age30, cat(tabf univf fprof afcs aivg ageu ainf clomid ptub) Assessment of Confounding Effects Using Change-in-Estimate Method ----------------------------------------------------------Outcome: "ct" Exposure: "age30" N = 1721 ----------------------------------------------------------Forward approach Potential confounders were added one at a time sequentially ------------+------------------------------------------------| Change in Odds ratio Adj Var | Odds Ratio 95% CI --------------------| % p>|z| ------------+------------------------------------------------Crude | 1.86 1.52, 2.28 . . +i.ptub | 1.59 1.28, 1.98 -14.5 0.00006 +i.ainf | 1.45 1.16, 1.81 -8.8 0.00011 +i.tabf | 1.54 1.22, 1.94 6.2 0.08404 +i.afcs | 1.46 1.15, 1.85 -5.3 0.01621 +i.univf | 1.39 1.09, 1.77 -4.6 0.04278 +i.ageu | 1.36 1.06, 1.73 -2.4 0.18202 +i.fprof | 1.31 0.98, 1.75 -3.5 0.64882 +i.clomid | 1.37 1.02, 1.83 4.4 0.04506 +i.aivg* | 1.35 1.01, 1.81 -1.2 0.52572 ------------+------------------------------------------------*Adjusted for all potential confounders Potential confounders were added one at a time sequentially
Odds Ratio and 95% CI
2.5
2
1.5
1 Crude
Régression logistique
+i.ptub +i.ainf +i.tabf +i.afcs +i.univf +i.ageu +i.fprof +i.clomi +i.aivg* *Adj. all
70
Procédures pas à pas
• Procédure descendante On part du modèle “complet” contenant toutes les variables Xi retenues. On retire successivement la variable Xk dont le lien avec la maladie (ajusté sur les autres variables) est le moins fort.
• Procédure ascendante • Procédure mixte • Possibilité de “forcer des variables”
Avantages des procédures automatiques • utilisation facile • examen systématique et standardisé de l’ensemble des variables Inconvénients • fondées sur des critères uniquement statistiques • absence de considérations épidémiologiques
Régression logistique
71
Exemple de procédure pas à pas Modèle complet . xi:logistic ct ctub i.agec tabf univf aacc afcs aivg ainf clomid i.agec _Iagec_1-4 (naturally coded; _Iagec_1 omitted) Logistic regression Log likelihood = -863.89877
Number of obs LR chi2(11) Prob > chi2 Pseudo R2
= = = =
1620 302.66 0.0000 0.1491
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------ctub | 7.013603 1.494834 9.14 0.000 4.618719 10.65027 _Iagec_2 | .9546271 .1684652 -0.26 0.792 .6754922 1.349109 _Iagec_3 | 1.129204 .2221663 0.62 0.537 .767895 1.660515 _Iagec_4 | 1.511209 .3402516 1.83 0.067 .9720194 2.349493 tabf | 2.870179 .3520079 8.60 0.000 2.256914 3.650086 univf | 1.119296 .1614575 0.78 0.435 .843645 1.485012 aacc | 1.164726 .154432 1.15 0.250 .8981772 1.510376 afcs | 1.422089 .201092 2.49 0.013 1.077858 1.876255 aivg | 1.153113 .1871847 0.88 0.380 .8388731 1.585066 ainf | 2.322488 .3787408 5.17 0.000 1.68711 3.197154 clomid | 1.372395 .445849 0.97 0.330 .726022 2.594229 ------------------------------------------------------------------------------
Régression logistique
72
• Procédure descendante . xi : sw logistic ct ctub (i.agec) tabf univf aacc afcs aivg ainf clomid, pr(.1) i.agec _Iagec_1-4 (naturally coded; _Iagec_1 omitted) begin with full model p p p p
= = = =
0.4346 0.3838 0.3023 0.3393
>= >= >= >=
0.1000 0.1000 0.1000 0.1000
removing removing removing removing
univf aivg clomid aacc
Logistic regression
Number of obs LR chi2(7) Prob > chi2 Pseudo R2
Log likelihood = -865.56246
= = = =
1620 299.33 0.0000 0.1474
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------ctub | 6.869142 1.459747 9.07 0.000 4.529137 10.41813 _Iagec_2 | 1.017915 .1745248 0.10 0.918 .727395 1.424468 _Iagec_3 | 1.259479 .2299461 1.26 0.206 .8806128 1.801345 _Iagec_4 | 1.721392 .3596468 2.60 0.009 1.142984 2.592505 tabf | 2.870837 .3463642 8.74 0.000 2.266271 3.636682 ainf | 2.35047 .3631405 5.53 0.000 1.736387 3.181726 afcs | 1.437321 .2023722 2.58 0.010 1.090702 1.894094 ------------------------------------------------------------------------------
• Procédure ascendante . xi : sw logistic ct ctub (i.agec) tabf univf aacc afcs aivg ainf clomid, pe(.1) i.agec _Iagec_1-4 (naturally coded; _Iagec_1 omitted) begin with empty model p p p p p
= = = = =
0.0000 0.0000 0.0000 0.0012 0.0180
< < < < <
0.1000 0.1000 0.1000 0.1000 0.1000
adding adding adding adding adding
Logistic regression Log likelihood = -865.56246
ctub tabf ainf afcs _Iagec_2 _Iagec_3 _Iagec_4 Number of obs LR chi2(7) Prob > chi2 Pseudo R2
= = = =
1620 299.33 0.0000 0.1474
-----------------------------------------------------------------------------ct | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------ctub | 6.869142 1.459747 9.07 0.000 4.529137 10.41813 tabf | 2.870837 .3463642 8.74 0.000 2.266271 3.636682 ainf | 2.35047 .3631405 5.53 0.000 1.736387 3.181726 afcs | 1.437321 .2023722 2.58 0.010 1.090702 1.894094 _Iagec_2 | 1.017915 .1745248 0.10 0.918 .727395 1.424468 _Iagec_3 | 1.259479 .2299461 1.26 0.206 .8806128 1.801345 _Iagec_4 | 1.721392 .3596468 2.60 0.009 1.142984 2.592505 ------------------------------------------------------------------------------
Régression logistique
73
2. Sélection des variables à inclure dans le modèle final (suite) ◊ Si les variables sont nombreuses, il est conseillé de les réunir en groupes homogènes qu’on commence par analyser séparément : - les procédures précédentes sont appliquées à chaque groupe. - certaines variables peuvent intervenir dans plusieurs sousanalyses : par exemple, on peut ajuster systématiquement l’analyse des antécédents sur l’âge.
Exemple : Y = Grossesse extra-utérine Variables Xi Carac. socio-prof.
Exposition potentielle aux MST
Age Tabac Activité professionnelle Origine française Niveau d'études
Infection gynécologique Sérologie positive pour Chlamydiae Trachomatis Toilette vaginale Age aux premiers rapports sexuels Nombre de partenaires
Antécédents chir. et obstét.
Fertilité
Appendicectomie Chirurgie tubaire Antécédent de GEU Antécédent de FCS Antécédent d'accouchement Antécédent d'IVG Endométriose
Antécédent de contraception Dernier mode de contraception Antécédent d'infécondité Grossesse induite
Régression logistique
74
2. Sélection des variables à inclure dans le modèle final (fin) ◊ Chaque fois que c’est nécessaire, il ne faut pas hésiter à revenir à l’analyse univariée pour bien comprendre les résultats des analyses multivariées. ◊ Toutes les étapes de l’analyses doivent être examinées avec soin pour s’assurer qu’on est capable d’interpréter les opérations réalisées (codage des variables, termes d’interaction, retrait ou ajout de variable ...). ◊ Sur le modèle “final”, il est possible de revoir (remettre en cause ?) le codage des variables et/ou la présence d’interactions.
Régression logistique
75
Utilisation du modèle logistique dans les enquêtes cas-témoins ◊ On peut utiliser le modèle logistique dans les enquêtes castémoins. Cela signifie que les coefficients β obtenus donnent toujours les odds-ratios par la relation OR = eβ.
◊ La raison “fondamentale" est que OR peut être estimé dans tous les types d’enquête.
◊ Démonstration Soit fo et f1 les fractions de sondage des témoins (Y = 0) et des malades (Y = 1). On a : P(Y=1|X) = f1
1 1 + exp{!(" + $ #i Xi )}
P(Y=0|X) = 1-P(Y=1|X) = f0
exp{!(" + $ #i Xi )} 1 + exp{!(" + $ #i Xi )}
D’où :
f P(Y = 1 | X) = 1 exp(" + $ #i Xi ) 1 ! P(Y = 1 | X) f0 Régression logistique
76
et donc : " f1 % " P(Y 1| X) % Logit P = Ln $ Ln $# f '& + ( + * )iXi = (’ + * )iXi # 1! P(Y 1| X) '& 0
(
)
Les coefficients βi (et donc les ORi) ne changent pas, mais la constante α n’est pas interprétable.
Régression logistique
77
Utilisation du modèle logistique dans les enquêtes avec appariement
Cas le plus courant : K paires composées chacune d’un cas et un témoin (donc n = 2K sujets au total). On peut envisager de tenir compte de l’appariement en ajustant sur les paires (comme si c’était des centres de recrutement différents de l’enquête). Pour cela, chaque paire peut être repérée par une variable "num" dont la valeur est le numéro de la paire. En considérant pour le moment le cas où il n’y a qu’une variable X dichotomique dont on veut estimer le coefficient β, le modèle logistique s'écrit : Logit P = ! + # !knumk + "X où numk sont les K-1 variables indicatrices obtenues en décomposant num.
Régression logistique
78
Logit P = ! + # !knumk + "X
N paramètres à estimer : α, β et les K-1 coefficients 2 des variables indicatrices (et ce nombre augmente avec la taille de l'échantillon). => Cela fait trop de paramètres pour que la méthode du maximum de vraisemblance soit valide. Il y a K+1 =
! !
On montre que e est une estimation de OR2 (voir un exemple plus loin)
Il y a 2 solutions : une approchée, et une exacte.
Régression logistique
79
1. Solution approchée Applicable si les critères d'appariement sont caractérisés par des variables explicites comportant un nombre limité et petit de catégories. On inclut ces variables dans le modèle (comme si c'étaient des facteurs de confusion). Cela revient à l’ajustement précédent avec un nombre plus petit de catégories. Exemple : enquête cas-témoins sur le cancer de la vessie Appariement sur : âge au diagnostic ± 5 ans zone de résidence (région parisienne et extérieur) origine ethnique (4 classes) hôpital (3 classes) . xi : logistic kt fumeur2 i.clage4 i.zonhab i.gpe_eth i.hopital i.clage4 Iclage_1-4 (naturally coded; Iclage_1 omitted) i.zonhab Izonha_1-2 (naturally coded; Izonha_1 omitted) i.gpe_eth Igpe_e_1-4 (naturally coded; Igpe_e_1 omitted) i.hopital Ihopit_1-3 (naturally coded; Ihopit_1 omitted) Logit estimates Log likelihood = -457.11449
Number of obs LR chi2(9) Prob > chi2 Pseudo R2
= = = =
680 28.45 0.0008 0.0302
-----------------------------------------------------------------------------kt | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------fumeur2 | 3.638717 .9847167 4.773 0.000 2.140891 6.184465 Iclage_2 | .930546 .2350044 -0.285 0.776 .567246 1.526526 Iclage_3 | .9507695 .2366336 -0.203 0.839 .5837444 1.548559 Iclage_4 | 1.187829 .2616775 0.781 0.435 .7713209 1.829249 Izonha_2 | 1.025328 .2094129 0.122 0.903 .6870896 1.530073 Igpe_e_2 | 1.374203 .7127476 0.613 0.540 .4972385 3.797845 Igpe_e_4 | 4.22443 5.134576 1.185 0.236 .3901006 45.74668 Ihopit_2 | .8903646 .1671587 -0.619 0.536 .6162568 1.286394 Ihopit_3 | .9016134 .1940742 -0.481 0.630 .5912858 1.374812 ------------------------------------------------------------------------------
Régression logistique
80
2. Solution exacte : régression logistique conditionnelle Doit être utilisée si l'appariement n'est pas fait sur des variables "explicites" (ex : frère ou sœur, voisin) ou si les catégories des variables d'appariement ont des effectifs petits. Exemple : cancer du poumon et tabac (enquête cas-témoin) Appariement sur : - âge au diagnostic ± 5 ans - hôpital - enquêteur . tab
agec ct
1:<40;2:40 | -44;...;9: |0=temoin;1=cas >=75 | 0 1 | Total -----------+-------------+------1 | 9 8 | 17 2 | 14 9 | 23 3 | 47 50 | 97 4 | 69 65 | 134 5 | 77 86 | 163 6 | 51 60 | 111 7 | 66 67 | 133 8 | 49 41 | 90 9 | 23 19 | 42 -----------+-------------+------Total | 405 405 | 810
. tab enq ct
. tab
numero de | l |0=temoin;1=cas enqueteur | 0 1 | Total -----------+--------------+------1 | 57 60 | 117 2 | 10 10 | 20 3 | 8 8 | 16 4 | 46 47 | 93 5 | 22 21 | 43 7 | 8 8 | 16 8 | 23 22 | 45 9 | 125 126 | 251 10 | 3 3 | 6 11 | 102 100 | 202 12 | 1 0 | 1 -----------+--------------+------Total | 405 405 | 810
numero de |0=temoin;1=cas l hopital | 0 1 | Total -----------+--------------+-----20 | 2 29 | 31 21 | 0 3 | 3 22 | 1 6 | 7 23 | 47 47 | 94 24 | 104 101 | 205 26 | 25 22 | 47 28 | 11 11 | 22 29 | 22 22 | 44 30 | 55 28 | 83 61 | 22 126 | 148 62 | 6 1 | 7 63 | 108 9 | 117 64 | 2 0 | 2 -----------+--------------+-----Total | 405 405 | 810
Régression logistique
hopital ct
81
Régression logistique conditionnelle On considère toujours le modèle : Logit P = ! + # !knumk + "X Comme il y a trop de coefficients à estimer, la solution adoptée est de renoncer à estimer les K-1 coefficients des variables indicatrices (qui ne servent d'ailleurs pas à grand chose). On n'estime alors que le coefficient β de la variable X.
La méthode consiste à utiliser une “autre vraisemblance” : la vraisemblance conditionnelle
formule
de
D'où le nom de régression logistique conditionnelle. Stata est pourvu d’une commande spécifique : clogit (qui correspond à un modèle mixte)
Régression logistique
82
Vraisemblance conditionnelle Exemple de l'appariement 1:1 Le modèle logistique s'écrit : Logit P = α + # ! knum k + "X. Les observations sont des paires constituées d'un cas et d'un témoin, chacun ayant une valeur de X. Par exemple, pour la paire numéro k : Valeur de X pour le cas : x1k Valeur de X pour le témoin : xok On montre que pour calculer la vraisemblance de l'échantillon en tenant compte de la non indépendance des observations, il faut : - faire le produit des vraisemblances Vk de chaque paire - calculer Vk, non pas parmi l'ensemble des paires possibles, mais en se restreignant à celles qui ont les mêmes marges (càd qui sont constituées de 1 cas et 1 témoin, avec les valeurs x1k et xok pour X). Il y a 2 configurations possibles avec les mêmes marges : - celle que l'on a observée - celle où les valeurs de X sont : x1k pour le témoin et xok pour le cas
-> vraisemblance conditionnelle de la paire k : Vk
Pk où Ptk
Pk = vraisemblance "habituelle" de la paire k Ptk = vraisemblance de l'ensemble des 2 configurations Régression logistique
83
Logit P = α + # ! knum k + "X • Pk = Pcas Ptémoin =
• Ptk =
1+e
1 1+e +
=
1
!("+" k +#x 1k )
!("+" k +#x 1k )
$
e !("+" k +#x 1k) 1 + e !("+" k +#x 1k)
$
e !("+" k +#x 0k) 1 + e !("+" k +#x 0k)
e !("+" k +#x 0k) 1 + e !("+" k +#x 0k)
$
1 1 + e !("+" k +#x 0k)
e !("+" k +#x 0k) + e !("+" k +#x 1k)
(1 + e!("+" +#x ) )(1 + e!("+" +#x ) ) k
1k
k
0k
d'où:
Pk 1 e !"x 0k Vk = = = Ptk e !"x 0k + e !"x 1k 1 + e !"(x 0k !x 1k) Vk ne dépend que de β => La vraisemblance totale V = ! Vk ne dépend que de β
Régression logistique
84
Remarques : • Vk =
1 1 + e !"(x 0k !x 1k)
Si les 2 sujets de la paire ont la même valeur de X (xok = x1k), on a Vk = 1/2. Vk étant indépendant de β n'intervient plus dans la recherche de la valeur de β rendant V maximum. La paire k peut donc être ignorée pour l'estimation de β. C'est une généralisation de la restriction aux "paires discordantes" pour le test de "χ2 apparié".
• Le principe de la vraisemblance conditionnelle s'étend aux cas où les "paires" sont constituées de plus d'un cas et d'un témoins (par exemple 2 témoins par cas, ou un nombre variables de témoins par cas).
Régression logistique
85
Exemple : cancer du poumon et tabac Les cas et les témoins sont appariés sur l'âge au diagnostic, l'hôpital et l'enquêteur. • Régression logistique conditionnelle . clogit ct fumeur,group( numero) Iteration Iteration Iteration Iteration Iteration
0: 1: 2: 3: 4:
log log log log log
likelihood likelihood likelihood likelihood likelihood
= = = = =
-254.86916 -222.38697 -219.30294 -219.15788 -219.15728
Conditional (fixed-effects) logistic regression Log likelihood = -219.15728
Number of obs LR chi2(1) Prob > chi2 Pseudo R2
= = = =
810 123.13 0.0000 0.2193
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------fumeur | 2.499945 .3136361 7.971 0.000 1.885229 3.11466 ------------------------------------------------------------------------------
! !
• Stratification sur les "paires" => e = OR2 . xi:logit ct fumeur i.numero i.numero Inume1-405 Iteration Iteration Iteration Iteration Iteration
0: 1: 2: 3: 4:
log log log log log
likelihood likelihood likelihood likelihood likelihood
Logit estimates Log likelihood = -438.31456
= = = = =
(Inume1 for numero==1000 omitted) -561.44922 -446.57331 -438.74295 -438.31705 -438.31456 Number of obs LR chi2(405) Prob > chi2 Pseudo R2
= = = =
810 246.27 1.0000 0.2193
-----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------fumeur | 4.999889 .4435385 11.273 0.000 4.13057 5.869209 Inume2 | -2.18e-15 2 0.000 1.000 -3.919928 3.919928 Inume3 | 2.499945 3.029936 0.825 0.409 -3.438621 8.43851 ..................................................................... ..................................................................... Inume404 | 2.499945 3.029936 0.825 0.409 -3.438621 8.43851 Inume405 | -2.20e-15 2 0.000 1.000 -3.919928 3.919928 _cons | -4.999889 1.482136 -3.373 0.001 -7.904822 -2.094956 -----------------------------------------------------------------------------Régression logistique
86
• Régression logistique conditionnelle . clogit ct fumeur,group( numero) Iteration 0: log likelihood = -254.86916 ............................ Iteration 4: log likelihood = -219.15728 Conditional (fixed-effects) logistic regression
Number of obs = 810 LR chi2(1) = 123.13 Prob > chi2 = 0.0000 Log likelihood = -219.15728 Pseudo R2 = 0.2193 -----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------fumeur | 2.499945 .3136361 7.971 0.000 1.885229 3.11466 ------------------------------------------------------------------------------
• Ajustement sur les variables d'appariement . xi:logit ct fumeur i.agec i.hopital i.enq i.agec Iagec_1-9 (naturally coded; Iagec_1 omitted) i.hopital Ihopi_20-64 (naturally coded; Ihopi_20 omitted) i.enq Ienq_1-12 (naturally coded; Ienq_1 omitted) Note: Ihopi_21~=0 predicts success perfectly Ihopi_21 dropped and 3 obs not used Note: Ihopi_64~=0 predicts failure perfectly Ihopi_64 dropped and 2 obs not used Note: Ienq_12~=0 predicts failure perfectly Ienq_12 dropped and 1 obs not used Note: Ihopi_22 dropped due to collinearity. Note: Ienq_4 dropped due to collinearity. Note: Ienq_10 dropped due to collinearity. Iteration 0: log likelihood = -557.29033 ....................................... Iteration 22: log likelihood = -367.73088 Logit estimates
Number of obs = 804 LR chi2(25) = 379.12 Prob > chi2 = 0.0000 Log likelihood = -367.73088 Pseudo R2 = 0.3401 -----------------------------------------------------------------------------ct | Coef. Std. Err. z P>|z| [95% Conf. Interval] ---------+-------------------------------------------------------------------fumeur | 2.599876 .3134047 8.296 0.000 1.985614 3.214138 Iagec_2 | -.8742573 .8194685 -1.067 0.286 -2.480386 .7318715 .............................. Iagec_9 | .2006898 .7698777 0.261 0.794 -1.308243 1.709622 Ihopi_23 | -2.353177 .8098731 -2.906 0.004 -3.940499 -.7658552 .............................. Ihopi_61 | 34.51863 . . . . . Ihopi_62 | -4.139758 1.68382 -2.459 0.014 -7.439985 -.8395317 Ihopi_63 | -1.67999 1.596675 -1.052 0.293 -4.809415 1.449435 Ienq_2 | -.8785693 1.447911 -0.607 0.544 -3.716423 1.959285 .............................. Ienq_11 | -.3768276 1.425433 -0.264 0.792 -3.170624 2.416969 _cons | .6167156 1.022115 0.603 0.546 -1.386593 2.620024 -----------------------------------------------------------------------------Note: 104 failures and 0 successes completely determined.
Régression logistique
87