Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

10장 로지스틱 회귀모형

지금까지 우리가 배운 회귀분석에서는 반응변수가 연속형변수로 주어졌었다. 특히 반응변수는


정규분포를 따르는 확률변수로, 대부분 특정 구간에서 임의의 값을 가진다고 가정되었다. 예를
들어, 6장의 주택판매가격 예제에서 반응변수인 주택판매가격은 약12~43(천만원) 사이에서 임
의의 실수값을 가진다.
회귀분석의 개념은 반응변수가 연속형변수가 아닌 경우에도 사용될 수 있다. 대표적인 경
우로 첫 번째는 반응변수가 (성공, 실패), 또는 동전의 (앞면, 뒷면)처럼 오직 두 가지의 값만
가지거나, 또는 알려진 횟수의 시행에서 나타나는 “성공”의 횟수로 주어지는 경우(예를 들면,
동전을 100번 던졌을 때 나타나는 앞면의 횟수)이고, 두 번째는 특정 시간대에서 사건의 발생
건수처럼 실수가 아닌 정수값을 가지는 경우이다. 즉, 이미 짐작할 수 있듯이, 첫 번째는 반응
변수가 이항분포를 따르는 경우이고, 두 번째는 반응변수가 포아송분포를 따르는 경우가 된다.
반응변수가 이항분포를 따르거나, 포아송분포를 따르는 경우에 대한 회귀분석의 적용은 오
래전부터 여러 학문 분야에서 사용이 되어왔으며, 특히 1980년 이후에 이 방법들에 대한 통합
적 통계분석 이론인 일반화선형모형(generalized linear model)의 개념이 정립되고, 실제 이들 모
형을 이용하여 자료분석을 쉽게 할 수 있는 통계소프트웨어들이 제공되기 시작하면서 더욱 활
성화되는 계기가 되었다. 현재는 통계학에서 뿐만 아니라 의학, 금융, 공학, 사회과학 등 다양
한 분야에서 필수적으로 사용되는 중요한 통계자료분석 방법들 중의 하나로 자리 잡고 있다.
10장에서는 반응변수가 이항분포를 따르는 경우에 대한 로지스틱모형을 설명하고, 11장에
서는 통합적 모형인 일반화선형모형에 대한 통계적 이론을 소개한다. 그리고 12장은 로지스틱
모형과 함께 일반화선형모형의 대표적 모형인 로그선형모형에 대한 것으로, 포아송분포를 따
르는 반응변수에 대한 모형이다.

[표 10.1] 살충제 자료
살충제 양   벌레 수   죽은 벌레 수  
1.6907 59 6
1.7242 60 13
1.7552 62 18
1.7842 56 28
1.8113 63 52
1.8369 59 53
1.8610 62 61
1.8839 60 60

10.1 예제

[예제 10.1] 살충제


어느 농약을 만드는 회사에서는 적당한 치사량을 가지는 살충제를 만들기 위하여 여러 농도
수준들의 살충제를 벌레들에 직접 투약하여 벌레들의 죽는 마리수를 조사하였다. [표 10.1]은

- 1 -
실험에서 사용된 살충제의 양, 각 수준에서 사용된 벌레 수와 죽은 벌레 수에 대한 것이다.
실험에 사용된 전체 벌레 수는 481마리이며, 각 벌레는 죽었으면 1, 살았으면 0으로 표시
되었다. 결과자료는 “beetle.txt”에 저장되어 있으며, 각 벌레에 대해 변수 conc는 살충제 양, 변
수 killed는 0과 1의 값을 가진다.
이 실험에서 변수 conc는 실험에서 사전에 설정된 살충제의 양이므로, 실험에서 관측되는
값이 아닌 이미 주어진 값이다. 실험의 결과로 관측되는 반응변수는 0과 1의 값을 갖는 killed
이다. 따라서 살충제의 양이 벌레의 살고 죽음에 어떻게 영향을 주는지를 알아보는 것이 이
실험의 목적이므로 killed를 반응변수로, conc를 설명변수로 하는 회귀모형을 생각할 수 있으
나, 반응변수가 연속형이 아닌 오직 0과 1의 두 값만을 갖는 이진변수(binary variable)이므로
앞에서 배운 선형회귀모형의 적용이 가능하지 않게 된다.
실제로 변수 killed와 conc의 산점도([그림 10.1])를 보면 conc의 값이 killed에 어떻게 영향
을 주는지는 명확하게 나타나지를 않는다.(이 자료의 경우 killed가 0, 1의 값을 가지므로 각
conc에 대해 2개의 점으로만 나타난다.) 그러나 이 산점도에 lowess 곡선을 추가하면([그림
10.2]) 곡선이 conc가 작은 경우에는 killed=0에서 시작하여, conc가 증가할수록 killed=1로 접근
하고 있음을 알 수 있다. 즉, conc가 killed의 값에 어떠한 영향을 주고 있음을 알 수 있다.

beetle <- read.table(file="c:/beetle.txt", header=TRUE)


head(beetle)
conc killed
1 1.6907 1
2 1.6907 1
3 1.6907 1
4 1.6907 1
5 1.6907 1
6 1.6907 1

plot(killed ~ conc, beetle)


with(beetle, lines(lowess(conc, killed), lty=2, col=2))

[그림 10.1] killed와 conc의 산점도 [그림 10.2] killed와 conc의 산점도(lowess곡선 추가)

