시계열 모형의 작성

방통대 “금융 데이터의 이해”를 듣다가 간략하게 메모, 100% 이해하고 있지는 못해서, 부족한 부분은 계속 추가할 예정

시계열의 안정화

  • 평균과 분산이 일정한지 파악하고 그렇지 않을 경우 차분 또는 로그를 통해 안정화시킨다.

모형의 식별

  • 상관계수(ACF)와 부분상관계수(PACF)를 보고 모형이 잘 설명되는지 판단한다.
    • 상관도표에서 시차별로 기준선보다 높은 상관계수가 나오는 영역이 많다면 해당 구간의 경우 일정한 관계가 있음을 확인
  • 대표적인 모형은 AR, MA, ARMA 등이 있다.
    • AR: 백색 잡음의 현재값과 자기 자신의 과거값의 선형 가중합으로 이루어진 정상 확률 모형
      • Yt=−ϕ1Yt−1−ϕ2Yt−2−⋯−ϕpYt−p+ϵt
    • MA: 오늘의 수치는 어제의 오차에 영향을 받아 만들어진다.
      • Yt=μ+et−θet−1
    • AR과 MA를 혼합한 모형
  • 주기의 경우 스펙트럼 분석을 통해서 확인

모수의 추정

  • Φ1, …Φn, Θ1…Θn, μ와 δ^2를 추정

모형의 진단

  • 잔차분석을 통해서 Rando한 분포를 보여주는지 통계적인 검정을 통해서 확인한다.
  • 적절치 않을 경우 모형의 식별단계부터 다시 시작

모형을 이용한 예측

  • 예측!

더 읽어보면 좋을 링크

탐색적 데이터 분석(EDA)

R을 활용한 데이터 과학(해들리위컴, 개럴 그롤문드 저)를 보면서 정리하였으며 지속 업데이트 예정.
EDA는 말그대로 탐색이기 때문에 자칫하면 무한정 헤매는 상황을 겪기 쉽기 때문에 풀고자 하는 질문이 무엇인지등에 대한 명확한 정의가 선행되어야 한다.

탐색적 데이터 분석은 다음과 같은 반복적 작업으로 구성되어 있음

  • 데이터에 대한 질문을 만든다.
  • 데이터를 시각화, 변형 및 모델링하여 질문에 대한 잡을 찾는다
  • 질문을 개선하거나, 새로운 질문을 만들기 위해 학습한 방법을 찾는다.

크게 다음과 같은 질문을 시도해볼 수 있다.

  • 변수 내에서 어떤 유형의 변동이 발생하는가?
  • 변수 간에 어떤 유형의 공변동이 발생하는가?

변동

  • 범주형 변수의 경우 Bar Chart, 연속형 변수의 경우 Histogram
    • Histogram의 경우 Bins Size에 따라서 패턴이 달라질 수 있기 때문에 다양한 Bin Size 탐색
    • 여러 Histogram을 겹쳐서 그리고 싶다면 geom_freqpoly() 사용
  • 질문
    • 어떤 값이 가장 일반적인가? 그 이유는 무엇인가?
    • 드물게 나타나는 값은 무엇인가? 그 이유는 무엇인가?
    • 비정상적인 패턴을 볼 수 있는가?
    • 유사한 값들의 군집이 있다면
      • 해당 데이터 내에 어떤 하위집단이 존재하는가? 어떻게 설명하거나 묘사가 가능한가?

공변동

  • 범주형 – 연속형의 경우 box plot을 사용
  • 범주형 – 범주형의 경우 geom_count을 사용
  • 연속형 – 연속형의 경우 scatter plot / geom_bin2d/ geom_hex 등을 사용
    • 연속형 변수의 경우 그룹화 사용
  • 모델링을 통해서 강력한 상관관계를 지닌 변수를 제거하고 탐색

[책]마케터의 여행법, 구슬을 꿰니 보배로구나.

워낙 투심몽키라는 필명이 특이해서 눈에 잘 띄었던 분이 연초에 책을 썼다고 하셨다. 두고두고 읽어봐야지 했다가 드디어 읽게 되었다. 개인적으로 이제 영국에서 귀국한지 1년 6개월 되었지만 여전히 영국이 그리운 상황에서 유럽에서 살고 있는 마케터의 글이라니 얼른 읽어봐야지 하면서 책을 펼치게 되었다.

