본문 바로가기

pymc33

[통계] 베이지안 회귀분석 - 계층적선형모델(HLM) with PyMC3 계층적 선형 모델(Hierarchical linear mode)은 관측한 표본 데이터에 계층 구조가 있을 경우 적용해볼 수 있는 모델이다. 예를 들면, 전국에서 학생들의 특징(x)과 성적(y)에 관해 데이터를 모았다고 해보자. 이 때 나타나는 x와 y의 관계만으로는 올바른 설명이 이루어 질 수 없다. 전국에서 추출한 학생들의 특징은 '학생-반-학교-지역'으로 이루어 지는 계층 구조에 속해 있다. 이렇게 보면 전체 데이터에 나타난 집단 수준(반, 학교, 지역)의 차이에 의해 x와 y의 관계를 올바로 예측할 수 없다. 그래서 등장한 것이 계층적선형모델이다. 특히 오늘 소개할 베이지안 회귀분석을 이용한 계층적선형모델에서 유명한 예는 Gelman과 Hill에 의한 집으로 침투하는 라돈(Radon) 함유량 연구다.. 2020. 8. 30.
[통계] 베이지안 회귀분석 - 선형모델 with PyMC3 python 패키지인 PyMC3을 이용, 지난 글에서 소개한 베이지안 회귀분석을 해보는 예제를 정리해본다. PyMC3은 베이지안 회귀를 이용한 다양한 모델링을 가능케 해주는 package다. 사용법도 쉽고, 무엇보다 홈페이지에 다양한 예제가 자세히 소개 되어 있다. Install 시, 주의사항은 python3.6 보다 높은 버전에서는 에러가 난다는 점. python3.6 버전에서 설치하는 것이 안정적이다. (홈페이지에서도 그렇게 언급하고 있다.) PyMC3는 theano를 기반으로, PyMC4는 tensorflow를 기반으로 동작한다고 한다. 예제 데이터 생성 $y = 2x + 1 + \epsilon$ 위와 같은 모델을 통해 예제 데이터를 생성한다. 이 때, 기울기 $\theta_{1}$는 2, 절편 $.. 2020. 8. 28.
[통계] 베이지안 회귀분석 회귀는 데이터로부터 모델을 추정하는 한 방법이다. 최소자승법이 잔차를 최소화 시키는 방법이라면, 베이지안 회귀는 가능도 최대화가 목적이다. 이 글의 최종 목표는 베이지안 회귀의 원리를 이해하고, python package인 pymc3을 활용까지 다뤄보는 것이다. 이번 포스팅에서는 우선 원리를 이해하는 것을 목표로 한다. 모델 가장 기본적인 선형 모델은 다음과 같이 쓸 수 있다. $y = \theta_{1}x + \theta_{2}$ + $\epsilon$ 이 때 $\theta_{1}$, $\theta_{2}$는 모델의 파라미터, $x$, $y$는 관측 값, $\epsilon$은 오차를 나타낸다. $x$, $y$라는 관측값으로 부터 $\theta_{1}$, $\theta_{2}$를 추정해 나가는 것이 목표.. 2020. 8. 28.