데이터 사이언스 40

[통계학] 시계열 분석에서 stationary란 ?

오늘은 시계열 분석에서 자주 등장하는 개념인 stationarity(정상성)에 대해서 알아보고자 한다.시계열이 정상적이라는것은 무엇을 말하는 걸까?결론부터 얘기하자면, 시간이 지남에 따라 시계열의 규칙(결합확률분포)이 바뀌지 않는것을 말한다. 이게 무슨말인가 하면, 시간이 지남에 따라 평균과 분산이 변하지 않으며, 임의의 한 point를 기점으로 주변에 있는 point들과의 확률 분포관계가 변치 않음을 의미한다. 이를 수식으로 표현하자면 아래와 같다.  Stationary의 대표적 예시로는 AR 모델이 있다.AR(p) 모델은 아래와 같이 표현된다. $$Y_t\ =\ b_0\ +\ b_{1\ }Y_{t-1}+...b_pY_{t-p}\ +\ \epsilon _t$$ 예를 들어 어떤 시계열이 아래와 같은 AR..

통계학 전공자로써 현업에서 일하면서 느끼는점

오늘밤엔 겨울비가 추적추적 쏟아지기도 하고... 뭔가 글을 쓰기에 좋은 감성이 되었다. 오늘은 통계학 전공자로써 현업에서 1년정도 일하면서 느끼는 점을 정리해보고자 한다. 필자는 통계학을 석사까지 전공했다. 원래는 수학과 아니면 기계공학과로 갈 생각이었는데 (고등학생때 수학이나 물리를 워낙 좋아했어서) 대학교 1학년때 통계학 과목을 들으면서 흥미를 느껴서 2학년때부터는 통계학으로 전향하였다. 한정된 데이터로부터 확률적인 전체 시스템에 대해 추론하는 과정이 그당시엔 너무나 멋있어보였기 때문이다. 심지어는 사람들의 행동하나하나에 수치가 위에 표기되는 그런 상상을 하기까지도 했다. 어쨌든 그런 종류의 학문이 아닐까하는 추측성 확신만 가지고 통계학과로 그대로 진학하였다. 그리고 방황의 시절이 2학년때 잠깐 있었..

데이터로부터 온전한 인과관계를 파악한다는 것

오늘은 통계학과 데이터과학에서 요즘 화두로 떠오르고 있는 인과 분석(causal inference)에 대해 말해보고자 한다. 참고로, 필자는 통계학 전공자이고, 석사때 주요 연구 분야가 환경 역학에서의 인과분석이었다. 그러다보니 졸업하고나서도 이 분야에 관심이 많은 편이다. ​ 데이터로부터 인과관계를 온전히 파악하는건 매우 어려운 일이다. 하지만 우리는 데이터로부터 어떻게든 인과관계를 파악해내려 한다. 그리고 그것을 지식화하여 더 나은 미래를 만들어내려 한다. ​ 인과 관계를 하는데 있어서 가장 큰 장애물은 confounding이다. confounding은 우리말로하면 교란효과인데 말그대로 원래의 인과관계를 파악하는데 있어서 혼동하게 만드는 그런 요인들을 통틀어 지칭한다. ​ 실험이 가능한 경우, con..

회귀문제에서 Random Forest, SVM, XGBoost 튜닝하는법 (in python)

Tuning practice (SVM / RF / XGBoost) - Regression (PRSA data)¶ 오늘은 튜닝이 필요한 머신러닝 모형들 중에 state of the art의 예측력으로 알려진 SVM(Support Vector Machine), RF(Random Forest), XGBoost 모델의 회귀문제 튜닝 예시를 가져와보았다. 먼저 데이터는 UCI Repository에 있는 PASA_data 이며, 중국의 미세먼지 데이터이다. 데이터의 속성은 아래와 같다. Attribute Information: (PASA_data)¶No: row number year: year of data in this row month: month of data in this row day: day of dat..

데이터사이언스에 필요한 수학 (주관적 의견)

데이터사이언스 분야에서 필요한 수학은 ​ 학부수준의 "해석학", "선형대수학", "미분방정식", "위상수학", "실해석학" ​ 으로 좁혀지는 것 같다. (물론 그 외에도 더 알면 좋긴하겠지만) ​ 학부때 수학과 과목을 좀 들어서, 해석학, 선형대수학, 미분방정식정도는 수업을 들은적이 있는데 지금은 사실 거의 기억이 나지 않는다 ㅠ 틈틈이 수학공부를 할려고 하는데 이게 쉽지가 않다. 계속 우선순위에서 밀리는 느낌이랄까? 항상 생각만...

[해석학] 증명과정에서 귀류법이 작동되는 원리