전반적으로 내용이 짧은 컬럼이 모여있는 형태이다. 마케터이자 투자자라고 본인을 밝히는 필자는 본인이 유럽에서 거주하면서 관찰한 다양한 소스를 바탕으로 얻을 수 있는 인사이트를 소개한다. 여기서 소개라고 말한 이유는 다양한 관점과 사례를 소개하다 보면 내용의 깊이가 다소 아쉬운 부분이 있었기 때문이다. 나중에 알았지만 책에 있는 글은 브런치를 엮은 글이어서 내용이 짧았다고 한다.

그럼에도 이 책을 읽으면서 감탄하고 또 부러웠던 부분은 바로 다양한 정보를 잘 결합해서 인사이트를 도출해내는 부분들이었다. 하나의 짧은 관찰로 시작된 호기심은 다양한 자료와 결합되면서 힘을 실은 하나의 주장으로 발전한다. 예를 들어서 코르크마개를 생산하는 아모림의 브랜딩 전략이 그러하였다. (코르크 마개를 포함해서) 우리는 지금 이순 간도 다양한 물건을 생활속에서 사용하고 지나친다. 하지만 이러한 물품은 모두 각각의 기업에서 치열하게 고민해서 나온 결과이다.

저자는 이러한 고민의 흔적을 놓치지 않고 관찰하면서 이야기를 만들어 낸다. 그리고 적절히 정량적인 내용과 정성적인 내용을 잘 결합한다. 마지막에는 이러한 회사들이 어떻게 성장하는지 주가로 설명한다. 마케팅과 투자가 근본적으로 서로 온전히 분리된 것이 아님을 지속적으로 소구한다. 짧아보여도 짧은 내용의 글은 아니었다.

투자가로서의 자신감, 관찰의 힘, 마지막으로 청자를 고려한 쉷게 읽히는 글을 보면서 저자를 만나보고 싶다는 생각도 들었다. 그만큼 괜찮은 책이었다.

어느 때보다 빠르게 변하는 세상이다. 그리고 정보가 넘쳐 흐르는 세상이다. 신호와 소음을 분리할 수 없다면 결국에는 모든 것이 소음이 되고 남는 것은 없게 될 수 있다. 그러한 관점에서 이 책은 마케팅 데이터를 분석하는 입장에서 관찰의 힘이 얼마나 중요한지 다시 한 번 알려주는 책이었다. 영국으로 다시 돌아가고 싶은 생각은 덤으로 더 얻었음은 물론이다.

1월 배달업종별 통화건수[SK Data hub]

서론

아직까지는 SQL을 통해서 데이터를 핸들링하는 일이 잦다 보니 R, Python 실력이 자꾸 녹스는 듯하다. 특히 시각화 부분은 분석하다보면 분석의 즐거움 속에 자꾸 놓치고 지나가는 듯해서 꾸준히 데이터를 틈틈히 다퉈보기로 하였다.

그런 차원에서 오늘 만지는 데이터는 SK Data Hub에서 제공하는 19년 1월 서울 배달업종별 이용 통화량이다. 데이터 자체는 양이 11만건정도로 많지는 않은 편이나 서울 구, 동에서 발생하는 주문수를 일자 및 시간대 레벨로 제공해주기 때문에 여러 재미있는 인사이트를 줄 수 있을 것으로 기대한다. 여기서는 통화건수 = 주문건수라고 가정하고 데이터를 확인해보았다

일 주문수 – 주말로 갈 수록 주문 증가, 외부이벤트에 영향을 많이 받음

일평균 전화주문수(01/01 – 01/31)

보통 주문수는 월요일에서 일요일로 가면서 주문수가 대폭 상승하는 편이다. 그렇게 생각해보면 높게 상승한 봉우리가 주차 수만큼 나와야 하는데 지금 보는 것과 같이 14일 주차와 21일 주차에 다소 높게 주문수가 높게 온 날이 있다. 아마 아시안컵 일자가 아닐까 싶다. 16일과 22일에 한국은 각각 중국과 바레인을 상대로 경기를 진행한 바 있다.

일평균 주문수 – 매일 약 34,000건 주문 발생

  • Min: 27,907 건
  • 1st Qu.: 30,957건
  • Median: 33,594건
  • Mean: 34,496건
  • 3rd Qu.: 38,518건
  • Max: 42,840건

일평균 주문수는 대략 약 34,000건 정도 나온다. 가게수를 알면 대략 한 업소별 일평균 주문수를 알 수있텐데 그 정보는 제공되지 않는다. 요즘은 배달의민족, 요기요 등의 플랫폼으로 주문이 이루어지기 때문에 전화 주문수는 많지 않은 것을 감안한다면 사람들은 정말 배달을 많이 시켜먹는다는 것을 새삼 느끼게 해준다. 그리고 최소 주문과 최대 주문간의 차이는 약 15,000건으로 평균의 43%에 해당 하는 양이다. 생각보다 주문의 편차가 꽤 있다는 생각이 들었다.

카테고리별 주문수 – 스포츠 경기를 볼 때 주로 우리는 치킨을 먹는다.

역시 치킨이다. 한국은 치킨이다. 그리고 중국음식도 꽤나 선전하고 있다. 배달하면 떠오르는 음식 역시 치킨과 피자이다. 특히 치킨은 1월 22일 한국 vs 카타르 전에 20,000건이 넘는 전화 주문수를 기록하고 있다.

시간대별 주문수 – 점심,저녁, 야식 이 세 꼭지를 중심으로 배달시킨다.

크게 보면 00시, 12시, 18시, 3개의 봉우리가 있다. 각각 야식, 점심, 저녁에 해당한다. 피크시간은 18~19시로 이후에는 주문수가 빠르게 하락하는 것을 볼 수 있다.

지역별 주문수 – 예상외로 강서구의 높은 주문수, 관악구, 광진구의 저조한 주문수

가장 의외의 결과가 나왔다. 양천구, 관악구, 광진구, 도봉구, 금천구는 타 지역 대비 전화 주문수가 매우 낮았다. 앞서 언급한 것처럼 배달플랫폼을 통한 주문이 주로 이뤄져서 그럴 수도 있겠다는 생각이 들었다. 특이점으로는 중구에서 나타난 Outlier였다. 1월 1일에 최소 주문수를, 1월 11일에 최대 주문수를 기록하였다. 회사가 밀집되어 있는 지역으로 연초와 불금에 각각 최소, 최대 주문수를 기록하였다.

결론

치킨집의 규모가 다른 음식보다는 월등함은 이미 정성적으로도 알고 있었지만 저렇게까지 차이가 날 것이라고 생각하지는 못했다. 그리고 각 구 별로 생각보다 많은 차이가 나는 것이 놀라웠다. 특히 강서구가 그러했다. 조금 더 파볼까 했지만 월요일이 코앞인 관계로 다음 번에 보는 것으로 하자.

[책]이코노크러시, 경제를 전문가에게만 맡겨놓는 것의 위험성

아주 친한 사이, 심지어 가족이라고 해도 이야기하지 말아야할 주제가 있다. 바로 정치이다. 매 명절마다 정치에 대한 이야기를 잘 못 꺼냈다가는 이분법적으로 나눠진 틀 사이에서 치열하게 싸운다. 그리고 그 때마다 각 팀(?)의 의견을 뒷받침하는 다양한 경제 현황과 수치가 오고간다.

하지만 그게 끝이었다. 수치는 오고가지만 그 수치에 대해 어떻게 계산되었는지, 그 배경에 대해서는 아무도 이야기 하지 않았다. 아니 못하였다고 하는게 맞는 것 같았다. ‘정치관’이라는 주요한 관점을 논의하는데 사용된 주요근거인 경제학 수치에 대해 사실 깊게 생각해보지도, 그리고 해볼 수도 없기 때문이다.

경제학은 그만큼 사회에서 개인은 접근할 수 없는 학문이지만 이 사회를 운영하는데는 주요한 학문으로 움직이고 있었다. 이 책은 이러한 현실에 대해 문제를 제기한 책이다. 이 책의 제목인 ‘이코노크라시’ 는 ‘이코노믹스(경제학)’와 권력 통치를 뜻하는 ‘크러시’를 합친 조어로, ‘경제학이 통치하는 사회’란 뜻이다.

이 책을 읽는 내내 개인적으로 ‘대량살상수학무기‘의 내용이 계속 기억났다. 대량살상수학무기는 수학과 데이터의 효율성 및 자동화라는 미명아래 간과되어지는 부분들이 어떻게 개개인의 삶, 특히 일반인에게 어떻게 영향을 미치는지 고발하는 책이다.

이 책에서 다뤄지고 있는 경제학의 한 갈래인 ‘신고전 학파’ 역시 비슷한 특성을 가지고 있는 것 같았다. 개인적으로 경제학 전공이 아니다보니 신고전학파의 특성에 대해서 잠시 인터넷 검색을 해보다 보니 다음과 같은 정의를 찾을 수 있었다.

신고전파 경제학(新古典經濟學)는 애덤 스미스의 ‘보이지 않는 손’으로 상징되는 고전파 경제학을 계승한 학파로, 정부의 적극 개입을 주장한 케인스 경제학에 대응해 형성된 학파다. ‘합리적 인간’이 논리의 바탕이다. 시장을 자율에 맡기면 가격의 기능에 의해 생산과 소비가 적절히 조화되고 경제도 안정적으로 성장한다는 것이다. 시장에 인위적으로 개입하지 않는 ‘작은 정부’를 옹호한다.

Wikipedia

저자의 설명에 따르면 신고전학파는 ‘합리적인간’이라는 가정을 바탕으로 세워졌고 주류로서 성장해왔지만 거시경제, 환경, 불평등 등 다양한 측면에서 맹점이 드러나고 있다. 하지만 이러한 맹점을 다양한 학파의 의견을 통해 보완하기 보다는 하나의 교리인 것 마냥 학생들을 양산하고 있다. 그리고 이 학생들은 이러한 현상을 더 강화하고 고착화하는데 사용되어지고 있다고 저자들은 주장한다.

이런 상황을 타파하기 위해 저자는 다원주의의 수용, 시민/경제학자들의 양성을 통해서 일방적인 이론의 주입과 정보의 불균형성을 타파해야할 필요성을 역설한다. 이 역시 ‘대량살상수학무기’의 저자인 캐시오닐이 제안한 방향과 많이 유사하다는 생각이 들었다.

이 책을 읽으면서 ‘학문의 유리화’가 인터넷을 통한 정보의 불평등성 약화를 만나면서 발생하고 있는 흐름이 우리 사회의 주류학문 중 하나인 경제학에서는 어떻게 발생하고 있는지를 알 수 있었다. 과거에 비해 우리는 이제 다양한 정보를 너무나도 쉽게 접할 수 있다. 그럼에도 불구하고 여전히 몇몇 학문들은 우리 사회에 주요한 영향을 미침에도 불구하고 이해할 수 없는 용어와 논리를 바탕으로 따로 놀고 있다.

개인적으로 같은 학교 출신이 썼다는 생각이 들어서 이 책을 처음 읽어보게 되었지만 한 발 더 나아가 앞서 언급한 학문의 유리화와 이에 대한 항거가 주 관심사인 컴퓨터공학과 경영학이 아닌, 다른 학문에서는 어떻게 진행되고 있는지 알게 되어 쉽지는 않지만 꽤 흥미있는 책이었음에는 틀림없었다.

[책]인간을 탐구하는 수업(의 Overview)

한 줄평

스탠포드 경영대학원의 몇몇 중요(하다고 저자가 생각한)한 수업에 대한 개괄적인 소개서

서평

저자 사토 지에는 경영컨설턴트로서 “세계 최정상에 오른 사람들은 무엇이 어떻게 다른가?”에 관심을 갖고 수년간 연구해왔다고 한다. 그리고 이러한 연구의 일환으로 유수의 인재를 배출해낸 스탠포드 경영대학원은 어떤 수업을 제공하는지 분석해보기 시작하였다. 이 책은 그 연구에서 나온 자료들을 정리한 책이다.

저자는 스탠포드 경영대학원이 제공하는 수업을 크게 “인간을 배우는 수업”, “인간의 힘을 단련하는 수업”으로 구분해서 각 범주에 포함되는 수업과 내용에 대해 대략적으로 설명한다. 참고로 각 범주에 포함되는 내용은 다음과 같다.

인간을 배우는 수업

  • 스토리의 위력
  • 마케팅 전략
  • 거대한 혁신
  • 사내정치의 역학
  • 리더십

인간의 힘을 단련하는 수업

  • 대화술
  • 협상술
  • 전략적 커뮤니케이션
  • 마음챙김

언틋 보기에도 그렇지만 상당히 광범위한 내용을 다루고 있다. 저자는 9개나 되는 수업의 내용을 각 수업의 교수와의 인터뷰를 바탕으로 사례(실제 스탠포드 대학원에서 가르치지 않는 사례도 있다.)를 곁들여서 설명하고 있다.

그럼에도 불구하고 400페이지 남짓의 분량에서 9개 수업을 설명하려다 보니 내용 측면에서 다소 깊이가 아쉬운 부분이 많았다. 또한 개인적으로 느끼기에는 “인간을 배우는 수업”은 상대적으로 “인간의 힘을 단련하는 수업”에 비해서 타 경영대학원 대비 수업의 차별점이 크게 보이지 않아 아쉬운 부분이 많았다.

이 책에서 가장 마음에 들었던 부분은 마음챙김에 대한 부분이었다. 정확하게는 “마음챙김과 연민의 리더십”이라는 수업이었다. 경력이 쌓임에 따라 마인드 컨트롤(Mind Control)에 대한 고민이 깊어가는 요즈음이다. 그래서 개인적으로도 현재 Aware 라는 앱을 통해 비정기적으로 명상을 하면서 감정컨트롤을 하는 편이다.

스탠퍼드 경영대학원은 이론적인 부분(마음챙김)과 연민(실행)의 두 관점을 모두 포괄할 수 있는 수업을 제공함으로써 사회생활을 하면서 개인의 마음을 계속 지켜나갈 수 있도록 직접적인 도움을 주고 있다. 이렇게 학교에서 수업을 제공하는 경우는 처음 본지라 책에서 가장 인상깊게 읽었던 부분이었다.

각설하고, 저자는 스탠퍼드가 최고 수준의 경쟁력을 유지하고 있는 수업이 어떤 것들이 있는지 전달을 하려고 하였으나 다소 그 깊이가 임팩트(impact)를 주기에는 아쉬었다. 따라서 이 책을 통해서 무엇을 얻을 것인지 고민하지 않고 이 책을 읽게 되다면 아마 아쉬움을 느끼게 될 것이라 생각이 들며 읽기를 마무리하였다.

 

[책] 대량살상 수학무기, 고발은 했는데 대안은?

한 줄평

데이터가 악용될 수 있는 여지를 낱낱이 드러내는 부분은 매우 공감하나 대안은 다소 부실한, 그래서 아쉬운 책

서평

데이터와 관련된 일을 업으로 하고 있기 때문에 제목만으로도 흥미가 동하는 그런 책이었다. 가뜩이나 정부가 주도하는 4차산업혁명이라는 단어 덕분에 세상이 모두 데이터의 장점만을 부르짖는 요즈음이다. 그런 분위기 속에서 데이가 가져올 사회적인 변화와 음지에 대해서 설명을 하는 책이 있다니 자연스럽게 읽어보게 되었다.

저자는 대량 살상 수학 무기의 세가지 특성, 즉 1. 불투명성, 2. 확장성, 3. 피해을 중심으로 교육, 광고, 노동, 치안 등에 관련된 사례를 집중적으로 파고들어감으로써 데이터 기반의 자동화된 사회가 가져올 수 있는 위험성을 논한다.

다른 사람도 아닌 수학과 박사까지 한 데이터 사이언티스트가 쓴 것이었기 때문에 저자는 인간이 배제된 데이터 기반의 자동화된 모델들이 가져올 수 있는 문제를 정확하게 짚는다. 데이터 기반의 모델이라는 것이 기본적으로 과거의 데이터를 기반으로 현실을 설명하는 것이 구조적으로 갖는 태생적 한계라는 부분부터 시작해서 효율성을 극단적으로 추구하는 부분, 마지막으로 부정적인 피드백 루프를 통해서 상황을 고착화시킨다는 부분들은 업계에 있는 입장에서 부인할 수 없었다.

하지만 이런 내용을 기반으로 대안으로 나온 부분들은 사실 매우 아쉬었다. 너무나도 큰 거시적 주제이기 때문에 대안을 내기가 어려운 것은 매우 어려우나 대안으로 제시했던 투명성 강화를 위한 감사같은 부분은 사실 이해가 쉽게 되지 않았다. 특히 요즘처럼 알고리즘과 같은 Asset이 하나의 자산으로 관리되는 상황에서는 더더욱 그러하였다.