- 2 -
[예제 10.2] 교원의 연봉
1980년대 초에 미국 중서부의 어느 작은 대학에서 교원 연봉의 성별 차별에 대한 논쟁이 있었
다. 여성이 남성보다 적은 연봉을 받고 있다는 주장이 대두되었던 것이다. 자료 “salary.txt”는
이를 분석하기 위해 그 학교 소속 교원들의 연봉과 관련된 변수들을 조사한 값들이다.
[그림 10.3]은 우선 연봉(salary)과 성별(gender: 0=남성, 1=여성)의 관계를 보기 위하여 작성
한 산점도로 lowess 곡선이 추가되어있다. 이 경우에는 고액 연봉에 남성들이 더 많이 있으며,
실제로 lowess 곡선도 처음에는 0.5 근처에서 시작하다가 연봉이 증가할수록 남성 쪽으로 접근
하는 것을 볼 수 있다. 즉, 이 경우에도 연봉과 성별은 어느 정도의 관련성을 가지고 있음을
알 수 있다.

salary <- read.table(file="d:/salary.txt", header=TRUE)


head(salary)
degree rank salary gender year YSdeg
1 1 3 36350 0 25 35
2 1 3 35350 0 13 22
3 1 3 28200 0 10 23
4 1 3 26775 1 7 27
5 0 3 33696 0 19 30
6 1 3 28516 0 16 21

plot(gender ~ salary, salary)


with(salary, lines(lowess(salary, gender), lty=2, col=2))

[그림 10.3] gender와 salary의 산점도(lowess곡선 추가)

- 3 -
위의 두 예제에서 우리는 0과 1로 값들이 주어지는 반응변수들도 다른 변수들과 상당한 관
계를 가질 수 있음을 알 수 있다. 위와 같은 자료들의 분석에 사용하는 회귀모형을 로지스틱
회귀모형(logistic regression model)이라 하는데, 이 모형에서는 반응변수가 이진변수로 주어지
므로 이와 같은 변수들의 분포인 이항분포를 먼저 살펴볼 필요가 있다.

10.2 이진자료와 이항분포

변수  가 두 가지 값만 가지는 경우가 흔히 있다. 단순한 성공과 실패 외에도 어떤 병에 걸


린 경우와 그렇지 않은 경우, 암 환자가 5년 이내에 사망하는지 여부, 금융기관에서 고객이 신
청한 대출 건에 대한 승인 여부, 물체에 일정한 힘을 가했을 때 파손되는 지의 여부 등 다양
한 경우가 있게 된다. 이 경우 두 가지 결과를 통계분석의 편리상 보통 0과 1로 나타낸다. 이
처럼 반응값이 0 또는 1로만 주어지는 경우를 이진자료(binary data 또는 dichotomous data)라고
부른다. 이때 확률변수  는 베르누이(Bernoulli) 분포     를 따르게 되며,  는 보통 1로
표시되는 “성공”의 확률이다. 즉,
     

이다. 베르누이 분포의 확률질량함수(probability mass function, pmf)는 다음과 같다.


                 
그리고, 확률변수  의 기댓값과 분산은 각각      ,        로 주어진다.
이제 변수  와 관련이 있고, 설명해 줄 것으로 여겨지는 설명변수  가 있다고 하자. 예를
들어, [예제 10.1]에서는 conc이고, [예제 10.2]에서는 salary라고 할 수 있다. 통계학에서는 [그
림 10.2]와 [그림 10.3]에서 나타나는 lowess 곡선 형태를 모형화하는 방법들 중의 하나로 로지
스틱(logistic) 모형을 사용하고 있다. 이 모형에서는 성공확률  와  의 관계를

log      (10.1)

로 설정한다. 위 식의 오른쪽을 선형예측치(linear predictor)라 부르는데, 이는 선형회귀분석에

서 사용하는 모형식과 동일한 형태를 가진다. 그리고 왼쪽식에서 나타나는  는 성공확률

대 실패확률의 비(ratio)로 이것을 성공확률  에 대한 오즈(odds)라 부른다.

    (10.2)

식(10.1)의 왼쪽식은 로짓(logit)이라 부르는 함수로 성공확률  에 대한 오즈를 로그변환한 형
태이다. 식(10.1)과 (10.2)에서 우리는 오즈와 성공확률  에 대한 식들을 각각 구할 수 있다.

  exp    

exp    
   (10.3)
  exp    

위의 식들은 로지스틱 회귀분석에서 자주 사용하는 식들이므로 기억을 해두면 편리하다. 참고

- 4 -
로 식(10.3)을 보면  ,  ,  의 값에 관계없이  의 값은 항상 0보다 크고 1보다 작은 값을
가짐을 알 수 있다.
[그림 10.4]는 식(10.3)의 그래프로(수직축은 확률  , 수평축은  변수), 왼쪽은 설명변수
 의 회귀계수  이 양수인 경우이고, 오른쪽은 음수인 경우이다. 곡선의 형태가 각각 [그림
10.2]와 [그림 10.3]의 형태와 유사한 것을 알 수 있다. 그리고 [그림 10.5]는  이 양수인 경우
식(10.1)의 그래프이다. 설명변수  의 직선으로 주어지므로 식(10.1)의 설정이 타당함을 알 수
있다.

[그림 10.4] 식(10.3)의 그래프(왼쪽:  > 0, 오른쪽:  < 0)

[그림 10.5] 식(10.1)의 그래프(  > 0)

만약 중선형회귀분석에서처럼    개의 설명변수   ⋯    가 있는 경우에는 식(10.1)


