}

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터 분석] 회귀분석을 할 때 로그 변환을 하는 이유
    Data Science/데이터 분석, ML 2020. 10. 8. 20:49
    반응형

     



    0. 들어가는 글

    데이터 분석을 이용한 논문을 보다보면 변수에 로그를 취하는 경우가 종종 있습니다.
    미시데이터를 다루는 경우에는 로그임금을, 거시데이터는 로그GDP나 로그인구를 사용하는 경우가 꽤 많아요.
    많은 책에서는 로그변환 변수를 해석하는 방법을 따로 소개하기도 합니다.
    그만큼 로그변환이 중요한 부분이기는 해요.
    하지만 로그변환을 하는 이유에 대해서는 충분히 알려주지는 않습니다.
    왠지 치열하게 개고생하고 고민해서 알아내라는 의도이지 않을까 싶습니다.

    제 생각에 절대적인 기준이 있는 것 같지는 않아요.
    다만 로그 변환이 권장되는 상황에는 변환을 하는 게 좋겠습니다.
    이제 서술할 부분은 공인된 지식이라고 보기는 어렵습니다.
    강의나 논문 지도를 받으며 알게 된 사실들을 정리했다는 점, 참고해주세요.

     

     



     

    1. 단위(Scale)의 문제

    소득이 불평등에 미치는 영향에 관심이 있다고 해보겠습니다.
    그러면 우리의 관심인 소득과 불평등의 관계를 아래처럼 나타낼 수 있습니다.
    $$ Inequality = f(Income, z') $$
    $z$는 소득을 제외한 설명변수 벡터를 말해요.
    우리는 신이 아니니, 함수 $f$의 정확한 형태는 알 수는 없어요.
    그러므로 정확한 형태를 나타내는 건 포기하고, 대신 선형식이라고 가정하겠습니다.
    $$ GINI_i = \beta_0 + \beta_1 GDP_i + \beta_{z}'z_i + u_i $$
    불평등은 지니계수로, 소득은 GDP로 통제하겠습니다.
    여기서 $z$는 $GDP$가 아닌 설명변수들의 벡터, $\beta_z$는 $\beta_0$와 $ \beta_1$을 제외한 계수를 모아둔 벡터를 말합니다.

    자, 이제 이 선형식을 추정해 볼 수 있을텐데요.
    적절한 추정량에 맞게 계산해보면 어떤 숫자를 구할 수 있을 겁니다.
    쉽게 $\hat{\beta_1}$을 0.05라고 해보겠습니다.

    그러면 우린 이걸 이런 식으로 해석합니다.

    다른 조건이 일정할 때, GDP가 1단위 늘어나면 지니계수는 평균적으로 0.05만큼 늘어난다.

     


    여기서는 아직 GDP의 측정단위를 얘기하지 않았습니다.
    만약 GDP를 백만원 단위로 측정했다면, 'GDP가 1백만원 늘어났을 때, 지니계수는 0.05 늘어난다'라고 해석하면 될 거에요.
     
    일반적으로 GDP는 평소 일상에서 접하기 어려운 아주 큰 숫자입니다.
    2020년 한국의 명목 GDP는 1,933조 1,524억원이었습니다.
    그러니 '원'단위로 쓴 GDP는 대략 1,933,152,400,000,000원 정도 됩니다.
    이에 반해 지니계수는 0과 1사이에서 값을 갖습니다.
    그래서 GDP 단위가 '원'일 때, 상식적인 결과가 나오려면 아마 계수는 매우, 매우 작게 추정 될 거에요.
    이처럼 변수가 너무 큰 경우(= 측정 단위가 작은 경우)에는 계수가 너무 작게 추정이 됩니다.  
    보기에도 안 좋을 뿐더러 직관적으로 이해하기는 더더욱 어렵습니다.
     
    계수가 너무 작게 추정되는 경우, 일반적으로 단위를 조정해줍니다.
    예를 들어 백만원이나 십억원 정도의 큰 단위로 값을 측정합니다.  
    GDP는 주로 십억원 단위로 측정합니다.
    십억원 단위로 표기한 GDP는 원 단위로 표기한 경우보다 훨씬 작은 숫자로 써도 되겠지요.
    그 덕에 계수 $\hat{\beta_1}$도 직관적인 수준에서 구할 수 있을 겁니다.

    비슷하게, 단위를 직접 조정하는 방법 말고 로그 변환을 해주는 경우도 있습니다.
    로그는 태생적으로 큰 값을 작게 표기하기 위해 고안된 방법이니, 값을 적당히 줄이기 위해 로그를 사용하는 건 합리적이지요.
    게다가 로그변환을 하는 경우 추가적인 이점이 있습니다.

    예를 들어 보겠습니다.
    위의 사례처럼 소득이 불평등에 미치는 영향을 추정한 결과가 0.05라고 해보겠습니다.
    그리고 GDP는 백만달러 단위로 측정했다고 해보겠습니다.
    우리는 이 결과를 이렇게 해석할겁니다.

    GDP가 1백만 달러 증가할 때 마다, 불평등(=지니계수)은 0.05만큼 상승한다.


    현실세계에 이 결과를 적용해보겠습니다.
    현실에는 미국이나 중국같이 경제규모가 굉장한 나라도 있고, 그렇지 못한 국가도 있을 겁니다.
    위의 결과가 부국과 빈국 모두에서 동일한 의미를 가질까요?
    미국 입장에서 GDP 1백만 달러와, 소말리아에서 GDP 1백만 달러는 그 의미가 굉장히 다를 거에요.
    일반적으로 계수 해석 앞에 '평균적'이라는 단서를 달기는 합니다.
    그럼에도 미국과 소말리아에서 백만달러로 측정한 GDP 1단위는, 의미가 다를 수 밖에 없지요.

    만약 'GDP가 1% 상승했을 때, 지니계수는 0.05 증가한다'와 같은 해석을 할 수 있다면 어떨까요?
    결과해석은 항상 조심스럽게 해야하지만, 그럼에도 'GDP 1백만 달러 늘어날 때...'로 시작하는 해석보다는 훨씬 설득력이 있어 보입니다.
     
    이처럼 로그변환은 변수의 측정단위가 매우 작아서 생기는 문제를 해결줍니다.
    동시에 계수 해석에 설득력을 부여하는 이점도 있어서, 로그변환을 하곤 합니다.

    ※ 참고 :  [데이터 분석] 로그변환을 "변화율, 성장률"로 해석하는 이유

     

     


     

    2. 모형(Model)의 문제

    두번째 경우는 모형 자체가 반드시 로그를 취해야 하는 경우를 말합니다.
    대표적인 예시로 중력모형이 있습니다.
    중력모형은 뉴턴의 중력방정식에서 착안한 모형인데, 중력방정식은 아래처럼 생겼다고 합니다.
    $$G = C\frac{M_{1}M_{2}}{D}$$
    $G$는 중력, $M$은 질량, $D$는 두 물체 사이의 거리를 의미합니다.
    식의 의미를 뜯어보면, 중력은 (1)두 물체의 질량에 비례하고 (2)거리에는 반비례한다는 의미에요.
    이런 아이디어에 착안해서 적용하는 게 중력모형입니다.
    두 국가의 경제적 질량(GDP, 인구규모 등)이 경제적 중력(인구의 이동, 무역 교역량 등)에 영향을 미치는 거죠.
    식으로는 아래와 같이 생겼습니다.
    $$T = C^{\beta_0}\frac{EM_{1}^{\beta_1}EM_{2}^{\beta_2}}{D}$$
    $T$는 교역량, $EM$은 경제적 질량을 말합니다.
    국가의 경제규모가 커질수록 교역량이 늘어 날겁니다.
    국가 간의 거리가 너무 멀다면, 운임비도 오르고 문화적 거리감도 클테니 교역량은 줄어들거에요.
    충분히 상식적인 모형이라고 생각되네요.
    문제는 위 식처럼 생긴 모형은 바로 추정하기가 어렵습니다.
    그래서 양변에 로그를 취해서 아래와 같은 꼴로 만들어 줍니다.
    $$lnT = \beta_{0}lnC + \beta_{1}lnEM_1 + \beta_{2}lnEM_2 - lnD$$
    이제 적당한 선형식이 되었으니 추정하면 됩니다.
    (이 때는 OLS 보다는 고정효과로 추정합니다.)
     
    비슷한 사례로는 콥-더글라스 함수(Cobb-Douglas function)을 사용하게 되는 경우가 있습니다.
    콥-더글라스 생산함수는 아래와 같이 생겼어요.
    $$Y = AL^{\alpha}K^{\beta}$$

    여기서 $\alpha + \beta = 1$이면 1차 동차함수라고 부릅니다.
    경제학 이론에서는 생산함수가 1차 동차함수라고 가정하고 이론을 전개하는 경우가 많습니다.
    그래서 실증연구에서는  $\alpha + \beta = 1$라는 가설을 검정할 필요가 있습니다.
    이 경우 로그를 취하면 비교적 손쉽게 가설검정을 해낼 수 있습니다.

     


     

    3. 데이터 생성 과정(Data Generating Process;DGP)의 문제


    이 경우는 알고 있으면 아는 척 하기 참 좋아요(!).

    종종 확률변수의 분포는 로그정규분포처럼 꼬리가 긴 분포인 경우가 있습니다.
    항상 그런 것은 아니지만 데이터 생성과정에서 일종의 조작(?)이 생겨서 이런 일이 발생할 수도 있어요.
    예를 들어서 이 세상이 매우 발달하고 공정해져서 개인의 능력에 맞게 임금을 받을 수 있다고 해볼게요.
    그리고 최저임금제는 없다고 가정합니다.

    대신에 고용은 반드시 이루어져야 합니다.

    즉 임금$(w)$은 노동의 한계생산물 가치$(VMPL)$에 해당하는 만큼 받습니다.

    그런데 누군가 아주 심각한 트롤러가 있네요.
    이 사람을 고용하면 오히려 생산이 줄어 드는 경우를 생각해보는 거에요.
    사고를 많이 친다거나, 작업에 방해가 된다거나, 팀워크를 해친다거나 하는 경우처럼요.
    이런 상황이라면, 고용주는 임금을 지불하는 게 아니라 오히려 돈을 돌려받아야 도리에 맞을 겁니다.
    임금(wage)이 음수인 셈이죠.
    당연히 그런 일이 일어날 수 없습니다.

    잘해야 임금을 안 주는 정도겠지요.
    상식적으로 임금이 음수가 될 수는 없으니까요.
    이처럼 어떤 변수들은 모종의 이유로 양의 실수(Real number) 내에서만 정의되는 경우가 있습니다.

    원칙적으로, 회귀식 안에 이런 종류의 변수가 포함되어 있다면 곧바로 추정을 하면 안됩니다.
    이런 변수는 '양의 실수에서만 정의된다'는 제약식을 두고 추정량을 새로 구해야 합니다.
    당연히 새롭게 구한 추정량이 좋은 성질(예를 들어 일치추정량Consistent estimator 인지)을 지니고 있는지도 증명을 해야 하구요.

    이런 문제를 교묘히 피하고자 할 때 로그가 활약할 수 있어요.
    로그함수를 한 번 그려보겠습니다.
     

    로그함수(출처 : 위키백과)

    정의역은 양수(Positive real number), 공역은 모든 실수(Real Number)입니다.  
    즉 로그변환을 한 값은, 제약조건을 둘 필요가 없는 실수(Real number)가 됩니다.
    선형식에 별다른 다른 제약이 없다면 로그로 변환한 변수로 대체해서 OLS를 써도 무방합니다.



     

    4. 마치며

    앞서 밝힌대로 로그변환이 권장되는 상황들이 있습니다.
    대표적인 사례들도 있긴 하지만, 대부분은 상황따라 맥락따라 다른 것 같아요.
    아마도 연구 분야에 따라, 학계에 따라 생기는 차이인 듯 합니다.

    어떤 상황에서 로그변환이 권장되느냐.
    이건 자기 분야의 논문을 많이 보시면서 익히는 수 밖에 없다는 생각이 듭니다.
    그럴 때는 이렇게 생각하시면 마음이 편합니다.

    "남들이 그렇게 한 데에는 다 이유가 있다."

    그러니까 로그변환을 한 사람이 많으면, 마찬가지로 따라하시면 됩니다(!).
    그리고 누군가 로그 변환을 한 이유를 묻는다면,
    위의 3가지 경우 중 하나를 적당히 대시기 바랍니다.


     

    반응형

    댓글

Designed by Tistory.