그럼에도 불구하고, 고민할 수 있는 요소를 언급함으로써 논의할 수 있는 계기를 만든 부분들에 대해서는 유의미하다고 생각한다. 그리고 최근 저자의 블로그를 들어가보니 새로 출간할 책(2021년 출간 예정)을 언급하던데 이러한 고민들을 조금이나마 해소해줄 수 있는 내용이 포함되었으면 하는 바람이다.

[책]린 분석, 어떤 지표를 봐야 하는가?

한 줄평

서비스 지표를 처음 분석해야 하는 입장에서 무엇을 분석해야할지 잘 모르겠다면 이 책을 추천합니다.

서평

작년 하반기 서비스 지표를 관리하고 분석하는 업무를 맡게 되었다. 그리고 그 지표를 고도화하기 위해 노력하던 중에 어떤 지표를 추가적으로 봐야할지 고민하던 중에 이 책을 접하게 되었다.

정성적? & 정량적?

저자는 정성적인 관찰결과는 현상에 대한 이유(Why)를 파악하는데 도움이 되고, 이에 대해 영향도(How many)를 파악하는데는 정량적인 데이터가 필요하다고 언급하면서 두 형태 모두 현상을 파악하는데 필요하다고 말한다. 그래서인지 데이터 분석의 결과가 “생각한 것 그대로 나왔다”고 말하는 경우가 꽤 빈번한데 이는 너무나도 당연하다고 생각한다.

결구 중요한 것은 그렇게 파악된 정량적인 흐름을 지표로 구축해서 관리하는 것이다. 아비나시 카우쉭 (Avinash Kaushik, 구글 디지털 마케팅 에반젤리스트)는 정성적/정량적 관찰 결과를 지표로 활용할 수 있도록 가이드를 제시하고 있다. 적절히 저 네 단계를 구분하면서 데이터의 활용을 극대화하지 않으면 보고 및 관리 차원에서 잡음이 발생할 수 있다.

안다는 것을 안다사실(Fact) * 틀릴 수 있기 때문에 데이터와 대조하면서 확인
모른다는 것을 안다보고(Reporting) * 기준을 정하고 자동화 (지표를 모르기 때문에 보고를 통해 지표를 구한다)
안다는 것을 모른다직관(Intuition) * 정량화 해야하고 유효성과 효율성을 향상시킬 방법을 알아야 함
모른다는 것을 모른다탐색(Exploratory) * 경쟁우위에 올라설 수 있고 흥미로운 깨달음을 얻을 수 있다

지표간의 상관관계

Dave McClure(데이브 맥클루어)가 제시한 스타트업 메트릭스도 그렇지만 모든 지표는 상관관계를 가지고 있다. 그리고 지표간의 상관관계를 명확하게 파악하기 위해서는 고객이 서비스를 어떻게 이용하고 있는지 Flow를 고민해야 한다. 이 때 Flow는 단순 서비스의 1회성 사용 패턴을 넘어서 Lock-in이 되는 상황, 그리고 이탈이 되는 과정도 Flow에 포함을 해야 한다. 즉 고객관점의 Life Cycle을 그려야 하는 것이다. Flow를 파악하는 과정에서 고객이 맞닿뜨리는 허들 및 선행/후행지 역시 반드시 중점적으로 파악해야 한다.

물론 지표가 너무 많으면 잡음으로부터 신호를 걸러내기 어렵기 떄문에 초기 기업의 경우 OMTM(The One Metric That Matters)을 세우는 것을 저자는 권장한다. 하지만 사업이 어느정도 궤도에 올라와서 확장의 시기에 있을 경우 확장의 가능성을 엿볼 수 있는 추가 지표를 관리 및 분석할 필요가 있다. 이 부분이야 말로 초기 스타트업 때와 “공감, 흡인력, 바이럴, 매출,확장” 사이클을 타면서 린분석을 활용할 준비가 되있어야 하는 단계이다. 이 시점에 “컨테이져스”란 책을 같이 보면 도움이 될 듯하다. 공감 – 바이럴까지의 구체적인 공식을 알려주는 책으로는 적격이니 말이다.

결론