을 자연스럽게 확장하여 다음과 같이 사용하면 된다.

log           ⋯        (10.4)

앞에서도 언급하였지만 식의 오른쪽을 선형예측치라 하는데, 선형회귀모형에서의 모형식과 동
일하다. 따라서 설명변수들은 연속형일 수도 있고, 범주형일 수도 있다. 그리고 범주형인 경우
에는 가변수로 변환하여 사용하게 된다.
일반적으로 0, 1 자료는 실시간으로 관측되는 경우 최근에는 데이터베이스에 그대로 저장
된다. 예를 들어, 자동화 공장에서 각 공정의 이상 유무를 0과 1로 나타내어 전달할 때 이 신

- 5 -
호는 다른 정보와 함께 컴퓨터의 데이터베이스에 실시간으로 저장되어 사용된다. 이와 같이
자료가 하나의 신호이거나 또는 개별 개체에 대한 정보로 주어지는 경우 이를 비그룹화 자료
(ungrouped data)라고 한다. 다른 한편으로 실험실 자료의 경우에는 관측값들을 일정 시간 후에
정리하게 되고 또한 효과적으로 나타내기 위하여 표의 형태를 사용하고 있다. [표 10.1]의 형
태가 대표적인 것으로, 이 표에는 살충제의 각 농도가 적용된 벌레들의 수와 죽은 벌레 수를
정리하여 나타내고 있다. 예를 들어, 첫줄의 자료는 살충제 양 1.6907이 적용된 벌레 수는 59
마리인데, 이들 중 6마리가 죽었음을 의미한다. 이와 같이 같은 속성을 가진 자료를 묶어 표
등으로 정리한 자료를 정리된 자료 또는 그룹화 자료(grouped data)라고 부른다.
위의 예제에서 동일한 살충제 농도에서 죽은 벌레 수를 통계학적으로 다음과 같이 해석할
수 있다. 예를 들어, 첫 번째 농도 수준에서 사용된 개별 벌레에서 관측된 반응변수
    ⋯ 는 0과 1의 값을 가지는 서로 독립적인 베르누이 분포를 따른다. 그리고 이들
값을 모두 더하면 59마리 벌레 수 중 죽은 벌레 수에 해당될 것이다(이 실험에서는 벌레가 죽
은 것을 “성공”이라 나타내고, 1로 표시하고 있음을 상기하라). 통계학 이론에서 우리는  개의
확률변수     ⋯  가 서로 독립이고 성공확률이  인 베르누이 분포를 따를 때 그 합인

  

 (10.5)

는 시행횟수가  이고, 성공확률이  인 이항분포(binomial distribution)를 따른다는 것을 알고


있다. 즉,  ∼    .
위의 살충제 예제에서 살충제의 양이 달라지면 벌레가 죽을 확률인  도 변하게 된다. 따
라서  번째 살충제 양  에서 벌레가 죽을 확률을  라 나타내고, 이 살충제가 적용된 벌레
수를  라 하면,  번째 실험에서 죽은 벌레들의 합  는 시행횟수가  이고, 성공확률이  인
이항분포를 따르게 된다. 그리고 전체 실험에서  개의 서로 다른 살충제 양을 사용하였다면
우리는  ∼         ⋯  의 확률표본을 가지게 된다. [표 10.1]은 각 살충제 양에서의
 값과  의 관측값인  를 보여준다. 그리고 이 실험에서는  =8이다.

베르누이 분포는 시행횟수가 1인 이항분포이므로, 일반적으로 이진자료의 경우에는 비그룹


화/그룹화 자료에 관계없이 이항분포를 가정하면 된다. 그리고 식(10.1)의 로지스틱 모형도 자
료가 그룹화이든 비그룹화이든 관계없이 모두 사용할 수 있으며, 자료의 종류와 무관하게 동
일한 분석결과를 제공해준다. 따라서 상황에 따라 편리한 형태의 자료를 사용하면 된다.

10.3 로지스틱 모형에서의 모수 추정

식(10.1)의 로지스틱 모형에는 모수인 회귀계수  와  이 있다. 따라서 반응변수와 설명변수


의 관측값을 이용하여 추정을 할 필요가 있다. 로지스틱 모형이 포함된 일반화선형모형에서는
최대가능도추정방법(maximum likelihood estimation method)을 사용한다(6.2.5절 참조). 이 방법
에 의해 구해진 추정량을 최대가능도추정량(maximum likelihood estimator; MLE)이라 하는데,

- 6 -
이 추정량은 반응변수가 특정한 확률분포를 따른다는 가정 하에서 구해지게 된다. 예를 들어,
선형회귀분석에서 사용한 최소제곱추정량도 반응변수가 정규분포를 따른다는 가정 하에서는
최대가능도추정량과 동일함을 보일 수 있다([연습문제 6.3] 참조).
로지스틱 모형에 대한 최대가능도추정방법을 이용한 구체적인 모수 추정방법은 11장에서
일반화선형모형을 소개한 다음 설명될 예정이다. 최대가능도추정량의 장점은 근사적으로 비편
향성을 만족하고 정규분포를 따른다는 것이다. 따라서 추정량의 분포를 구하는 수고를 할 필
요가 없고, 분산과 표준오차 또한 추정량을 구하는 과정에서 자연스럽게 얻어지게 된다. 그 결
과로 모수에 대한 추론이 쉽게 진행될 수가 있다. 근사적으로 정규분포를 따르므로 신뢰구간
이나 가설검정에는 t 분포 대신에 정규분포가 사용된다.

