티스토리 뷰
해당 포스트는 Standford Online Course의 Statistical Learning 강좌를 정리하고 공유하기 위한 포스트로, 대부분의 자료는 강의자료에서 참조하였으나 본인의 의견도 들어가 있을수 있습니다.
선형 회귀 분석 (Linear Regression)은 회귀 분석에 사용되는 가장 간단한 모델로 간단하지만 매우 유용하다.
선형 회귀 분석을 통해 independent variable과 dependent variable간에 어떤 관계가 있는지, 그 관계는 얼마나 strong 한 지, 해당 모델을 이용할 경우 값을 얼마나 정확히 예측 가능한 지 등을 알 수 있다.
1. 단순 선형 회귀 분석(Simple Linear Regression)
single predictor X 를 가지는 simple linear regression model은 다음의 형태를 따른다.
여기서 은 intercept, predictor에 해당하는 은 slope parameter라고 한다.
이 파라미터들은 어떤 방법으로 구할 수 있을까? 직관적으로 데이터를 가장 잘 설명하는 모델은 모델의 예측값과 실제 값의 차이가 작은 모델일 것이다. 그래서 여기에서는 RSS (Residual Sum of Squares) 라는 것을 최소화 하는 파라미터를 구하게 된다.
2. Predictor에 대한 가설 검정 및 모델의 정확도
우리가 어떤 predictor가 response variable과 관계가 있는지 없는지를 어떻게 이야기 할 수 있을까?
이것은 Hypothesis testing (가설 검정)을 통해 알 수 있다. 이 때의 null hypothesis와 alternative hypothesis는 다음과 같다.
: X와 Y간에 관계가 없다. ()
: X와 Y간에 뭔가 관계가 있다. ()
세부적인 가설 검정은 베타 값을 이용한 t-statistic을 통해 t-test를 수행하며, p-value가 충분히 작았을 때 null hypothesis를 reject하고, 관계가 있다고 말한다. 을 reject할 경우에는 의 confidence interval이 0을 포함하지 않는 특징이 있다.
이 Linear Regression Model의 fit accuracy 는 값을 통해 이야기 한다. 즉, 전체 데이터를 모델이 얼마나 잘 설명하는지를 나타내주는데, 높을수록 모델의 설명력이 높다고 이야기 할 수 있다.
이 값에는 또 재미있는 특징이 있는데, simple linear regression 의 경우에는, predictor와 response variable간의 Pearson's correlation 값을 제곱한 값이 곧 이다.
3. 다중 선형 회귀 분석 (Multiple Linear Regression)
기본적인 simple linear regression 모델을 확장하는 가장 쉬운 방법은 여러 개의 predictor를 사용하는 것이다. 즉, 이 모델은 다음과 같은 형태를 띄며 simple linear regression과 유사한 방법으로 파라미터의 값을 구한다.
이 때, 의 의미는. 다른 변수들의 영향을 통제하였을 때, 해당 predictor가 가지는 average effect이다.
따라서 이 모델이 문제없이 잘 동작하는 이상적인 시나리오는 모든 predictor들이 uncorrelated되는 경우이다. 만약 변수 간 correlation이 크다면, 해석이 매우 어려워진다. 왜냐하면 한 predictor가 변할 때 다른 predictor도 동시에 변하기 때문에, 타 변수의 영향을 통제한 영향력을 얻어낼 수가 없다. 이 문제를 다루기 위한 방법은 조금 뒤에 나온다.. (interaction term 추가)
linear regression 모델을 사용할 때 주의할 점은, observational data를 이용할 경우는 독립변수/종속변수 간의 상관 관계를 설명해줄 뿐이지 인과 관계(causaution)를 말하지는 않는다는 것이다. Correlation is not a causation. 은 데이터 분석/통계에서의 죽지않는 떡밥 중의 하나로 그만큼 조심해야 한다. 정말 변수간의 인과관계를 원한다면 잘 통제된 환경에서의 experimental study 등을 수행해야 한다.
4. 다중 선형 회귀 분석에서의 몇가지 이슈들
Q. 어떻게 predictor 들 중 적어도 하나가 유용하다는 것을 알 수 있을까?
물론 개개 변수들의 hypothesis testing에 해당하는 p-value를 보고 아는 방법도 있겠지만, 전체 모델을 통해 그것을 알수 있는 방법도 있다. F-statistic을 이용하는 방법인데, F-value가 충분히 크다면 적어도 하나의 predictor가 의미있다고 이야기 할 수 있다.
Q. 모든 predictor가 아닌 중요 변수만을 이용하는 방법
다중 회귀 분석에서 predictor를 많이 사용하는 것이 항상 효율적일까? 사실, 변수의 개수가 늘어날 수록 통계값의 해석은 더 어려워진다. linear regression의 정의상, 각각의 slope parameter는 각각의 predictor를 제외한 나머지 predictor들을 다 통제했을 때의 값을 나타낸다. 따라서 변수가 많아질 수록 그 상관관계를 통제하기가 점점 힘들어지고, hypothesis testing에 해당하는 p-value 또한 변수의 개수가 많을 때 점점 민감해진다. 따라서 적절한 개수의 변수를 이용하는 것이 중요하다. 그럼 어떤 방식으로 중요한 변수들을 찾을 수 있을까? 가장 직관적인 방법은 가능한 모든 모델을 다 보고 괜찮은 것을 선택하는 것이겠지만 가능한 모델의 개수는,개이다. 따라서 모든 모델을 비교할 수는 없고 뭔가 더 똑똑한 방법을 써야 하는데, 그 때 사용하는 방법이 Stepwise Selection이다.
변수를 선택하는 방향에 따라서 Forward, Backward, Both 세 가지로 나뉜다. Forward Selection은 아무 feature도 없는 모델에서 출발하여 가장 RSS를 줄이는 변수를 추가하고, 해당 변수만을 포함하는 모델에서 다른 변수들을 다 보고 RSS를 가장 줄이는 모델을 만들고, 하는 방향으로 모델을 증가시킨다. 종료 조건이 될 때까지 알고리즘은 동작하며, feature를 선택할 때는 RSS 뿐 아니라 AIC, BIC, Adjusted R^2 등 다양한 measurement를 이용할 수 있다. Backward Selection은 모든 feature를 가지는 모델에서 변수를 줄여가는 방향으로 진행하는 방법이며, 제거할 변수를 선택하는 방법은 Forward stepwise selection과 유사한 방법으로 선택한다.
5. 선형 모델의 확장 (Extension of the linear models)
두 가지 방향으로의 확장이 가능하다. 첫째는 변수간의 interaction을 고려하는 것이고, 둘째는 nonlinearity를 생각하는 것이다.
linear regression에서 중요한 가정 중의 하나는, predictor끼리 독립이라는 것이다. 즉 어떤 predictor의 변화는 다른 predictor의 변화에 영향을 미치지 않음을 가정하며, 그 때 해석이 의미가 있다. 하지만 실제 분석에서는 완전 독립인 경우는 거의 없다. 한 예측 변수가 변화함에 따라 다른 변수도 따라 변화하며, 따라서 한 예측변수가 미치는 영향의 크기 (slope term)가 다른 예측 변수의 값에 따라 다르게 되는 것이다. 이를 마케팅에서는 주로 synergy effect라고 하고, 통계에서는 interaction effect라고 한다.
이것을 수학적으로는 어떻게 풀어낼 수 있을까?
regression model에 영향이 있을 것으로 생각되는 변수간의 product term을 추가하는 방법으로 모델링할 수 있다. 예를 들어 predictor 과 를 이용한 multiple linear regression model이라면, 다음과 같은 형태로 모델링할 수 있다.
즉, 은 두 변수간의 상호작용을 나타내는 값이 된다. 만약 이 interaction term이 통계적으로 유의미 하다면, 모델의 도 증가할 수 있다. interaction term을 넣을 때 주의해야할 것은 Hierarchy principle 이다. 우리가 만약 interaction term을 이용하여 모델링 한다면, 반드시 모델에 predictor도 포함되어야 한다.
두 번째 방법은 nonlinearlity를 고려하는 것이다.
predictor variable과 response variable의 관계는 선형이 아닐 수도 있기 때문에 predictor의 제곱 같은 고차원 term을 넣어 모델링할 수도 있다. 모델의 형태는 다음과 같이 될 것이다.
고차원 모델링을 할 때는 앞 포스팅에서 나왔듯이, flexibility가 높아지면서 bias는 줄어들지만 variance가 높아진다. 하지만 training data만을 잘 설명하고 새로운 데이터에서 잘 동작하지 않는 overfitting 의 위험이 있으니 유의해야 한다.
'Data Science' 카테고리의 다른 글
R, Python 공부하기 좋은 사이트 - DataCamp (0) | 2017.01.12 |
---|---|
쉽게 이해해보는 bias-variance tradeoff (2) | 2015.10.26 |
[Data Science/통계학습] 모델을 선택하는 방법 (0) | 2015.02.09 |
[Data Science/통계학습] 통계 학습이란 (0) | 2015.02.09 |
[Data Science/통계학습] 온라인 강의 수강 및 포스팅 시작! (0) | 2015.02.09 |
- Total
- Today
- Yesterday
- 운영체제
- Machine Learning
- statistical learning
- 자료구조
- android
- 데이터 과학
- reversing
- 리눅스
- Data Structure
- Discrete Mathematics
- 통계학습
- 알고리즘
- 안드로이드
- java
- 대학원
- linux
- 이산수학
- Reverse Engineering
- operating systems
- 데이터 사이언스
- 자바
- 카타르 음주
- 카타르
- Algorithms
- 기계학습
- 리버싱
- Data Science
- 리버스엔지니어링
- 개발
- 머신러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |