La régression logistique en épidémiologie - HAL

publicité
La régression logistique en épidémiologie
Jean Bouyer
To cite this version:
Jean Bouyer. La régression logistique en épidémiologie. Master. Epidémiologie Quantitative,
M2 recherche en Santé Publique, Universités Paris V, XI, XII, Versailles Saint Quentin, 2012.
<cel-00124335v1>
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ée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
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
Téléchargement