10.4 로지스틱 모형에서의 회귀계수 해석

선형회귀모형에서의 회귀계수에 대한 해석은 연속형 설명변수의 경우에는 동일하게 주어진다.


즉, 연속형 설명변수  의 계수  는 다른 설명변수들의 값이 고정되었을 때  가 한 단위
증가할 때마다 변하는 반응변수  의 “평균변화량”을 나타낸다. 물론 설명변수가 범주형인 경
우는 해석에 유의하여야 했었다. 이 경우에 회귀계수는 일반적으로 기준범주와 다른 범주가
갖는 반응변수  의 평균값의 차이를 나타낸다.
로지스틱 회귀모형에서의 회귀계수에 대한 해석을 위해서  개의 수준이 있는 모형식

log         ⋯         ′
  

을 생각하자. 위에서       ⋯     ′ 이며,      ⋯    ′ 로 정의된다. 이때
수준  에서의 오즈(odds)  는 다음과 같이 “성공”할 확률 대 “실패”할 확률의 비로 정의된다.


    exp   ′ 
 

그리고 두 수준, 예를 들어,  와  에서의 오즈  와  를 비교하기 위하여 이들의 또 다른



     exp  ′  
      
      exp  ′  

를 정의하는데, 이를 오즈비(odds ratio; OR)라 부른다.


위의 두 수준을 다른 설명변수들의 값들이 고정된 상태에서  번째 설명변수  가  인 경
우와    로 주어지는 경우 두 가지로 가정하면, 이때 두 수준에서의 오즈비는 다음과 같이
주어진다.
exp     ⋯       ⋯        
    exp  
exp     ⋯      ⋯        

- 7 -
즉, 다른 설명변수들의 값들이 고정된 상태에서  번째 설명변수  가 한 단위 변할 때의 오
즈비는 exp   로 주어짐을 알 수 있다. 예를 들어,    이면,  가 1단위 증가하면 오즈
비는 exp    이며, 따라서 ‘오즈가 42배 증가’한다는 것을 의미한다.
그리고    이면    이 되어 오즈가 변하지 않게 된다. 따라서  가 오즈 또는 반응
변수  의 성공확률  에 영향을 주지 않는다고 해석할 수 있고,  는 모형에서 제거될 수도
있다. 이는 선형회귀분석에서의 회귀계수  가 0인 경우의 해석과 동일하다. 만일  가 양수이
면    이 되어 오즈가 증가하는 방향으로 영향을 주며,  가 음수이면    이 되어 오즈
가 감소하는 방향으로 영향을 준다고 해석한다.
설명변수가 범주형이면 exp   는 범주들 간의 오즈의 차이를 나타낸다. 예를 들어, 성별
의 경우 exp    는 성별 간의 오즈의 차이가 42배라는 것을 의미한다.

10.5 모형의 적합도 측도

선형회귀분석에서 모형의 적합도는 오차제곱합  , 잔차의 표준오차  , 결정계수   등을


이용하여 판단한다. 로지스틱 회귀모형에서는 오차제곱합에 대응되는 deviance를 사용한다.
로지스틱 회귀모형에 대한 deviance 공식은 11장에 주어지며 여기서는 사용법만 소개한다.
선형회귀분석에서 하나의 모형에 대한 오차제곱합  는 값이 작을수록 그 모형의 적합도
는 좋으나, 얼마나 작은 것이 좋은가 하는 기준이 따로 없었다. 그러나 로지스틱 회귀모형에서
는  처럼 deviance값이 작을수록 모형의 적합도는 높아진다고 할 수 있으며, 작은 값에 대
한 기준도 제공된다.
구체적으로  개의 자료와  개의 모수가 있을 때 deviance  는 근사적으로 자유도   
인 카이제곱분포를 따른다. 즉,

˙     
 ∼

따라서  가 카이제곱분포의 상위분위수        보다 작으면 작다고 판정하여 모형의 적합


도가 높다고 할 수 있다.

10.6 R에서의 로지스틱 모형 적합

선형회귀모형을 적합할 때 R에서는 lm() 함수를 사용하였다. 일반화선형모형을 적합할 때는


대부분의 경우 glm() 함수를 사용한다. glm은 R에 기본적으로 설치되는 함수로, 사용 형태는
fit <- glm(formula, family=…, data=…, trace=T, weights, control)

와 같이 주어지며, 사용방법은 lm() 함수와 유사하다. 구체적으로 “formula”는 모형식을 정의하


는 것으로 lm() 함수처럼 ‘반응변수 ~ 설명변수’로 설정하는데, 설명변수를 적는 방법은 lm()에

- 8 -
서와 동일하고, 반응변수의 경우는 자료가 비그룹화/그룹화인지에 따라 약간의 차이가 있다.
그리고 “family” 인자에는 자료가 가지는 분포와 사용하는 모형식의 종류를 설정하게 된다.
“data”에는 자료가 포함된 데이터프레임을 적으면 되고, “trace”는 반복추정과정에서의 단계별
계수값들을 보여주는 옵션이다. 그리고 “weights”는 각 자료에 대한 가중치 또는 분할표 형태
의 자료에서 각 칸의 도수를 입력하는데 사용된다. 각 인자들에 대한 자세한 사용법은 예제들
에서 설명된다.

[예제 10.1] 살충제 (2번째)


