선형 회귀분석에는 네가지 기본 가정이 있다.
1. 선형성
- 선형성이란?
종속변수와 독립변수간에 선형적 특성을 띄는지에 대한 가정이다.
- 선형성을 확인하는 방법은?
1) 종속변수와 독립변수간 Scatter Plot을 그려서 확인한다.
2) statsmodels 라이브러리의 linear_harvey_collier, linear_rainbow 함수를 이용.
- 선형성을 만족하지 않을 때는?
1) 새로운 변수를 추가
2) 로그,지수,루트 등 변수 변환 (변환된 변수의 의미를 파악하기 어려움, 비추)
3) 선형성을 만족하지 않는 변수제거
4) 선형 회귀모델을 만들고 변수 선택법을 사용한다.
2. 독립성
- 독립성이란?
다중 회귀분석에서 가정한다. 독립변수간 상관관계가 없어야 한다는 가정
- 독립성을 확인하는 방법은?
1) 변수간 상관계수를 구한다. scipy.stats의 pearson 또는 spearman 상관계수 이용
2) 변수의 다중공선성을 확인한다. statsmodels 라이브러리의 variance_inflation_factor 사용
- 독립성을 만족하지 않을 때는?
1) 상관계수가 높은 변수 둘 중 하나 제거
2) 다중공선성이 높은 변수 제거
3) 다중공선성, 상관계수가 높은 변수를 모아서 새로운 변수 생성
4) PCA를 이용한 변수 변환 (변환된 변수의 의미를 파악하기 어려움, 비추)
3. 등분산성
- 등분산성이란?
"회귀모델의 잔차"가 특정한 패턴없이 고른 분산을 보이는지에 대한 가정
- 등분산성을 확인하는 방법은?
1) scipy stats의 levene과 bartlett 함수를 이용해서 확인할 수 있다.
2) bartlett은 표본이 정규분포를 띌때만, levene은 정규분포를 만족하지 않아도 사용가능
- 등분산성을 만족하지 않을 때는?
1) 더 좋은 모델을 만들기 위해서 노력한다....?
2) WLS, GLS regression -> 더 자세히 공부해 봐야겠다.
4. 정규성
- 정규성이란?
"회귀모델의 잔차"가 정규분포를 띄는지에 대한 가정
- 정규성을 확인하는 방법은?
1) scipy.stats의 probplot을 이용해서 QQ plot을 그려본다.
2) kolmogorov-smirnov 또는 shapiro-wilk 테스트를 해본다.
3) kolmogorov-smirnov는 표본수가 많을때 (50개이상) 사용 scipy.stats.kstest
4) shapiro-wilk는 표본수가 적을때 (50개 미만) 사용 scipy.stats.shapiro
- 정규성을 만족하지 않을 때는?
1) 최대 우도 추정량, 로버스트 추정량, 분위 회귀수 추정량을 도입한다.
발전방향
1) linear_harvey_collier, linear_rainbow의 계산방식과 차이점에 대해 연구한다.
2) 다양한 자료형에 대해 상관계수 구하는 방법을 정리한다
3) WLS, GLS regression 에 대해 연구한다.
3) 최대 우도 추정량, 로버스트 추정량, 분위 회귀수 추정량에 대해 연구하고 도입한다.
0 comments:
댓글 쓰기