이 포스팅의 내용은 상당부분 다음의 책을 참고하였습니다.
Hyndman, R.J., & Athanasopoulos, G. (2018) Forecasting: principles and practice, 2nd edition, OTexts: Melbourne, Australia. OTexts.com/fpp2. Accessed on 2021-10-06.
아래의 링크에서 전문을 읽을 수 있습니다.
다변량 정규분포 Multivariate Normal Distribution
편의(bias)란, 추정량의 기댓값과 실제 모수와의 차이를 말합니다.
불편추정량이란, 편의가 없는 추정량을 말합니다.
즉, 기댓값이 모수와 동일한 추정량이라는 뜻입니다.
예를 들어 표본평균의 평균은 모집단의 평균과 같습니다.
다변량 분포의 정규성 검정 방법
1) Graphical method
- Chi-square test
2) Hypothesis test
- Mardia test (카이제곱그림을 통계량으로 이용)
- Royston's 다변량 정규성 검정
- Henze-Zirkler 검정
시계열 분석
- 추세 trend : (비)선형적 증가/감소
- 계절성 seasonality : 해마다 특정한 때에 나타나는 영향
- 자기상관 autocorrelation : 시계열의 시차 값(lagged values) 사이의 선형 관계를 측정
- 백색잡음 white noise : 자기상관이 없는 시계열
자기상관계수는 보통 자기상관함수(ACF)를 나타내기 위해 그립니다. 시차(Lag)가 가로축이고 ACF가 세로축에 놓이는 그래프를 상관도표 (correlogram) 라고 합니다. ACF가 높은 Lag끼리 자기상관이 높다고 해석할 수 있습니다.
데이터에 추세가 존재할 때, 작은 크기의 시차에 대한 자기상관은 큰 양의 값을 갖는 경향이 있습니다. 시간적으로 가까운 관측치들이 관측값의 크기가 비슷하다는 얘기입니다. 즉, 추세가 있는 시계열의 ACF는 대부분 양의 값을 갖고, ACF의 값은 시차가 증가함에따라 서서히 감소합니다. 시차가 증가함에 따라 물결모양 (scalloped)이 나타나는 것은 계절성 때문입니다.
- 지수평활모델: 추세, 계절성
- ARIMA 모델: 자기상관
정상성 Stationarity : 시계열의 특징이 해당 시계열이 관측된 시간에 무관하다는 뜻.
- 백색잡음 white noise 시계열은 stationary
- 추세나 계절성이 있는 시계열은 non-stationary
차분 Differencing : Non-stationary 시계열을 stationary하게 만드는 방법.
연이은 관측 값들의 차이를 계산. 차분 방법 : y_t = y_t - y_t-1
AR모델 (자기회귀. Auto Regressive)
- 과거 값의 선형 조합
- 주로 stationary 데이터에 사용
MA모델 (이동평균. Moving Average)
- 과거 예측 오차를 이용
- stationary AR(p) → MA(∞)
- some MA(q) w/제약조건 → AR(∞)
ARIMA (Auto Regressive Integrated Moving Average)
- Integrated 누적: 차분의 반댓말.
ARIMA(p,d,q) = AR(p) + MA(q)
ARIMA의 특수 경우
- ARIMA(0,0,0) 백색잡음 (자기상관이 없는 시계열)
- 상수 없는 ARIMA(0,1,0) 확률보행 random walk
- 상수 있는 ARIMA(0,1,0) 드리프트 모델 drift model (드리프트 = 표류 = 시간에 따른 변화량)
- ARIMA(p,0,0) 자기회귀
- ARIMA(0,0,q) 이동평균
ARIMA(p,d,q)의 적절한 값 찾기: Box-Jenkins Method.
SARIMA (Seasonal ARIMA. 계절성 아리마 모델)
- 계절성 항을 비계절성 항에 곱함.
예측 기법 4가지: 평균, 단순, 계절성, 표류
- 평균 기법: 예측한 모든 미래값은 과거 데이터의 평균.
- 단순 기법 naive method: 모든 예측값을 단순하게 마지막 값으로 두는 방법.
데이터가 확률보행 random walk 패턴일 때는 단순 기법이 최적. 확률보행 예측값 random walk forecasts라고 부르기도 한다.
- 계절성 단순 기법 seasonal naive method : 계절성이 뚜렷한 데이터에 유요한 기법.
- 표류 기법 : 단순 기법 naive method의 수정. 예측값이 시간에 따라 증가하거나 감소하게. 시간에 따른 변화량 (=표류 drift)은 과거 데이터에 나타나는 평균 변화량으로 정한다.
변환과 조정: 수학적 변환 (로그, 거듭곱, 박스-칵스, 역변환, 편향조정)
- 변환 transformation : 시계열의 수준에 비례하여 증가하거나 감소하는 변동이 보이는 데이터에 유용할 수 있음.
- 로그 변환 log transformation : 원래 눈금에 대해 예측치를 그대로 양수로 놓는다. 원래 값에 대해 비례하여 바뀐다. 로그의 밑을 10으로 하면 로그 눈금에서 1만큼 증가는 원래 눈금의 10배 증가.
- 거듭곱 변환 power transformation : 음수 값들에 대해서는 모든 관측값에 어떤 상수를 더해서 조정해야 사용할 수 있는 변환. 변환해도 예측값의 차이는 없을 수 있지만 예측 구간 prediction interval에는 커다란 영향을 준다.
- 박스-칵스 변환 Box-Cox transformation : 로그 변환과 거듭곱 변환을 둘 다 포함. 매개변수 람다 = 0 이면, 자연 로그 사용. 0이 아니면, 거듭곱 변환 사용. 매개변수 = 1 이면 -1만 취하므로 시계열 모양 변화 없이 아래쪽 이동. 그 외 람다값의 경우, 시계열 모양이 변한다. BoxCox.lambda()함수로 값 선택에 도움을 받을 수 있다.
- 역-변환 back transformation : 변환을 선택하고 나서 변환된 데이터를 예측한 이후, 원래 눈금에 대한 예측치를 얻기 위해 변환을 되돌려 줘야 한다.
- 편향 조정: 역변환된 점예측값이 예측 분포의 평균이 아니라 보통 예측 분포의 중간값median이 된다.
예측분산 forecast variance가 클수록 mean과 median의 차이가 큰데,
박스-칵스로 단순하게 역변환된 예측값과 주어진 평균 사이의 차이를 편향bias 라고 합니다.
중간값 대신 평균을 사용할 때 점 예측치들이 편향-조정 bias-adjustment 되었다고 말합니다.
잔차 진단
- 학습 데이터 training data : 예측 기법의 어떠한 매개변수 (parameter)를 추정하는 데 사용
- 시험 데이터 test data : 예측 모델의 정확도를 평가할 때 사용.
- 잔차 residual : 학습 데이터 train data 에 대해 계산. 한 단계 one-step 예측값에 기초함.
- 참 예측 오차 forecast error : 시험 데이터 test data 에 대해 계산. 여러 단계 multi-step 예측값을 포함할 수 있음.
잔차의 크기는 참 예측 오차가 얼마나 클 지에 대해 믿을 만한 지표가 아닙니다.
잔차는 어떤 모델이 데이터의 정보를 적절하게 잡아냈는지 여부를 확인할 때 유용합니다. 다음과 같은 특징들을 만족하는지 확인하는 것은, 어떤 모델이 사용할 수 있는 모든 정보를 사용했는지 여부를 확인하기 위해 중요합니다.
[좋은 예측기법을 사용한 경우의 잔차 특징]
- 상관 관계가 없다. (잔차 사이에 상관관계가 있다면, 잔차에 예측값을 계산할 때 사용해야 하는 정보가 남아 있다는 뜻이다.)
- 평균이 0이다. (잔차의 평균이 0이 아니라면, 예측값이 편향bias될 것이다.
- 분산이 상수다. 정규 분포다. (이 두 가지 성질은 예측구간 prediction interval 계산이 쉽도록 한다.)
'IT,SW,Data,Cloud,코딩' 카테고리의 다른 글
도커, 컨테이너, 쿠버네티스, 마이크로서비스, 데브옵스 (0) | 2022.01.20 |
---|---|
클라우드 서비스의 개념과 종류, 그리고 클라우드 아키텍쳐의 구조 (0) | 2022.01.13 |
빅데이터분석기사 필기 합격 (0) | 2021.11.14 |
빅데이터 분석 이론: 텍스트 처리 등 (0) | 2021.10.08 |
비모수 검정: Mann-Whitney U Test 외 (0) | 2021.10.01 |
빅데이터분석기사 필기 시험준비 - 나만의 암기포인트 (0) | 2021.09.30 |
머신러닝 초보자를 위한 강의와 책 추천 (0) | 2021.08.26 |
개발자이직 알아볼 때 점핏(jumpit) 플랫폼 사용하면 편리해요! (0) | 2021.07.27 |
댓글