1. Classification
• Qualitative variables take values in an unordered set C,
such as:
eye color∈ {brown, blue, green}
email∈ {spam, ham}.
• Given a feature vector X and a qualitative response Y
taking values in the set C, the classification task is to build
a function C(X) that takes as input the feature vector X
and predicts its value for Y ; i.e. C(X) ∈ C.
• Often we are more interested in estimating the probabilities
that X belongs to each category in C.
1 / 40
2. Classification
• Qualitative variables take values in an unordered set C,
such as:
eye color∈ {brown, blue, green}
email∈ {spam, ham}.
• Given a feature vector X and a qualitative response Y
taking values in the set C, the classification task is to build
a function C(X) that takes as input the feature vector X
and predicts its value for Y ; i.e. C(X) ∈ C.
• Often we are more interested in estimating the probabilities
that X belongs to each category in C.
For example, it is more valuable to have an estimate of the
probability that an insurance claim is fraudulent, than a
classification fraudulent or not.
1 / 40
3. Example: Credit Card Default
0 500 1000 1500 2000 2500
0
20000
40000
60000
Balance
Income
No Yes
0
500
1000
1500
2000
2500
Default
Balance
No Yes
0
20000
40000
60000
Default
Income 2 / 40
4. Can we use Linear Regression?
Suppose for the Default classification task that we code
Y =
(
0 if No
1 if Yes.
Can we simply perform a linear regression of Y on X and
classify as Yes if Ŷ > 0.5?
3 / 40
5. Can we use Linear Regression?
Suppose for the Default classification task that we code
Y =
(
0 if No
1 if Yes.
Can we simply perform a linear regression of Y on X and
classify as Yes if Ŷ > 0.5?
• In this case of a binary outcome, linear regression does a
good job as a classifier, and is equivalent to linear
discriminant analysis which we discuss later.
• Since in the population E(Y |X = x) = Pr(Y = 1|X = x),
we might think that regression is perfect for this task.
3 / 40
6. Can we use Linear Regression?
Suppose for the Default classification task that we code
Y =
(
0 if No
1 if Yes.
Can we simply perform a linear regression of Y on X and
classify as Yes if Ŷ > 0.5?
• In this case of a binary outcome, linear regression does a
good job as a classifier, and is equivalent to linear
discriminant analysis which we discuss later.
• Since in the population E(Y |X = x) = Pr(Y = 1|X = x),
we might think that regression is perfect for this task.
• However, linear regression might produce probabilities less
than zero or bigger than one. Logistic regression is more
appropriate.
3 / 40
8. Linear Regression continued
Now suppose we have a response variable with three possible
values. A patient presents at the emergency room, and we must
classify them according to their symptoms.
Y =
1 if stroke;
2 if drug overdose;
3 if epileptic seizure.
This coding suggests an ordering, and in fact implies that the
difference between stroke and drug overdose is the same as
between drug overdose and epileptic seizure.
5 / 40
9. Linear Regression continued
Now suppose we have a response variable with three possible
values. A patient presents at the emergency room, and we must
classify them according to their symptoms.
Y =
1 if stroke;
2 if drug overdose;
3 if epileptic seizure.
This coding suggests an ordering, and in fact implies that the
difference between stroke and drug overdose is the same as
between drug overdose and epileptic seizure.
Linear regression is not appropriate here.
Multiclass Logistic Regression or Discriminant Analysis are
more appropriate.
5 / 40
10. Logistic Regression
Let’s write p(X) = Pr(Y = 1|X) for short and consider using
balance to predict default. Logistic regression uses the form
p(X) =
eβ0+β1X
1 + eβ0+β1X
.
(e ≈ 2.71828 is a mathematical constant [Euler’s number.])
It is easy to see that no matter what values β0, β1 or X take,
p(X) will have values between 0 and 1.
6 / 40
11. Logistic Regression
Let’s write p(X) = Pr(Y = 1|X) for short and consider using
balance to predict default. Logistic regression uses the form
p(X) =
eβ0+β1X
1 + eβ0+β1X
.
(e ≈ 2.71828 is a mathematical constant [Euler’s number.])
It is easy to see that no matter what values β0, β1 or X take,
p(X) will have values between 0 and 1.
A bit of rearrangement gives
log
p(X)
1 − p(X)
= β0 + β1X.
This monotone transformation is called the log odds or logit
transformation of p(X). (by log we mean natural log: ln.)
6 / 40
13. Maximum Likelihood
We use maximum likelihood to estimate the parameters.
`(β0, β) =
Y
i:yi=1
p(xi)
Y
i:yi=0
(1 − p(xi)).
This likelihood gives the probability of the observed zeros and
ones in the data. We pick β0 and β1 to maximize the likelihood
of the observed data.
8 / 40
14. Maximum Likelihood
We use maximum likelihood to estimate the parameters.
`(β0, β) =
Y
i:yi=1
p(xi)
Y
i:yi=0
(1 − p(xi)).
This likelihood gives the probability of the observed zeros and
ones in the data. We pick β0 and β1 to maximize the likelihood
of the observed data.
Most statistical packages can fit linear logistic regression models
by maximum likelihood. In R we use the glm function.
Coefficient Std. Error Z-statistic P-value
Intercept -10.6513 0.3612 -29.5 0.0001
balance 0.0055 0.0002 24.9 0.0001
8 / 40
15. Making Predictions
What is our estimated probability of default for someone with
a balance of $1000?
p̂(X) =
eβ̂0+β̂1X
1 + eβ̂0+β̂1X
=
e−10.6513+0.0055×1000
1 + e−10.6513+0.0055×1000
= 0.006
9 / 40
16. Making Predictions
What is our estimated probability of default for someone with
a balance of $1000?
p̂(X) =
eβ̂0+β̂1X
1 + eβ̂0+β̂1X
=
e−10.6513+0.0055×1000
1 + e−10.6513+0.0055×1000
= 0.006
With a balance of $2000?
p̂(X) =
eβ̂0+β̂1X
1 + eβ̂0+β̂1X
=
e−10.6513+0.0055×2000
1 + e−10.6513+0.0055×2000
= 0.586
9 / 40
17. Lets do it again, using student as the predictor.
Coefficient Std. Error Z-statistic P-value
Intercept -3.5041 0.0707 -49.55 0.0001
student[Yes] 0.4049 0.1150 3.52 0.0004
10 / 40
18. Lets do it again, using student as the predictor.
Coefficient Std. Error Z-statistic P-value
Intercept -3.5041 0.0707 -49.55 0.0001
student[Yes] 0.4049 0.1150 3.52 0.0004
c
Pr(default=Yes|student=Yes) =
e−3.5041+0.4049×1
1 + e−3.5041+0.4049×1
= 0.0431,
c
Pr(default=Yes|student=No) =
e−3.5041+0.4049×0
1 + e−3.5041+0.4049×0
= 0.0292.
10 / 40
19. Logistic regression with several variables
log
p(X)
1 − p(X)
= β0 + β1X1 + · · · + βpXp
p(X) =
eβ0+β1X1+···+βpXp
1 + eβ0+β1X1+···+βpXp
Coefficient Std. Error Z-statistic P-value
Intercept -10.8690 0.4923 -22.08 0.0001
balance 0.0057 0.0002 24.74 0.0001
income 0.0030 0.0082 0.37 0.7115
student[Yes] -0.6468 0.2362 -2.74 0.0062
Why is coefficient for student negative, while it was positive
before?
11 / 40
20. Confounding
500 1000 1500 2000
0.0
0.2
0.4
0.6
0.8
Credit Card Balance
Default
Rate
No Yes
0
500
1000
1500
2000
2500
Student Status
Credit
Card
Balance
• Students tend to have higher balances than non-students,
so their marginal default rate is higher than for
non-students.
• But for each level of balance, students default less than
non-students.
• Multiple logistic regression can tease this out.
12 / 40
21. Example: South African Heart Disease
• 160 cases of MI (myocardial infarction) and 302 controls
(all male in age range 15-64), from Western Cape, South
Africa in early 80s.
• Overall prevalence very high in this region: 5.1%.
• Measurements on seven predictors (risk factors), shown in
scatterplot matrix.
• Goal is to identify relative strengths and directions of risk
factors.
• This was part of an intervention study aimed at educating
the public on healthier diets.
13 / 40
22. sbp
0 10 20 30
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o o
oo
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o oo
o o
o
o
o
o
o o
o
ooo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
0.0 0.4 0.8
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
oo
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
oo
o
o
o o
o
o o
o
o
o o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
oo o
o
o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
0 50 100
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
100
160
220
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o o
o
o
o o
o o
o o
o
o
oo
oo
o
o oo
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o o o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
0
10
20
30
o
o
o
o
o
o o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
o o
o o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o
o o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o o
o
o
o
o o
o
o
oo
o
o
o o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
oo
oo
o
o
o
o o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o o o
o
o
o
o
tobacco o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
oo
o o
o
oo
o o
o
o
o o
o
oo
o
o
o
o
o
o
o
o o
o
o o
o
o
o oo
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
ooo
o
o
o
o
o
o
o o
o
o o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
oo
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o o
o
o
o
o o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
oo
o
o o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo o
o
oo
o o
o
o o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
oo
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
oo
o
oo o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo o
o
o
o o
o
oo
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o o
o
o o
oo
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o o
o
o o o o
o
o
o
o
o
o
o
o o
o
oo o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o o
o
o o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o o
o
o o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
oo
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
ldl
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
oo
o
o
o o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o oo
o o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o o
o
o
o
oo o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o o
o
o o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o o
o
o
o oo
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
2
6
10
14
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o o
o o
o
o o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
0.0
0.4
0.8
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o o
o
o o
o o
o
oo
o
o
o
o
oo
o
o
o o
o
o o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o o
o o
o o
o o
o o
o o
o
o
o o o
oo o
o
oo
o
o
o o
o o
o
oo
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o o
o
o o
o
o
o
o
oo
o
o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o o
o o
o
o
o
o
o
o
o
oo
o
o
o o
o o
o
o
o
o
o
o o
o
oo
o o o
o
o
oo
o
o
o
o
o o
o
oo
o
o
o
o
o
o o
o
o
o o
oo
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o oo
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o o
o
oo
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
oo
o
o o
o
o o o
o
o o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o o
o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o o
o o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
oo
o o
o
o
o
o
o o
o o
o o
o o
o
o
o o o
o
o o
o
o
o
o
oo
o
o
o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o o
oo o
o
o
o
o
o
o
o o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o o
o
o o
o
o
o
o o
o
o
o
o
o
oo
oo o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o o
o o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o o
oo
o o
o
o o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o o
o
o
o
o o
o o o
o
o
o o
o
o
o
o
oo
o o
o
o
o o
o
o
o
o
o
o o
o
o o
o
o
oo
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o oo
o
oo
o
o o
o
o o
o
o o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
ooo
o o
o
o o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o oo
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o o
oo
o
o o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
oo o
o
o
oo
o
o
o
o o
o
o o
o
o
oo
o
o o
o o
o o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o o
o
o
o o
o
o
o
o
o
o o
o
famhist
o
o
o o
o o
o
o
o o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
oo o
o
o
o
o
o
o o
o o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
oo
oo
o
o
o
o o
o
o
oo
o
oo
o o
o
o o
o
oo o
o oo
o ooo
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o o
o
o
oo
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o o
o o o
o
o
o
o
oo
o
o o
o
o o
o
o
o o
o
o o
o
o o
o
o
o
o
o o
o
o
o o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
oo o
o
o
o
o
o
o o
o o
o
o o
o
o
oo o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o o
o
o
oo o
o o
o o
o
o
o
o
o
o o
o o
o
o o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o
o
o o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o o
oo o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o o
o
o
o o
o
o
o
o
o
oo
o
o
oo
oo
o
o
ooo o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
oo
o
o
o o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
oo
o
o
o
o o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
oo o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o o
o o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
oo o
o
o
o
o
o o
o
o o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
oo o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o o o
o
o o o
o
o
o o
o
o
o
o
o o
oo
o
o o
o o o o
o o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o
o
o
o o
o o
oo
o o
oo
o o o
o
o o
o
o o o
o
o
o
o o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o o
o
o
o o
o
o o
o
o
oo
o
o
o
o o
oo o
o o
o
o
o
o o
o o
o
o o
o o o
o
o
o o
oo
o
o
o o o o
o
o
oo
o
o o
o
o o
o
o o
o
o o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o o
o
o
o o
o
o
o o
o
o
o o
o o
o
o
o
o
o oo
oo
o o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
oo
o
o
o
o o
oo
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
oo
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
oo o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
oo
o o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o o
o
o
o
o
o o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o o o
o
o
o o
o o
oo
oo
o o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o oo o
o
o
o
o o
o
o o
o
o
o
o o
o
o
oo oo
o o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
oo
o
o o
oo
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
oo
o o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
oo
o o
o o
o
o o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o o
o
o
oo
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
obesity
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
oo
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
15
25
35
45
o
o
o
o
o
o
o o
o
o
o
o
o
o o
oo
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o o
o
o
o o
o o
o
o
o o
o
o
o o
o
oo
o o
o
o o
o o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
0
50
100
o
o
o
o
o
o
o
o
o o
o
o
o o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
oo o
o
o
o
o
o
o
o
o
o
oo
o o o
o
o
o
o
o
o
ooo
o
o
o
o
oo
oo
o
o
o oo
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o o
oo
o
o
o
o
oo
o o
o o
o
oo
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
oo o
o
oo
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
oo
o o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o o
o
o
o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
oo
oo
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
oo
oo
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o o
o o
o o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
ooo
o o
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o oo
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o o
o
o
o
o o
oo
o
o
o o
o
o
o
o
o
o oo
o o
o
o
o o
o o o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
oo o
o
o
oo
o
o
o o
o
o
o
o
o o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
oo
o
o o
o
o o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o o
o o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o o
o
oo o
o o
o
o
oo o
o
o
o
o
o o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o o
o
o o
o o
o
o
o
o
o
o
o o
o o
o
o
o oo
o
o o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
oo
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o o
o o
o
o o
o
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o o
o
oo o
o
o
o o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
alcohol
o
o
o
o
o
o
o o
o o
o
o
o
o o
oo
o
o
o
o
o
o o
o
o o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o o
o
o
o o
o
o
o
o
o
o o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
oo o
o o
o o
o o
o
o o
o
o
o o
o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
oo o
o o
o
o
o
o
o o o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o
ooo
o
o
o o
o
o o
o
o
o
o
o
o o
o
o
o
o o
o o
o
o
o o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o o
oo
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
100 160 220
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
2 6 10 14
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
oo
o
o o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
15 25 35 45
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o o
o
oo o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o o
o
o
o
o
o
o
o
o
o
o o
o o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o o
o
o
o
o
o
o
o
o o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
20 40 60 20
40
60
age
Scatterplot ma-
trix of the South
African Heart
Disease data. The
response is color
coded — The cases
(MI) are red, the
controls turquoise.
famhist is a binary
variable, with 1
indicating family
history of MI.
14 / 40
23. heartfit -glm(chd∼.,data=heart ,family=binomial)
summary(heartfit)
Call:
glm(formula = chd ∼ ., family = binomial , data = heart)
Coefficients :
Estimate Std. Error z value Pr(|z|)
(Intercept) -4.1295997 0.9641558 -4.283 1.84e -05 ***
sbp 0.0057607 0.0056326 1.023 0.30643
tobacco 0.0795256 0.0262150 3.034 0.00242 **
ldl 0.1847793 0.0574115 3.219 0.00129 **
famhistPresent 0.9391855 0.2248691 4.177 2.96e -05 ***
obesity -0.0345434 0.0291053 -1.187 0.23529
alcohol 0.0006065 0.0044550 0.136 0.89171
age 0.0425412 0.0101749 4.181 2.90e-05 ***
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 596.11 on 461 degrees of freedom
Residual deviance: 483.17 on 454 degrees of freedom
AIC: 499.17
15 / 40
24. Case-control sampling and logistic regression
• In South African data, there are 160 cases, 302 controls —
π̃ = 0.35 are cases. Yet the prevalence of MI in this region
is π = 0.05.
• With case-control samples, we can estimate the regression
parameters βj accurately (if our model is correct); the
constant term β0 is incorrect.
• We can correct the estimated intercept by a simple
transformation
β̂∗
0 = β̂0 + log
π
1 − π
− log
π̃
1 − π̃
• Often cases are rare and we take them all; up to five times
that number of controls is sufficient. See next frame
16 / 40
25. Diminishing returns in unbalanced binary data
SLDM III c Hastie Tibshirani - March 7, 2013 Linear Regression 108
2 4 6 8 10 12 14
0.04
0.05
0.06
0.07
0.08
0.09
Control/Case Ratio
Coefficient
Variance
Simulation
Theoretical Sampling more
controls than
cases reduces
the variance of
the parameter
estimates. But
after a ratio of
about 5 to 1
the variance re-
duction flattens
out.
Sampling more
controls than
cases reduces
the variance of
the parameter
estimates. But
after a ratio of
about 5 to 1
the variance re-
duction flattens
out.
17 / 40
26. Logistic regression with more than two classes
So far we have discussed logistic regression with two classes.
It is easily generalized to more than two classes. One version
(used in the R package glmnet) has the symmetric form
Pr(Y = k|X) =
eβ0k+β1kX1+...+βpkXp
PK
`=1 eβ0`+β1`X1+...+βp`Xp
Here there is a linear function for each class.
18 / 40
27. Logistic regression with more than two classes
So far we have discussed logistic regression with two classes.
It is easily generalized to more than two classes. One version
(used in the R package glmnet) has the symmetric form
Pr(Y = k|X) =
eβ0k+β1kX1+...+βpkXp
PK
`=1 eβ0`+β1`X1+...+βp`Xp
Here there is a linear function for each class.
(The mathier students will recognize that some cancellation is
possible, and only K − 1 linear functions are needed as in
2-class logistic regression.)
18 / 40
28. Logistic regression with more than two classes
So far we have discussed logistic regression with two classes.
It is easily generalized to more than two classes. One version
(used in the R package glmnet) has the symmetric form
Pr(Y = k|X) =
eβ0k+β1kX1+...+βpkXp
PK
`=1 eβ0`+β1`X1+...+βp`Xp
Here there is a linear function for each class.
(The mathier students will recognize that some cancellation is
possible, and only K − 1 linear functions are needed as in
2-class logistic regression.)
Multiclass logistic regression is also referred to as multinomial
regression.
18 / 40
29. Discriminant Analysis
Here the approach is to model the distribution of X in each of
the classes separately, and then use Bayes theorem to flip things
around and obtain Pr(Y |X).
When we use normal (Gaussian) distributions for each class,
this leads to linear or quadratic discriminant analysis.
However, this approach is quite general, and other distributions
can be used as well. We will focus on normal distributions.
19 / 40
30. Bayes theorem for classification
Thomas Bayes was a famous mathematician whose name
represents a big subfield of statistical and probabilistic
modeling. Here we focus on a simple result, known as Bayes
theorem:
Pr(Y = k|X = x) =
Pr(X = x|Y = k) · Pr(Y = k)
Pr(X = x)
20 / 40
31. Bayes theorem for classification
Thomas Bayes was a famous mathematician whose name
represents a big subfield of statistical and probabilistic
modeling. Here we focus on a simple result, known as Bayes
theorem:
Pr(Y = k|X = x) =
Pr(X = x|Y = k) · Pr(Y = k)
Pr(X = x)
One writes this slightly differently for discriminant analysis:
Pr(Y = k|X = x) =
πkfk(x)
PK
l=1 πlfl(x)
, where
• fk(x) = Pr(X = x|Y = k) is the density for X in class k.
Here we will use normal densities for these, separately in
each class.
• πk = Pr(Y = k) is the marginal or prior probability for
class k.
20 / 40
32. Classify to the highest density
−4 −2 0 2 4
π1=.5, π2=.5
−4 −2 0 2 4
π1=.3, π2=.7
We classify a new point according to which density is highest.
21 / 40
33. Classify to the highest density
−4 −2 0 2 4
π1=.5, π2=.5
−4 −2 0 2 4
π1=.3, π2=.7
We classify a new point according to which density is highest.
When the priors are different, we take them into account as
well, and compare πkfk(x). On the right, we favor the pink
class — the decision boundary has shifted to the left.
21 / 40
34. Why discriminant analysis?
• When the classes are well-separated, the parameter
estimates for the logistic regression model are surprisingly
unstable. Linear discriminant analysis does not suffer from
this problem.
• If n is small and the distribution of the predictors X is
approximately normal in each of the classes, the linear
discriminant model is again more stable than the logistic
regression model.
• Linear discriminant analysis is popular when we have more
than two response classes, because it also provides
low-dimensional views of the data.
22 / 40
35. Linear Discriminant Analysis when p = 1
The Gaussian density has the form
fk(x) =
1
√
2πσk
e
−1
2
x−µk
σk
2
Here µk is the mean, and σ2
k the variance (in class k). We will
assume that all the σk = σ are the same.
23 / 40
36. Linear Discriminant Analysis when p = 1
The Gaussian density has the form
fk(x) =
1
√
2πσk
e
−1
2
x−µk
σk
2
Here µk is the mean, and σ2
k the variance (in class k). We will
assume that all the σk = σ are the same.
Plugging this into Bayes formula, we get a rather complex
expression for pk(x) = Pr(Y = k|X = x):
pk(x) =
πk
1
√
2πσ
e
−1
2
x−µk
σ
2
PK
l=1 πl
1
√
2πσ
e
−1
2
x−µl
σ
2
Happily, there are simplifications and cancellations.
23 / 40
37. Discriminant functions
To classify at the value X = x, we need to see which of the
pk(x) is largest. Taking logs, and discarding terms that do not
depend on k, we see that this is equivalent to assigning x to the
class with the largest discriminant score:
δk(x) = x ·
µk
σ2
−
µ2
k
2σ2
+ log(πk)
Note that δk(x) is a linear function of x.
24 / 40
38. Discriminant functions
To classify at the value X = x, we need to see which of the
pk(x) is largest. Taking logs, and discarding terms that do not
depend on k, we see that this is equivalent to assigning x to the
class with the largest discriminant score:
δk(x) = x ·
µk
σ2
−
µ2
k
2σ2
+ log(πk)
Note that δk(x) is a linear function of x.
If there are K = 2 classes and π1 = π2 = 0.5, then one can see
that the decision boundary is at
x =
µ1 + µ2
2
.
(See if you can show this)
24 / 40
40. −4 −2 0 2 4 −3 −2 −1 0 1 2 3 4
0
1
2
3
4
5
Example with µ1 = −1.5, µ2 = 1.5, π1 = π2 = 0.5, and σ2 = 1.
Typically we don’t know these parameters; we just have the
training data. In that case we simply estimate the parameters
and plug them into the rule.
25 / 40
41. Estimating the parameters
π̂k =
nk
n
µ̂k =
1
nk
X
i: yi=k
xi
σ̂2
=
1
n − K
K
X
k=1
X
i: yi=k
(xi − µ̂k)2
=
K
X
k=1
nk − 1
n − K
· σ̂2
k
where σ̂2
k = 1
nk−1
P
i: yi=k(xi − µ̂k)2 is the usual formula for the
estimated variance in the kth class.
26 / 40
42. Linear Discriminant Analysis when p 1
x1
x1
x
2
x
2
Density: f(x) =
1
(2π)p/2|Σ|1/2
e−1
2
(x−µ)T Σ−1
(x−µ)
27 / 40
43. Linear Discriminant Analysis when p 1
x1
x1
x
2
x
2
Density: f(x) =
1
(2π)p/2|Σ|1/2
e−1
2
(x−µ)T Σ−1
(x−µ)
Discriminant function: δk(x) = xT
Σ−1
µk −
1
2
µT
k Σ−1
µk + log πk
27 / 40
44. Linear Discriminant Analysis when p 1
x1
x1
x
2
x
2
Density: f(x) =
1
(2π)p/2|Σ|1/2
e−1
2
(x−µ)T Σ−1
(x−µ)
Discriminant function: δk(x) = xT
Σ−1
µk −
1
2
µT
k Σ−1
µk + log πk
Despite its complex form,
δk(x) = ck0 + ck1x1 + ck2x2 + . . . + ckpxp — a linear function.
27 / 40
45. Illustration: p = 2 and K = 3 classes
−4 −2 0 2 4
−4
−2
0
2
4
−4 −2 0 2 4
−4
−2
0
2
4
X1
X1
X
2
X
2
Here π1 = π2 = π3 = 1/3.
The dashed lines are known as the Bayes decision boundaries.
Were they known, they would yield the fewest misclassification
errors, among all possible classifiers.
28 / 40
49. Fisher’s Discriminant Plot
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ● ●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
−10 −5 0 5 10
−2
−1
0
1
2
Discriminant Variable 1
Discriminant
Variable
2
●
●
●
When there are K classes, linear discriminant analysis can be
viewed exactly in a K − 1 dimensional plot.
Why? Because it essentially classifies to the closest centroid,
and they span a K − 1 dimensional plane.
Even when K 3, we can find the “best” 2-dimensional plane
for visualizing the discriminant rule.
30 / 40
50. From δk(x) to probabilities
Once we have estimates δ̂k(x), we can turn these into estimates
for class probabilities:
c
Pr(Y = k|X = x) =
eδ̂k(x)
PK
l=1 eδ̂l(x)
.
So classifying to the largest δ̂k(x) amounts to classifying to the
class for which c
Pr(Y = k|X = x) is largest.
31 / 40
51. From δk(x) to probabilities
Once we have estimates δ̂k(x), we can turn these into estimates
for class probabilities:
c
Pr(Y = k|X = x) =
eδ̂k(x)
PK
l=1 eδ̂l(x)
.
So classifying to the largest δ̂k(x) amounts to classifying to the
class for which c
Pr(Y = k|X = x) is largest.
When K = 2, we classify to class 2 if c
Pr(Y = 2|X = x) ≥ 0.5,
else to class 1.
31 / 40
52. LDA on Credit Data
True Default Status
No Yes Total
Predicted No 9644 252 9896
Default Status Yes 23 81 104
Total 9667 333 10000
(23 + 252)/10000 errors — a 2.75% misclassification rate!
Some caveats:
• This is training error, and we may be overfitting.
32 / 40
53. LDA on Credit Data
True Default Status
No Yes Total
Predicted No 9644 252 9896
Default Status Yes 23 81 104
Total 9667 333 10000
(23 + 252)/10000 errors — a 2.75% misclassification rate!
Some caveats:
• This is training error, and we may be overfitting. Not a big
concern here since n = 10000 and p = 2!
32 / 40
54. LDA on Credit Data
True Default Status
No Yes Total
Predicted No 9644 252 9896
Default Status Yes 23 81 104
Total 9667 333 10000
(23 + 252)/10000 errors — a 2.75% misclassification rate!
Some caveats:
• This is training error, and we may be overfitting. Not a big
concern here since n = 10000 and p = 2!
• If we classified to the prior — always to class No in this
case — we would make 333/10000 errors, or only 3.33%.
32 / 40
55. LDA on Credit Data
True Default Status
No Yes Total
Predicted No 9644 252 9896
Default Status Yes 23 81 104
Total 9667 333 10000
(23 + 252)/10000 errors — a 2.75% misclassification rate!
Some caveats:
• This is training error, and we may be overfitting. Not a big
concern here since n = 10000 and p = 2!
• If we classified to the prior — always to class No in this
case — we would make 333/10000 errors, or only 3.33%.
• Of the true No’s, we make 23/9667 = 0.2% errors; of the
true Yes’s, we make 252/333 = 75.7% errors!
32 / 40
56. Types of errors
False positive rate: The fraction of negative examples that are
classified as positive — 0.2% in example.
False negative rate: The fraction of positive examples that are
classified as negative — 75.7% in example.
We produced this table by classifying to class Yes if
c
Pr(Default = Yes|Balance, Student) ≥ 0.5
We can change the two error rates by changing the threshold
from 0.5 to some other value in [0, 1]:
c
Pr(Default = Yes|Balance, Student) ≥ threshold,
and vary threshold.
33 / 40
57. Varying the threshold
0.0 0.1 0.2 0.3 0.4 0.5
0.0
0.2
0.4
0.6
Threshold
Error
Rate
Overall Error
False Positive
False Negative
In order to reduce the false negative rate, we may want to
reduce the threshold to 0.1 or less.
34 / 40
59. ROC Curve
False positive rate
True
positive
rate
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
The ROC plot displays both simultaneously.
Sometimes we use the AUC or area under the curve to
summarize the overall performance. Higher AUC is good.
35 / 40
60. Other forms of Discriminant Analysis
Pr(Y = k|X = x) =
πkfk(x)
PK
l=1 πlfl(x)
When fk(x) are Gaussian densities, with the same covariance
matrix Σ in each class, this leads to linear discriminant analysis.
By altering the forms for fk(x), we get different classifiers.
• With Gaussians but different Σk in each class, we get
quadratic discriminant analysis.
36 / 40
61. Other forms of Discriminant Analysis
Pr(Y = k|X = x) =
πkfk(x)
PK
l=1 πlfl(x)
When fk(x) are Gaussian densities, with the same covariance
matrix Σ in each class, this leads to linear discriminant analysis.
By altering the forms for fk(x), we get different classifiers.
• With Gaussians but different Σk in each class, we get
quadratic discriminant analysis.
• With fk(x) =
Qp
j=1 fjk(xj) (conditional independence
model) in each class we get naive Bayes. For Gaussian this
means the Σk are diagonal.
36 / 40
62. Other forms of Discriminant Analysis
Pr(Y = k|X = x) =
πkfk(x)
PK
l=1 πlfl(x)
When fk(x) are Gaussian densities, with the same covariance
matrix Σ in each class, this leads to linear discriminant analysis.
By altering the forms for fk(x), we get different classifiers.
• With Gaussians but different Σk in each class, we get
quadratic discriminant analysis.
• With fk(x) =
Qp
j=1 fjk(xj) (conditional independence
model) in each class we get naive Bayes. For Gaussian this
means the Σk are diagonal.
• Many other forms, by proposing specific density models for
fk(x), including nonparametric approaches.
36 / 40
63. Quadratic Discriminant Analysis
−4 −2 0 2 4
−4
−3
−2
−1
0
1
2
−4 −2 0 2 4
−4
−3
−2
−1
0
1
2
X1
X1
X
2
X
2
δk(x) = −
1
2
(x − µk)T
Σ−1
k (x − µk) + log πk −
1
2
log |Σk|
Because the Σk are different, the quadratic terms matter.
37 / 40
64. Naive Bayes
Assumes features are independent in each class.
Useful when p is large, and so multivariate methods like QDA
and even LDA break down.
• Gaussian naive Bayes assumes each Σk is diagonal:
δk(x) ∝ log
πk
p
Y
j=1
fkj(xj)
= −
1
2
p
X
j=1
(xj − µkj)2
σ2
kj
+ log σ2
kj
#
+ log πk
• can use for mixed feature vectors (qualitative and
quantitative). If Xj is qualitative, replace fkj(xj) with
probability mass function (histogram) over discrete
categories.
Despite strong assumptions, naive Bayes often produces good
classification results.
38 / 40
65. Logistic Regression versus LDA
For a two-class problem, one can show that for LDA
log
p1(x)
1 − p1(x)
= log
p1(x)
p2(x)
= c0 + c1x1 + . . . + cpxp
So it has the same form as logistic regression.
The difference is in how the parameters are estimated.
39 / 40
66. Logistic Regression versus LDA
For a two-class problem, one can show that for LDA
log
p1(x)
1 − p1(x)
= log
p1(x)
p2(x)
= c0 + c1x1 + . . . + cpxp
So it has the same form as logistic regression.
The difference is in how the parameters are estimated.
• Logistic regression uses the conditional likelihood based on
Pr(Y |X) (known as discriminative learning).
39 / 40
67. Logistic Regression versus LDA
For a two-class problem, one can show that for LDA
log
p1(x)
1 − p1(x)
= log
p1(x)
p2(x)
= c0 + c1x1 + . . . + cpxp
So it has the same form as logistic regression.
The difference is in how the parameters are estimated.
• Logistic regression uses the conditional likelihood based on
Pr(Y |X) (known as discriminative learning).
• LDA uses the full likelihood based on Pr(X, Y ) (known as
generative learning).
39 / 40
68. Logistic Regression versus LDA
For a two-class problem, one can show that for LDA
log
p1(x)
1 − p1(x)
= log
p1(x)
p2(x)
= c0 + c1x1 + . . . + cpxp
So it has the same form as logistic regression.
The difference is in how the parameters are estimated.
• Logistic regression uses the conditional likelihood based on
Pr(Y |X) (known as discriminative learning).
• LDA uses the full likelihood based on Pr(X, Y ) (known as
generative learning).
• Despite these differences, in practice the results are often
very similar.
39 / 40
69. Logistic Regression versus LDA
For a two-class problem, one can show that for LDA
log
p1(x)
1 − p1(x)
= log
p1(x)
p2(x)
= c0 + c1x1 + . . . + cpxp
So it has the same form as logistic regression.
The difference is in how the parameters are estimated.
• Logistic regression uses the conditional likelihood based on
Pr(Y |X) (known as discriminative learning).
• LDA uses the full likelihood based on Pr(X, Y ) (known as
generative learning).
• Despite these differences, in practice the results are often
very similar.
Footnote: logistic regression can also fit quadratic boundaries
like QDA, by explicitly including quadratic terms in the model.
39 / 40
70. Summary
• Logistic regression is very popular for classification,
especially when K = 2.
• LDA is useful when n is small, or the classes are well
separated, and Gaussian assumptions are reasonable. Also
when K 2.
• Naive Bayes is useful when p is very large.
• See Section 4.5 for some comparisons of logistic regression,
LDA and KNN.
40 / 40
71. New Topics in Chapter Four
In this section we cover three topics in Chapter 4 that are new
in the second edition of ISLR:
• Multinomial logistic regression.
• Naı̈ve Bayes classification.
• Generalized linear models.
1 / 13
72. Multinomial Logistic Regression
Logistic regression is frequently used when the response is
binary, or K = 2 classes. We need a modification when there
are K 2 classes. E.g. stroke, drug overdose and epileptic
seizure for the emergency room example.
The simplest representation uses different linear functions for
each class, combined with the softmax function to form
probabilities:
Pr(Y = k|X = x) =
eβk0+βk1x1+···+βkpxp
PK
l=1 eβl0+βl1x1+···+βlpxp
.
2 / 13
73. Multinomial Logistic Regression
Logistic regression is frequently used when the response is
binary, or K = 2 classes. We need a modification when there
are K 2 classes. E.g. stroke, drug overdose and epileptic
seizure for the emergency room example.
The simplest representation uses different linear functions for
each class, combined with the softmax function to form
probabilities:
Pr(Y = k|X = x) =
eβk0+βk1x1+···+βkpxp
PK
l=1 eβl0+βl1x1+···+βlpxp
.
• There is a redundancy here; we really only need K − 1
functions (see the book for details).
2 / 13
74. Multinomial Logistic Regression
Logistic regression is frequently used when the response is
binary, or K = 2 classes. We need a modification when there
are K 2 classes. E.g. stroke, drug overdose and epileptic
seizure for the emergency room example.
The simplest representation uses different linear functions for
each class, combined with the softmax function to form
probabilities:
Pr(Y = k|X = x) =
eβk0+βk1x1+···+βkpxp
PK
l=1 eβl0+βl1x1+···+βlpxp
.
• There is a redundancy here; we really only need K − 1
functions (see the book for details).
• We fit by maximizing the multinomial log likelihood
(cross-entropy) — a generalization of the binomial.
2 / 13
75. Multinomial Logistic Regression
Logistic regression is frequently used when the response is
binary, or K = 2 classes. We need a modification when there
are K 2 classes. E.g. stroke, drug overdose and epileptic
seizure for the emergency room example.
The simplest representation uses different linear functions for
each class, combined with the softmax function to form
probabilities:
Pr(Y = k|X = x) =
eβk0+βk1x1+···+βkpxp
PK
l=1 eβl0+βl1x1+···+βlpxp
.
• There is a redundancy here; we really only need K − 1
functions (see the book for details).
• We fit by maximizing the multinomial log likelihood
(cross-entropy) — a generalization of the binomial.
• An example is given in Chapter 10 where we fit the 10-class
model to the MNIST digit dataset.
2 / 13
76. Generative Models and Naı̈ve Bayes
• Logistic regression models Pr(Y = k|X = x) directly, via
the logistic function. Similarly the multinomial logistic
regression uses the softmax function. These all model the
conditional distribution of Y given X.
3 / 13
77. Generative Models and Naı̈ve Bayes
• Logistic regression models Pr(Y = k|X = x) directly, via
the logistic function. Similarly the multinomial logistic
regression uses the softmax function. These all model the
conditional distribution of Y given X.
• By contrast generative models start with the conditional
distribution of X given Y , and then use Bayes formula to
turn things around:
Pr(Y = k|X = x) =
πkfk(x)
PK
l=1 πlfl(x)
.
• fk(x) is the density of X given Y = k;
• πk = Pr(Y = k) is the marginal probability that Y is in
class k.
3 / 13
78. Generative Models and Naı̈ve Bayes
• Linear and quadratic discriminant analysis derive from
generative models, where fk(x) are Gaussian.
4 / 13
79. Generative Models and Naı̈ve Bayes
• Linear and quadratic discriminant analysis derive from
generative models, where fk(x) are Gaussian.
• Often useful if some classes are well separated — a
situation where logistic regression is unstable.
4 / 13
80. Generative Models and Naı̈ve Bayes
• Linear and quadratic discriminant analysis derive from
generative models, where fk(x) are Gaussian.
• Often useful if some classes are well separated — a
situation where logistic regression is unstable.
• Naı̈ve Bayes assumes that the densities fk(x) in each class
factor:
fk(x) = fk1(x1) × fk2(x2) × · · · × fkp(xp)
4 / 13
81. Generative Models and Naı̈ve Bayes
• Linear and quadratic discriminant analysis derive from
generative models, where fk(x) are Gaussian.
• Often useful if some classes are well separated — a
situation where logistic regression is unstable.
• Naı̈ve Bayes assumes that the densities fk(x) in each class
factor:
fk(x) = fk1(x1) × fk2(x2) × · · · × fkp(xp)
• Equivalently this assumes that the features are independent
within each class.
4 / 13
82. Generative Models and Naı̈ve Bayes
• Linear and quadratic discriminant analysis derive from
generative models, where fk(x) are Gaussian.
• Often useful if some classes are well separated — a
situation where logistic regression is unstable.
• Naı̈ve Bayes assumes that the densities fk(x) in each class
factor:
fk(x) = fk1(x1) × fk2(x2) × · · · × fkp(xp)
• Equivalently this assumes that the features are independent
within each class.
• Then using Bayes formula:
Pr(Y = k|X = x) =
πk × fk1(x1) × fk2(x2) × · · · × fkp(xp)
PK
l=1 πl × fl1(x1) × fl2(x2) × · · · × flp(xp)
4 / 13
84. Naı̈ve Bayes — Details
Why the independence assumption?
• Difficult to specify and model high-dimensional densities.
Much easier to specify one-dimensional densities.
5 / 13
85. Naı̈ve Bayes — Details
Why the independence assumption?
• Difficult to specify and model high-dimensional densities.
Much easier to specify one-dimensional densities.
• Can handle mixed features:
• If feature j is quantitative, can model as univariate
Gaussian, for example: Xj|Y = k ∼ N(µjk, σ2
jk). We
estimate µjk and σ2
jk from the data, and then plug into
Gaussian density formula for fjk(xj).
5 / 13
86. Naı̈ve Bayes — Details
Why the independence assumption?
• Difficult to specify and model high-dimensional densities.
Much easier to specify one-dimensional densities.
• Can handle mixed features:
• If feature j is quantitative, can model as univariate
Gaussian, for example: Xj|Y = k ∼ N(µjk, σ2
jk). We
estimate µjk and σ2
jk from the data, and then plug into
Gaussian density formula for fjk(xj).
• Alternatively, can use a histogram estimate of the density,
and directly estimate fjk(xj) by the proportion of
observations in the bin into which xj falls.
5 / 13
87. Naı̈ve Bayes — Details
Why the independence assumption?
• Difficult to specify and model high-dimensional densities.
Much easier to specify one-dimensional densities.
• Can handle mixed features:
• If feature j is quantitative, can model as univariate
Gaussian, for example: Xj|Y = k ∼ N(µjk, σ2
jk). We
estimate µjk and σ2
jk from the data, and then plug into
Gaussian density formula for fjk(xj).
• Alternatively, can use a histogram estimate of the density,
and directly estimate fjk(xj) by the proportion of
observations in the bin into which xj falls.
• If feature j is qualitative, can simply model the proportion
in each category. Example to follow.
5 / 13
88. Naı̈ve Bayes — Details
Why the independence assumption?
• Difficult to specify and model high-dimensional densities.
Much easier to specify one-dimensional densities.
• Can handle mixed features:
• If feature j is quantitative, can model as univariate
Gaussian, for example: Xj|Y = k ∼ N(µjk, σ2
jk). We
estimate µjk and σ2
jk from the data, and then plug into
Gaussian density formula for fjk(xj).
• Alternatively, can use a histogram estimate of the density,
and directly estimate fjk(xj) by the proportion of
observations in the bin into which xj falls.
• If feature j is qualitative, can simply model the proportion
in each category. Example to follow.
• Somewhat unrealistic but extremely useful in many cases.
Despite its simplicity, often shows good classification
performance due to reduced variance.
5 / 13
89. Naı̈ve Bayes — Toy Example
4.4 Generative Models for Classification 157
Density estimates for class k=1
ˆ
f11
ˆ
f12
ˆ
f13
−4 −2 0 2 4
Frequency
−2 0 2 4 1 2 3
Density estimates for class k=2
ˆ
f21
ˆ
f22
ˆ
f23
−4 −2 0 2 4
Frequency
−2 0 2 4 1 2 3
FIGURE 4.10. In the toy example in Section 4.4.4, we generate data with p = 3
predictors and K = 2 classes. The first two predictors are quantitative, and the
third predictor is qualitative with three levels. In each class, the estimated density
for each of the three predictors is displayed. If the prior probabilities for the two
classes are equal, then the observation x⇤
= (0.4, 1.5, 1)T
has a 94.4% posterior
x∗ = (.4, 1.5, 1)
π̂1 = π̂2 = 0.5
ˆ
f11(0.4) = 0.368
ˆ
f12(1.5) = 0.484
ˆ
f13(1) = 0.226
ˆ
f21(0.4) = 0.030
ˆ
f22(1.5) = 0.130
ˆ
f23(1) = 0.616
Pr(Y = 1|X = x∗) = 0.944 and Pr(Y = 2|X = x∗) = 0.056
6 / 13
90. Naı̈ve Bayes and GAMs
log
Pr(Y = k|X = x)
Pr(Y = K|X = x)
= log
πkfk(x)
πKfK(x)
= log
πk
Qp
j=1 fkj(xj)
πK
Qp
j=1 fKj(xj)
!
= log
πk
πK
+
p
X
j=1
log
fkj(xj)
fKj(xj)
= ak +
p
X
j=1
gkj(xj),
where ak = log
πk
πK
and gkj(xj) = log
fkj(xj)
fKj(xj)
.
Hence, the Naı̈ve Bayes model takes the form of a generalized
additive model from Chapter 7.
7 / 13
91. Generalized Linear Models
• Linear regression is used for quantitative responses.
• Linear logistic regression is the counterpart for a binary
response, and models the logit of the probability as a linear
model.
• Other response types exist, such as non-negative responses,
skewed distributions, and more.
• Generalized linear models provide a unified framework for
dealing with many different response types.
8 / 13
92. Example: Bikeshare Data
Linear regression with response bikers: number of hourly users
in bikeshare program in Washington, DC.
Coefficient Std. error z-statistic p-value
Intercept 73.60 5.13 14.34 0.00
workingday 1.27 1.78 0.71 0.48
temp 157.21 10.26 15.32 0.00
weathersit[cloudy/misty] -12.89 1.96 -6.56 0.00
weathersit[light rain/snow] -66.49 2.97 -22.43 0.00
weathersit[heavy rain/snow] -109.75 76.67 -1.43 0.15
●
●
●
●
●
●
●
●
●
●
●
●
−40
−20
0
20
Month
Coefficient
J F M A M J J A S O N D
●
●
●
● ●
●
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
5 10 15 20
−100
0
50
100
200
Hour
Coefficient
9 / 13
93. Mean/Variance Relationship
5 10 15 20
0
100
200
300
400
500
600
Hour
Number
of
Bikers
5 10 15 20
0
1
2
3
4
5
6
Hour
Log(Number
of
Bikers)
• In left plot we see that the variance mostly increases with
the mean.
10 / 13
94. Mean/Variance Relationship
5 10 15 20
0
100
200
300
400
500
600
Hour
Number
of
Bikers
5 10 15 20
0
1
2
3
4
5
6
Hour
Log(Number
of
Bikers)
• In left plot we see that the variance mostly increases with
the mean.
• 10% of linear model predictions are negative! (not shown
here.)
10 / 13
95. Mean/Variance Relationship
5 10 15 20
0
100
200
300
400
500
600
Hour
Number
of
Bikers
5 10 15 20
0
1
2
3
4
5
6
Hour
Log(Number
of
Bikers)
• In left plot we see that the variance mostly increases with
the mean.
• 10% of linear model predictions are negative! (not shown
here.)
• Taking log(bikers) alleviates this, but has its own
problems: e.g. predictions are on the wrong scale, and
some counts are zero! 10 / 13
96. Poisson Regression Model
• Poisson distribution is useful for modeling counts:
Pr(Y = k) =
e−λλk
k!
for k = 0, 1, 2, . . .
• λ = E(Y ) = Var(Y ) — i.e. there is a mean/variance
dependence.
11 / 13
97. Poisson Regression Model
• Poisson distribution is useful for modeling counts:
Pr(Y = k) =
e−λλk
k!
for k = 0, 1, 2, . . .
• λ = E(Y ) = Var(Y ) — i.e. there is a mean/variance
dependence.
• With covariates, we model
log(λ(X1, . . . , Xp)) = β0 + β1X1 + · · · + βpXp
or equivalently
λ(X1, . . . , Xp) = eβ0+β1X1+···+βpXp
.
11 / 13
98. Poisson Regression Model
• Poisson distribution is useful for modeling counts:
Pr(Y = k) =
e−λλk
k!
for k = 0, 1, 2, . . .
• λ = E(Y ) = Var(Y ) — i.e. there is a mean/variance
dependence.
• With covariates, we model
log(λ(X1, . . . , Xp)) = β0 + β1X1 + · · · + βpXp
or equivalently
λ(X1, . . . , Xp) = eβ0+β1X1+···+βpXp
.
• Model automatically guarantees that the predictions are
non-negative.
11 / 13
100. Poisson Regression on Bikeshare Data
Coefficient Std. error z-statistic p-value
Intercept 4.12 0.01 683.96 0.00
workingday 0.01 0.00 7.5 0.00
temp 0.79 0.01 68.43 0.00
weathersit[cloudy/misty] -0.08 0.00 -34.53 0.00
weathersit[light rain/snow] -0.58 0.00 -141.91 0.00
weathersit[heavy rain/snow] -0.93 0.17 -5.55 0.00
●
●
●
●
● ●
●
●
●
●
●
●
−0.6
−0.4
−0.2
0.0
0.2
Month
Coefficient
J F M A M J J A S O N D
●
●
●
●
●
●
●
●
●
●
●
●
● ● ● ●
●
●
●
●
●
●
●
●
5 10 15 20
−2
−1
0
1
Hour
Coefficient
*In this case the variance is somewhat larger than the mean — a situation known
as overdispersion — so the p-values are misleadingly small.
12 / 13
101. Generalized Linear Models
• We have covered three GLMs in this course: Gaussian,
binomial and Poisson.
• They each have a characteristic link function. This is the
transformation of the mean that is represented by a linear
model:
η(E(Y |X1, X2, . . . , Xp)) = β0 + β1X1 + · · · + βpXp.
The link functions for linear, logistic and Poisson regression
are η(µ) = µ, η(µ) = log(µ/(1 − µ)), and η(µ) = log(µ),
respectively.
• They also each have characteristic variance functions.
• The models are fit by maximum-likelihood, and model
summaries are produced by glm() in R.
• Other GLMS include Gamma, Negative-binomial, Inverse
Gaussian and more.
13 / 13