이 예제에 대한 자료는 외부파일인 “beetle.txt”에 비그룹화자료 형태로 저장되어 있으며, 반응
변수 killed는 0과 1의 값을 가진다. 그리고 설명변수 conc는 각 벌레에 적용된 살충제 양을
나타낸다. 그리고 각 실험에서 벌레가 죽을 확률을    killed   이라 하면 설정된 모형은

log      

로 주어진다. 이 예제에 대한 glm 함수는 다음과 같이 설정되는데, 가정한 분포가 이항분포이
고 로지스틱 모형을 사용하므로 family=binomial(link="logit")으로 설정된다. 그리고 순차적으로
summary() 함수를 이용하여 필요한 통계값을 구할 수 있다.

beetle <- read.table(file="c:/beetle.txt", header=TRUE) # 자료 불러오기


fit1.beetle <- glm( killed ~ conc, family=binomial(link="logit"), data=beetle)
summary(fit1.beetle)
Call:
glm(formula = killed ~ conc, family = binomial(link = "logit"), data = beetle)

Deviance Residuals:
Min 1Q Median 3Q Max
-2.4922 -0.5986 0.2058 0.4512 2.3820

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -60.717 5.181 -11.72 <2e-16 ***
conc 34.270 2.912 11.77 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 645.44 on 480 degrees of freedom


Residual deviance: 372.47 on 479 degrees of freedom
AIC: 376.47

Number of Fisher Scoring iterations: 5

R의 summary() 함수는 입력되는 객체의 종류에 맞는 출력물을 보여준다. lm() 함수의 객체


이면 선형회귀분석에 맞는 출력물을, glm() 함수의 객체이면 일반화선형모형에 맞는 출력물을
자동으로 알아서 출력해준다. 이와 같은 함수를 R에서는 “generic” 함수라고 하는데 비슷한 함

- 9 -
수로 anova, coef, deviance, plot 등이 있다.
lm()의 사용에 익숙한 독자는 summary() 함수 출력물이 lm의 경우와 매우 유사하다는 것을
알 수 있다. 먼저 사용자가 입력한 명령문을 보여주고, 잔차에 대한 기초 통계값들을 보여준
다. 그리고 회귀계수들에 대한 추정값, 표준오차, z값, p값을 보여준다. 따라서 추정된 모형식
은 다음과 같다.


log       


선형회귀분석에서처럼 해석하면 conc가 1만큼 증가할 때 로그오즈(= log  )가 평균적으로

34.270만큼 증가한다고 해석할 수 있으나, 로그오즈의 의미를 파악하는 것은 쉽지 않다. 따라
서 로지스틱 모형에서는 10.4절에서 설명된 것처럼 오즈비의 개념을 사용한다. 여기서는
exp(34.270)이 매우 큰 값이고, 실제로 살충제의 양은 매우 좁은 간격으로 설정되므로, 살충제
의 양이 0.01만큼 증가할 때로 해석하는 것이 편리하다. 이 경우 exp    이므로,
살충제 양이 0.01만큼 증가할 때 오즈비는 약 1.41이 된다. 또는 “성공” 대 “실패”의 오즈가
1.41배씩 증가한다고 해석한다. 더 쉽게 이해하기 위해서 conc=x일 때의 오즈를  ,

conc=x+0.01일 때의 오즈를    이라 나타내면 위의 추정식에서


  exp      ,     exp       
임을 알 수 있고, 이 두 오즈의 비는
   exp       
      exp   
 exp     

로 주어지며, 또한       가 되어 위에서와 같은 해석이 가능하다.


일반화선형모형에서는 최대가능도추정량을 사용하므로 각 회귀계수의 유의성 검정에 t 검
정이 아닌, 표준정규분포를 이용한 검정을 사용한다. 예를 들어, 위의 출력물에는 회귀계수 추
정값(“Estimate”) 34.270을 표준오차(“Std. Error”) 2.912로 나누어 준 값인 34.270/2.912=11.77(“z
value”)이 주어져있으며, 이는 표준정규분포의 상위 0.025분위수인 1.96보다 크므로(또는 p값이
0.05보다 매우 작으므로), 가설      을 기각하게 된다. 회귀계수  에 대한 유의성 검정
도 같은 방식으로 할 수 있으며, 따라서 이 예제에서는 두 회귀계수들의 추정값이 모두 통계
적으로 유의하다고 할 수 있다. 그러나 선형회귀모형에서와 마찬가지로 로지스틱모형에서도
상수항은 큰 의미가 없다.
밑에서 3번째 줄에 있는 “Residual deviance”가 모형의 적합도를 나타내는 deviance 값으로
선형회귀모형에서의 오차제곱합  와 같은 의미의 통계값이다. 이 값이 작으면 현재모형의
적합도가 좋다고 할 수 있는데, 이 문제에서 deviance는 자유도 479의 카이제곱분포를 따르며,
이 분포에서의 상위 0.05 분위수는
> qchisq(0.95, 479)
[1] 531.0222
이므로, deviance  =372.47은 기준값보다 작다. 따라서 현재모형의 적합도는 좋다고 해석할 수
있다. 출력물에 있는 다른 값들은 추후에 설명될 예정이다.

- 10 -
[그림 10.6]은 원 자료의 산점도 위에 추정된 모형식을 나타낸 것이다. 우리가 실제로 추정
한 것은 확률이므로 산점도의 수직축에는

 exp     


  
  exp     

를 나타낸 것이다. 그리고 살충제 양이 1.76인 경우에 계산을 해보면 


   이므로, 살충제