수학에서 크게 세가지 증명 방법이 존재한다. 첫째, Mathematical induction, 즉 수학적 귀납법 둘째, Deductive proof, 즉 연역적 증명법 셋째, Proof by contradiction, 즉 귀류법이다. ​ 오늘 말하고자 하는건 귀류법이다 귀류법이란, p -> q 를 증명하기 위해서 p ∩~q →~p​ 임을 보이는 것이다. (~은 부정이란 의미이다.) 위 관계만 봐서는 좀 난해해 보이지만 아래의 p와 q간의 모든 관계를 표현한 네가지 벤다이어그램에서 위 관계를 만족하는 벤다이어그램 관계는 (4)밖에 없음을 확인할 수 있다. 즉, (4)는 q가 p를 포함하는 관계로, p->q 가 성립한다. ​ ​ 즉, 정리하면 귀류법이란 p -> q 를 보이기 위해 p ∩~q →~p​ 임을 ..

데이터 사이언스란? (주관적 의견)

요즘에 데이터사이언스라는 용어를 많이 쓰는거 같다. 취업할때도 데이터 사이언티스트, 애널리스트, 데이터 분석가 등등의 용어가 많이 쓰이고 있다. 사실 내가 봤을 때는 기존에 통계학과나 이와 유사한 학과들이 하던 데이터 분석 일을 다 통틀어 이렇게 혼용하여 표현하는거 같다. 그리고 데이터사이언스라는 말과 더불어 AI 도 핫한 용어이다. 사실 데이터사이언스, AI 둘다 데이터를 기반으로 하는 분야로 수학,통계,컴퓨터 의 융합 과목이라고 보면 된다. 다만 데이터 사이언스는 도메인 지식도 중요하므로 필요에 따라 경제학, 심리학, 의학 등에 대한 지식을 겸비해야 할 수도 있다. 따라서 어떤 과목을 전공했든지 요즘 핫한 데이터사이언스 분야로 가는데 있어서 각자의 강점이 있다. 만약 수학이나 통계학을 전공했다면 이론..

현업에서 머신러닝 돌릴 때 골치 아픈 것

오늘은 현업에서 머신러닝(특히 딥러닝) 돌릴 때 골치아픈 것들에 대해 간단히 얘기해보고자 한다. ​ 1. 파이썬 버전, 패키지 버전, gpu 호환 문제 ​ 보통 파이썬에 나오는 모델들은 패키지별로 계속 업데이트가 되기 마련이다. 그러다보니 예전에 되던 기능이 새로 업데이트 되면서 안되기도 하고... 새로운 기능을 사용하려면 버전을 업데이트 해야하기도 하다. 그래서 내가 필요한 패키지 버전과 때로는 파이썬 버전까지도 잘 맞춰주어야 한다. 게다가 GPU를 사용하려면 일반적으로 cuda나 cudnn의 버전까지 맞춰주어야 하는데 이게 참 머리아프게 한다. 그래서 도커(docker)가 나오게 된 것 같은데, 우선 우리회사는 지금 안쓰고있다... ​ 2. 속도 문제, 리소스 문제 ​ 제일 큰 문제는 항상 속도이다...

정보의 범람 속의 데이터 사이언스

데이터사이언스, AI분야가 아주 핫해지면서 데이터이론에 대한 정보가 정말 많아졌다. 덕분에 네이버와 구글 등에서 검색만 잘해도 어느정도 유용한 많은 정보를 획득할 수 있게 되었다. 내가 학부시절이었던 불과 4~5년전만 해도 관련 내용들이 검색이 잘 안되었는데... 세월이란 참 알수 없는것 같다. ​ 문제는 정보의 범람 만큼이나 잘못된 정보들도 꽤 많다는 점이다. 특히, 통계학이나 확률 이론들은 말 그대로 확률적인 부분들이 많기 때문에 어렵고 헷갈리는 부분이 매우 많다. 그래서 이를 잘못이해하고 와전되는경우도 많은거 같다. ​ 21세기 현시점에서 가장 중요한건 그런것들을 잘 선별해낼수 있는 능력이 아닐까 싶다 믿을수있는 정보를 선별하고, 좋은 책이나 레퍼런스를 골라읽을수 있는 능력. 답은 과거에 있는 경우..

데이터사이언스에서 예측모델 종류

지금까지의 데이터과학에서는 통계학,머신러닝,딥러닝 각각에 훌륭한 예측모델 후보군들이 있다. ​ 예를들면, 통계학에서는 elasticnet, spline 계열 모형, 커널을 이용한 모형(SVM 및 커널머신 또는 gaussian process), 머신러닝에서는 트리를 이용한 랜덤포레스트, 부스팅, 딥러닝에서는 대규모의 뉴런들을 이용한 DNN(Deep Neural Network) 이 있다. (생각해보니 SVM을 머신러닝으로 쳐야할지도 모르겠다. 경계가 워낙 모호해서...) ​ 뭐 이 외에도 많은 모델들이 있겠지만 내가 생각했을때 대표주자로 생각되는 모델들이다. ​ 그런데 통계학에서의 모델인 SVM은 커널을 이용해서 꽤나 유연한 함수(반응변수와 설명변수의 관계)를 잡아내지만 데이터가 커지면 시간이 오래걸리고(튜..