범주형 자료분석

1. 실습 개요

2. 로지스틱 회귀분석 (Reprise)

문항 43번은 한국 사회 갈등의 주요 원인에 대한 생각을 묻습니다. 여러 원인들 중 “빈부격차” 를 첫 번째, 또는 두 번째 순위로 뽑은 응답자들이 있습니다. 이처럼 상대적으로 빈부격차에 문제의식을 가진 집단과 그렇지 않은 집단을 구분하며 이야기를 시작하겠습니다.

<aside> 🧑🏻‍💻 tab q43_1 tab q43_2

gen gap_problem = 0 recode gap_problem 0= 1 if q43_1 == 4 | q43_2 == 4

</aside>

빈부 격차를 주요 사회 갈등으로 고른 집단과 그렇지 않은 집단엔 어떠한 체계적인 차이가 있을까요? 빈부 격차를 사회 갈등의 1순위 또는 2순위 원인으로 고를 확률 (문제 의식을 갖고 있다: risk; event == 1) 을 설명하는 요인엔 무엇이 있을까요?

가설: “성장보다 분배가 더 중요하다고 인식할수록 빈부격차를 주요 사회갈등으로 생각할 가능성이 높아질 것”

<aside> 🧑🏻‍💻 clonevar distribution = q13 label define distribution 0 "성장" 10 "분배" label values distribution distribution

logit gap distribution

</aside>

로짓분석: 우리가 가진 자료 (X와 Y 값들) 를 가장 잘 설명하는 X와 Pr(Y=1) 의 관계 (b0, b1)

          X 라는 정보를 바탕으로 Pr(Y=1) 을 추정하는 것    . . . . . cf. X→Y in OLS 

          즉, 계산된 계수 값들은 X를 바탕으로 Y가 1이 될 가능성/확률을 도출하는 데 사용됩니다. 

Pr(gap_problem = “yes” | distribution = 0) [exp(-0.4749716 + 0.0330864 * 0)] / [exp(-0.4749716 + 0.0330864 * 0) + 1]

Pr(gap_problem = “yes” | distribution = 10) [exp(-0.4749716 + 0.0330864 * 10)] / [exp(-0.4749716 + 0.0330864 * 10) + 1]

<aside> 🧑🏻‍💻 prvalue, x(distribution = 0) prvalue, x(distribution = 10)

prtab distribution

logit gap distribution margins, at(distribution=(0(1)10))

</aside>

이처럼 추정된 계수에 i번째 응답자의 distribution 정보를 넣고 그 자체를 아래의 식
exp(b0 + b1xi) / [1+exp(b0 + b1xi)] 에 대입하면 각 응답자의 예측 확률을 구할 수 있습니다. 

그렇다면, b1 이라는 기울기 (x가 한 단위 변화할 때의 변화량) 가 의미하는 바는 무엇일까요?

distribution: 0 distribution: 1 distribution: 2
Gap_Yes 확률 0.3834 0.3913 0.3992
Gap_Yes 오즈 0.6218 0.6428 0.6644
오즈비 1.033 1.033 = exp(0.033)

로짓분석에서 계수는 로그-오즈비를 의미합니다. 계수 값에 exp( ) 를 적용시키면 오즈비가 나타나는데, 우리는 이를 x가 한 단위 증가할 때 y라는 사건이 나타날 가능성이 exp(b1) 배만큼 증가한다라고 합니다.

<aside> 🧑🏻‍💻 logit gap distribution, or

</aside>

그러나 직관적인 이해를 위해 예측 확률의 변화를 margins 를 통해 계산하고 그 그림을 그려주는 것을 추천합니다. (참고: 오즈비는 일정하지만 그를 바탕으로 계산한 예측확률은 x 급간에 따라 늘어남이 다릅니다)

다른 변수들을 추가적으로 고려해 통제 역시 가능합니다.

<aside> 🧑🏻‍💻 logit gap distribution female age house_inc liberal

margins, at(distribution= (0(1)10)) atmeans marginsplot

margins, at(distribution = 10 female =1 age=1 house_inc=12 liberal =3)

</aside>

교차항도 이용할 수 있습니다.

<aside> 🧑🏻‍💻 recode liberal (1 2= 1 "보수") (3=2 "중도") (4 5=3 "진보"), gen(ideology_cate)

logit gap c.distribution##ib2.ideology_cate female age house_inc margins, at(distribution=(0(1)10) ideology_cate=(1 2 3)) atmeans marginsplot

</aside>

프로빗 분석과 로짓분석은 그 결과상에서 크게 다르지 않습니다.

<aside> 🧑🏻‍💻 logit gap distribution female age house_inc liberal margins, at(distribution = (0(1)10)) atmeans marginsplot graph copy my_logit

probit gap distribution female age house_inc liberal margins, at(distribution = (0(1)10)) atmeans marginsplot graph copy my_probit

graph combine my_logit my_probit

</aside>

그렇다면 모형의 적합도는 어떻게 평가할 수 있을까요? 다음을 생각해봅시다.

모델 1: Pr(gap=1) = b0 * LR chi2( ) = −2(ln(LR) − ln(LU))