의 치사율이 약 40%가 된다고 할 수 있다.

plot(killed ~ conc, beetle)


with(beetle, lines(lowess(conc, killed), lty=2, col=2))
curve( exp(-60.717+34.270*x) / (1 + exp(-60.717+34.270*x)), add=TRUE, col=4)

[그림 10.6] killed와 conc의 산점도, lowess 곡선, 로지스틱 모형의 추정 곡선.

[예제 10.2] 교원의 연봉 (2번째)


이 예제에 대한 자료는 외부파일인 “salary.txt”에 비그룹화자료 형태로 저장되어 있으며, 반응
변수 gender는 0(=남성)과 1(=여성)의 값을 가진다. 그리고 변수 salary는 각 교원의 연봉이다.
확률    gender  이라 하면 설정된 모형은

log      

로 주어지므로 살충제 예제와 동일한 방법으로 분석하면 된다.

salary <- read.table(file="c:/salary.txt", header=TRUE)


fit.sal <- glm( gender ~ salary, family=binomial(link="logit"), data=salary)
summary(fit.sal)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.097e+00 1.668e+00 1.856 0.0635 .
salary -1.879e-04 7.748e-05 -2.425 0.0153 *

- 11 -
Null deviance: 57.901 on 50 degrees of freedom
Residual deviance: 50.319 on 49 degrees of freedom
AIC: 54.319

(*** 필요한 부분만 표시함.)

이 예제의 경우에도  의 추정값은 유의하며, 추정된 모형식은 다음과 같다.




log      

그리고 추정된 오즈비는 exp      이다. 또는 salary를 $1000당으로 계산하면
오즈비는 exp      이 된다. 따라서 연봉이 $1000씩 증가할 때마다 “여성일 확률”
대 “남성일 확률”의 비인 오즈는 약 0.83배씩 증가한다. 해석을 쉽게 하기 위하여 역으로 계산
하면 “남성일 확률” 대 “여성일 확률”의 오즈는 약 1/0.83=1.2배 증가한다.(이때 남성일 확률이
여성일 확률의 1.2배씩 증가한다고 해석하는 것은 잘못된 것이다.) 즉, 연봉이 높을수록 남자
일 “가능성”이 높아지며, 그 차이는 통계적으로 유의하다고 할 수 있다(p값<0.05). 따라서 위의
모형만으로 해석하면 남녀 간에 연봉의 차이가 있다고 할 수 있다.
이 모형식의 deviance는  =50.319(자유도 49)로 기준값인
> qchisq(0.95, 49)
[1] 66.33865
보다 작으므로, 이 모형의 적합도도 좋다고 해석할 수 있다. [그림 10.7]은 원 자료의 산점도
위에 추정된 모형식을 나타낸 것이다.

plot(gender ~ salary, salary)


with(salary, lines(lowess(salary, gender), lty=2, col=2))
curve( exp(3.097-0.0001879*x) / (1 + exp(3.097-0.0001879*x)), add=TRUE, col=4)

[그림 10.7] gender와 salary의 산점도, lowess 곡선, 로지스틱 모형의 추정 곡선.

- 12 -
[예제 10.1] 살충제 (3번째)
외부파일인 “beetle2.txt”에는 [표 10.1]의 자료가 저장되어 있다. 이 경우에는 설정되는 모형은
동일하지만 그룹화자료이므로 glm() 함수의 사용방법이 조금 달라지게 된다.

beetle2 <- read.table(file="c:/beetle2.txt", header=TRUE) # 자료 불러오기


beetle2
conc nbug nkilled
1 1.6907 59 6
2 1.7242 60 13
3 1.7552 62 18
4 1.7842 56 28
5 1.8113 63 52
6 1.8369 59 53
7 1.8610 62 61
8 1.8839 60 60

fit2.beetle <- glm( cbind(nkilled, nalive=nbug-nkilled) ~ conc, family=binomial(link="logit"),


data=beetle2)
summary(fit2.beetle)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -60.717 5.181 -11.72 <2e-16 ***
conc 34.270 2.912 11.77 <2e-16 ***

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 284.202 on 7 degrees of freedom


Residual deviance: 11.232 on 6 degrees of freedom
AIC: 41.43

비그룹화자료의 경우에는 반응변수로 0, 1 값을 갖는 변수를 입력하였으나, 그룹화자료의 경우


에는 반응변수 부분에 행렬을 표시한다. 첫 번째 열은 1(=“성공”)의 개수를 갖는 변수(nkilled)
이며, 두 번째 열은 0(=“실패”)의 개수를 갖는 변수(nalive)이다. 자료에는 전체 벌레 수가 입력
되어 있으므로 여기에서 죽은 벌레 수를 빼서 계산되었다(nalive=nbug-nkilled). 함수 cbind()는
열벡터들을 묶어 행렬로 만들어 준다.
출력물을 보면 회귀계수의 추정값들과 관련 통계값들은 모두 비그룹화자료를 사용한 경우
와 동일하다는 것을 알 수 있다. 단, 자료의 개수가 차이가 있으므로 deviance와 자유도는 다
른 값을 가진다. 그러나 이 경우에도 모형의 적합도에 대한 결과는 동일하게 나온다.
다음으로 그룹화자료의 경우에 자료의 산점도를 작성하고, 추정 모형식을 표시하는 방법을
알아보자. 반응변수  가 이항분포    를 따르는 경우 성공확률  의 추정값은 
   