지표는 어디까지 탁상공론일 수 있다. 그럼에도 지표는 빠른 의사결정을 위해서 기업이 잘 운영되고 있는 지 보기 위한 내부 관리차원에서 필요한 데이터이다. 이러한 지표 관리 및 분석을 스타트업에서 어떻게 운용할 수 있을지에 대해서 다양한 비즈니스 모델과 사례를 통해서 정리했다는 점에서 이 책은 읽을만한 가치가 있다고 본다. 특히 지금 일하고 있는 기업이 허상지표와 같이 큰 숫자에 홀려서 가는 스타트업에게는 더더욱 그러하다.

 

TIL – Interaction Variable, Removing features with low or zero variance, Feature Selection with a Random Forest

Summary

Feature Engineering시 파생변수 생성 방법 중의 하나인 Interaction Variable를 생성하는 방법과 Random Forest의 Feature Importance를 통해 Feature Selection을 하는 방법을 정리한다. 관련 참고 소스코드에 대한 출처는 이전 글에 정리해놓았다

Interaction Variable

보통 선형모델에서는 각 설명변수들이 반응변수에 미치는 영향은 서로 독립적이라고 가정을 한다. 하지만 그렇지 않을 수도 있다. 예를 들어 매체들을 선형변수라고 놓고 매출을 반응변수라고 놓을 때 특정매체(예: 라디오)를 지출을 높이면 높일 수록 다른 매체(예: TV)가 매출에 미치는 영향도가 높아지는 경우가 발생할 수 있다. 마케팅에서는 이런 경우를 시너지효과라고 말하고 통계학에서는 상호작용 효과라고 말한다. 이런 경우를 선형모델에 반영하기 위해서 Y= e + B1X1 + B2X2 + B3X1X2 에서 B3X1X2와 같이 상호작용 변수를 만드는 경우가 있다. 이런 상호작용 변수(Interaction Variable)를 만드는 방법은 아래 코드와 같다. PolynomialFeature Library를 통해 만든다.

Removing Features with Low or Zero Variances

분산도가 0에 가까운 변수들의 경우 모델링시 참고할 필요가 없어서 제거를 하는게 좋은데 그 때 VarianceThreshold 라이브러리를 쓰면 된다.

Selecting features with a Random Forest and SelectFromModel

RandomForest 모델을 통해서 Feature를 톨해 선택할 수 있다. 우선 Random Forest Classifier로 Fitting을 한다음에 Selection From Model로 Feature를 선택할 수 있고 이후 get_support()로 Column List를 추출하면 된다.

TIL – 전처리시 Meta 생성, UnderSampling, Imputer

목적

TIL이란 Today I Learned의 목적으로 매일 배우는 것들에 대해서 접하는 데에서 그치지 않고 기록으로 재생산함으로써 내 것으로 만들고자함.

Meta Information

EDA시, 데이터에 대한 타입, 이후 모델링시 사용 여부 및 타입 등을 Meta로 관리함으로써 이후 분석, 시각화 및 모델링 설계시 편이성을 높일 수 있다.

Meta Data 생성 과정

아래 코드를 보면 컬럼별로 Grouping을 해주고 있다. 예를 들어 Label Column인 Target은 Target으로, 분석시 사용될 컬럼에 대해서는 input으로 정의하고 있으며, “Keep” Column을 통해 각 변수들의 사용 여부를 기록하는 Column을 만들어서 분석시 사용할 컬럼에 대해서 어떤 컬럼을 train에서 쓸지 정리해놓고 있다.

사용 예시

ordinal 타입의 변수들만 선별해서 기술통계수치를 확인하고 있다.

Undersampling

Descriptive Stats 확인 과정에서 Label Column인 Target컬럼에 대해서 Target == 0 인 경우가 Target == 1인 경우에 비해 지나치게 많은 것이 확인되어서 동일한 비율로 맞춰주기 위해 Under Sampling을 하였다.

각각 편중된 Class 레코드 수에 Under-sampling Rate를 적용해서 적정 레코드 수를 계산한 다. 이후 해당 수만큼 랜덤으로 인덱스를 선별한 다음 이에 기반해서 최종적으로 각 Class 별 1:1로 데이터가 남도록 Train Dataset을 조정한다.

Imputation

Missing Value 나 Null에 대해서 치환해주는 방식으로 sklearn.preprocessing 라이브러리 내 Imputer 패키지를 사용한다. 아래 예시는 Continuous Variable의 경우 Mean으로 치환하고, Ordinal Variable의 경우 Mode로 치환하고 있다.