모델 2: Pr(gap=1) = b0 + b1 * distribution

모델 3: Pr(gap=1) = b0 + b1 * distribution + b controls

<aside> 🧑🏻‍💻 logit gap logit gap distribution ## LR chi2(1) = 5.36 logit gap distribution female age house_inc liberal ## LR chi2(5) = 15.28

logit gap distribution estimates store m2 logit gap distribution female age house_inc liberal estimates store m3 lrtest m2 m3 ## LR chi2(4) = 9.92

</aside>

연습문제 10


이번 연습문제는 종속변수를 기회의 불평등을 1,2 순위 갈등원인으로 뽑은 경우와 그렇지 않은 경우를 나타내는 변수로 설정하고 진행합니다.

  1. 위 실습에서 했던 것처럼, q43_1 및 q43_2 를 참고하여 기회의 불평등을 갈등의 주된 요인으로 골랐는지 아닌지를 나타내는 inequality_problem 변수를 만들어주세요. 이를 종속변수로 활용합니다.

  2. 위 종속변수를 설명하는 독립변수로 성장 v. 분배 변수 (distribution) 을 사용하는 로짓 모델을 돌려주세요. 성별(female) 과 연령 (age), 지난해 가구 소득 (house_inc) 과 정치이념(liberal) 을 통제변인으로 사용합니다.

  3. 위 결과 표에서 distribution 의 계수값이 의미하는 바가 무엇인지를 생각해주세요. 오즈일까요? 오즈비일까요? 예측 확률일까요? 아니면 로그-오즈비일까요?

  4. 다른 변수 영향력을 통제했을 때, distribution 변수가 0부터 10까지 한 단위씩 증가할 경우 종속변수가 1 이 될 예측확률이 어떻게 변할지를 margins 를 통해 확인해주세요.

  5. 위에서 margins 를 통해 계산된 예측확률을 오즈로 바꾸는 방법은 무엇일까요? distribution 이 1일 때와 2일 때 예측확률을 바탕으로 각각의 오즈를 계산해보세요.

  6. distribution 이 1일 때와 2의 오즈비를 계산해주시고 그에 로그를 씌운 로그-오즈비도 계산해주세요. 해당 수치는 무엇과 같나요? 그렇다면 distribution 이 2일 때 오즈와 3일 때 오즈의 비율에 로그를 취하게 되면 어떤 값을 얻을 수 있을까요?

  7. 이번엔 2번에서 수행한 로짓분석에서 liberal 을 빼고 그 대신 이념을 1 “보수” 2 “중도” 3 “진보” 로 나타낸 ideology_cate 변수를 활용하겠습니다. 다만, 여기서 ideology_cate 는 교차항으로 활용하겠습니다.

  8. 이념에 따라서, distribution 이 inequality_problem 에 미치는 영향력이 달라지는지 (교호작용)를 나타내는 플롯을 그려주세요.

  9. 2번에서 수행한 모델은 아무것도 설명변수로 활용하지 않은 모델에 비해 적합도가 나아졌나요? 7번에서 수행한 모델과 2번에서 수행한 모델을 비교하면 어떨까요?

3. 기타 범주형 자료분석

Multinomial Logit

종속변수가 0과 1로 이루어진 이진 변수가 아니라 범주형 - 명목형인 경우에 사용하는 방식입니다.

종속변수 각 카테고리를 더미화시킨 뒤 각 확률을 로짓을 통해 추정하는 방식과 유사합니다.

X가 변화함에 따라 각 범주의 예측 확률을 계산할 수 있습니다.

<aside> 🧑🏻‍💻 gen work_status = .

recode work_status .=1 if d9_2 == 1 recode work_status .=2 if d9_2 == 2 | d9_2 == 3 recode work_status .=3 if d9_1 == 2 | d9_1 == 3

label variable work_status "고용상태" label define work_status 1 "정규직" 2 "비정규직" 3 "자영업자" label values work_status work_status

</aside>

<aside> 🧑🏻‍💻 mlogit work_status female age house_inc ib1.edu margins, at(house_inc =(0(1)12)) atmeans marginsplot, xlab(1 7 12)

</aside>

Ordered Logit

종속변수가 0과 1로 이루어진 이진 변수가 아니라 범주형 - 순서형인 경우에 사용하는 방식입니다.

q5_1 (대한민국 국민으로서의 자긍심) 처럼 1 “전혀 그렇지 않다" ~ 4 “매우 그렇다" 를 종속변수로 분석할 때 사용합니다.

/cut1 /cut2 /cut3 등은 절편(각 결과의 시작점) 이라고 생각할 수 있습니다.

마찬가지로 x가 변화함에 따라 각 범주(순서형 범주) 예측 확률을 계산할 수 있습니다.

<aside> 🧑🏻‍💻 ologit q5_1 female age house_inc margins, at(house_inc =(0(1)12)) atmeans marginsplot, xlab(1 7 12)

findit gologit2 gologit2 q5_1 female age house_inc margins, at(house_inc =(0(1)12)) atmeans marginsplot, xlab(1 7 12)

</aside>

Count Analysis