으로 주어진다. 따라서 그룹화자료의 경우에는 산점도의 수직축에 0, 1이 아닌 성공비율을 표
시하면 된다.

beetle2$rate <- beetle2$nkilled / beetle2$nbug # 치사율 계산


plot(rate ~ conc, beetle2)

- 13 -
with(beetle2, lines(lowess(conc, rate), lty=2, col=2))
curve( exp(-60.717+34.270*x) / (1 + exp(-60.717+34.270*x)), add=TRUE, col=4)

[그림 10.8] rate와 conc의 산점도와 로지스틱 모형의 추정 곡선(그룹화자료 사용).

10.7 왜 로지스틱 모형을 사용하는가?

[그림 10.8]을 보면 성공확률  의 추정값인 치사율을 나타내는 변수 rate의 값들이 conc의 값에


따라 증가하고 있음을 알 수 있다. 따라서  의 conc에 대한 선형함수를 가정하여 단순회귀식
     

을 설정하여 사용하거나,  에 대한 적당한 차수의 다항회귀식을 설정할 수도 있을 것이다. 그


러나 치사율 rate가 정규분포를 따른다고 가정을 하기는 어려우며, 더군다나 선형회귀분석의
경우에는 값의 범위에 제한이 없기 때문에  의 예측값 
 이 경우에 따라서는 [0, 1] 밖의 값이
되어 문제가 발생할 수 있다. 로지스틱 모형을 사용하면 확률  가 식(10.3)과 같이 주어지게
되어, 회귀계수 추정값 
, 
  의 값에 관계없이 확률 예측값 
 은 항상 0과 1 사이의 값을 가

지게 된다.

10.8 기타 예제

최근에 로지스틱 모형은 의학통계, 사회조사통계, 금융 등 다양한 분야에서 많이 사용되고 있


다. 다음 예제는 설문 자료를 이용한 분석 사례이다. 이 예제에는 2개 이상의 설명변수들이 있
으며, 특히 범주형 설명변수들을 포함하고 있다. 로지스틱 모형의 오른쪽 부분인 선형예측치는
선형회귀모형의 경우와 동일하다. 따라서 범주형 설명변수는 가변수화하여(factor함수 사용) 모
형에 포함되어야 하며, 해석은 각 범주 간의 차이로 주어지게 된다.

- 14 -
[예제 10.3] 혼전순결에 대한 찬반 여부
이 자료는 2014년 한국종합사회조사(kgss.skku.edu)에서 가져온 것으로 혼전순결과 관련된 변수
들을 추출하여 사용한 것이다. 변수들은 사전분석을 통하여 선택되었으며, 분석의 목적에 따라
몇 개의 연속형 변수는 범주형으로 변환하여 사용되었다. 그리고 기존의 범주형 변수들도 범
주들을 묶어 다시 설정하기도 하였다.
반응변수는 chastity(1=혼전순결 동의, 0=비동의)이며, 설명변수로는 gender(1=남성, 2=여성),
age(3=20~30대, 4=40대, 5=50대, 6=60세 이상), religion(1=기독교, 2=기타 종교, 3=무교),
marital(0=미혼, 1=기혼), educ(1=중졸, 2=고졸, 3=대졸, 4=대학원 이상), politic(=1,2,3, 정치적
성향), income(0=저소득, 1=고소득)이 사용되었다. 분석에서 educ는 연속형 변수로 사용되었고,
나머지 설명변수는 모두 범주형으로 간주되었다.
변수별로 예상되는 것은 남성보다는 여성이, 20~30대보다는 50대 이상의 연령대가 혼전순
결에 대한 동의 정도가 높을 것으로 생각되며, 그리고 종교가 기독교인 사람, 혼인상태가 기혼
자인 사람, 고학력자와 정치적 성향이 보수적인 사람, 월평균 가구소득이 높은 사람이 성에 관
해서도 보수적일 것이라는 것인데 이에 대한 검증을 하고자 한다.

kgss <- read.csv(file="d:/chastity.csv", header=TRUE)


kgss$chastity = ifelse(kgss$chastity == 1, 0, 1) # 1=동의, 0=비동의
head(kgss)
chastity gender politic educ age marital income religion
1 1 1 1 4 30 0 0 2
2 0 1 2 3 40 1 0 1
3 1 1 1 6 50 1 1 1
4 1 1 3 2 30 0 0 3
5 0 1 1 6 30 0 1 3
6 1 1 2 5 30 0 0 2

fit.kgss <- glm( chastity ~ factor(gender) + factor(politic) + educ + factor(age) + factor(marital) +


factor(income) + factor(religion), family=binomial(link="logit"), data=kgss)
summary(fit.kgss)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.50429 0.34053 -1.481 0.138636
factor(gender)2 0.30005 0.13179 2.277 0.022800 *
factor(politic)2 -0.08581 0.15936 -0.538 0.590259
factor(politic)3 0.04703 0.14888 0.316 0.752058
educ -0.10989 0.05275 -2.083 0.037246 *
factor(age)40 0.74603 0.19501 3.825 0.000131 ***
factor(age)50 1.20087 0.21642 5.549 2.88e-08 ***
factor(age)60 1.53296 0.23823 6.435 1.24e-10 ***
factor(marital)1 0.15951 0.20009 0.797 0.425339
factor(income)1 -0.51475 0.18535 -2.777 0.005483 **
factor(religion)2 -0.40181 0.16344 -2.458 0.013953 *
factor(religion)3 -0.78360 0.16068 -4.877 1.08e-06 ***

(Dispersion parameter for binomial family taken to be 1)

- 15 -
Null deviance: 1717.6 on 1273 degrees of freedom
Residual deviance: 1501.2 on 1262 degrees of freedom
AIC: 1525.2

Number of Fisher Scoring iterations: 4

coeff = coef(fit.kgss)
( OR = exp(coeff) ) # 오즈비 계산
(Intercept) factor(gender)2 factor(politic)2 factor(politic)3 educ
0.6039337 1.3499303 0.9177706 1.0481582 0.8959342
factor(age)40 factor(age)50 factor(age)60 factor(marital)1 factor(income)1
2.1086035 3.3230230 4.6318655 1.1729382 0.5976520
factor(religion)2 factor(religion)3
0.6691075 0.4567585

함수 factor를 사용하여 가변수화 하는 경우 별다른 설정이 없으면 R에서는 항상 첫 번째


범주가 기준범주가 됨을 상기하면서 위의 결과들을 해석하면 다음과 같다. 다른 설명변수들의
조건이 동일할 때,
(1) 여자의 오즈가 남자의 오즈의 약 1.35배이다. 즉, 여성이 혼전순결에 동의하는 “경향”이 남
성의 약 1.35배라 할 수 있다.
(2) 중졸에서부터 대학원 이상까지 최종학력이 한 단위 증가할 때마다 혼전순결 동의에 대한
오즈가 약 10%씩 감소한다.
(3) 나이가 많을수록 혼전순결에 동의하는 오즈가 증가한다. 구체적으로 60대 이상의 경우
20~30대 보다 혼전순결에 동의하는 오즈가 약 4.63배이다.
(4) 가구소득이 월 750만원 이상 되는 사람들은 혼전순결에 동의하는 오즈는 그렇지 못한 사
람들의 오즈의 약 0.6배이다.
(5) 기독교인의 혼전순결에 동의하는 오즈가 제일 크다. 구체적으로 “기타 종교”보다
1/0.6691=1.5배 크며, 무교인 사람들보다 1/0.4568=2.2배 크다.
(6) politic과 marital의 경우에는 범주 간의 유의한 차이가 없다.

사전 예상과 다르게 나온 경우는 educ와 income으로, 고학력자 일수록 가구소득이 높을수록


혼전순결에 비동의하는 성향을 띄고 있다. □

[연습문제]

1. 확률변수      ⋯  들이 서로 독립일 때    의
 
 기댓값과 분산은 각각

  
        와
 
      로
 
 주어진다. 이들을 식(10.5)   

 에 적용하

여 이항분포    의 평균이   이고, 분산이      임을 보여라.

- 16 -

2. (1) 오즈  는 성공확률  가 증가하면 따라서 증가함을 보여라.


(2) 성공확률  와 오즈  는 성공확률이 매우 작은 경우에 비슷해짐을 설명하여라.


3. 기초통계학에서 확률의 차이에 대해 추론하는 방법을 배웠었다. 경우에 따라서는 두 확률들


의 비교에 차이(difference)보다는 두 확률의 비(ratio)를 이용하는 것이 더 유용할 수 있다.
확률 0.01과 0.09, 0.90과 0.98에 대해 각각 차이와 비를 구해보고 비를 이용하는 것의 장점
을 설명하여라.

4. 본문에서 예제로 사용된 교원의 연봉 자료에는 현 직급에 근무한 연수를 나타내는 변수인
“year”가 있다. 이 변수도 설명변수에 포함하여 로지스틱 모형을 적합해보자. 즉,
fit2.sal <- glm( gender ~ salary + year, family=binomial(link="logit"), data=salary)
summary(fit2.sal)
를 실행하면 된다.
(1) 적합된 추정 모형식을 적고, deviance를 이용하여 모형의 적합도에 대해 설명하여라.
(2) 변수 “salary”와 “year”의 계수추정값의 의미를 설명하여라.
(3) 성별과 연봉 간에 관련성이 있다고 할 수 있는가?
(4) gender를 수직축, year를 수평축으로 하는 산점도를 작성하고 특징을 설명하여라.
그리고 이것을 이용하여 (3)의 결과와 [예제 10.2]의 결과가 다르게 나온 이유를
설명해보아라.
(5) 이 문제에서는  를 여성일 확률이라 정의하였다. 만약에  를 남성일 확률이라 정의하면
회귀계수 추정값들은 어떻게 변하는가?

5. 어느 대학교에서는 최근에 시행된 정책 한 가지에 대해 구성원들의 반응을 알아보기 위하


여 설문조사를 실시하여 다음과 같은 결과를 얻었다.

여학생 남학생
찬성 192(  ) 123(  )
반대 128(  ) 287(  )
320 410

숫자로 적힌 응답자 수를 이용하여 다음을 계산하여라.


(1) 정책에 찬성할 확률을  라 할 때 여학생의 찬성율과 비찬성율의 오즈를 구하여라.
(2) 남학생의 찬성율과 비찬성율의 오즈를 구하여라.
(3) 여학생과 남학생의 오즈비를 구하여라.
(4) 문자로 표시된 응답자수를 이용하여 (3)의 오즈비를 표시하여라.
(5) 표에 주어진 값들을 이용하여 찬성할 확률  에 대한 로지스틱모형을 R로 적합하여라.
설명변수는 성별(gender; 1=여학생, 0=남학생)이다. 추정된 로지스틱모형에서 계산되는
오즈비는 얼마인가?

- 17 -

You might also like