링크
목차
엑셀에서는 확장형 삼중 지수평활법인 ETS 알고리즘을 사용하여 기존의 관측값을 기반으로 미래값을 예측합니다.
데이터는 연속적인 시간에 따른 값으로 일정한 시간 간격으로 형성되어야 합니다.
또한 예측하는 값도 연속적인 시간간격으로 예측합니다.
원본 DATA가 빠짐없이 시간간격으로 측정되며 상세하고 오차가 적을 수록 예측이 정밀하도록 설계되어 있습니다.
1. FORECAST.ETS 함수
FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation]) : 확장형 지수평활법인 ETS 모델로 미래값을 예측합니다.
이 계열 함수의 기본값을 많은 파생값과 옵션을 포함합니다.
- target_date : 예측하려는 시점의 숫자입니다. 날짜 혹은 시간, 숫자일 수 있습니다.
원본데이터의 시간인 timeline에서 몇 단계 멀어져 있는지 계산해서 수행합니다.
이 시간이 timeline 안쪽인 경우에는 #NUM!의 에러를 출력합니다. - values : 측정한 과거의 값들입니다. 범위로 입력해야하고 정확하고 많은 데이터가 필요합니다.
- timeline : 측정한 값들의 시간 데이터입니다. 일정한 간격의 값으로 구성되어야 하지만 꼭 정렬될 필요는 없습니다.
함수가 자동으로 시간순으로 정렬하며 줍니다.
여기에 계산이 불가능한 텍스트등이 포함되면 #NUM을 출력됩니다. values와 같은 개수여야 합니다. - [seasonality] : 계절성을 입력하는 항목으로 선택 요소입니다.
1은 기본값으로 엑셀 함수가 자동으로 계절성을 계산하게 합니다.
0은 계절성이 없는 모델을 사용하여 계산하는 선형모델을 사용합니다.
양의 정수를 입력하면 사용자가 입력한 seasonality를 사용해서 계산합니다.
그 외의 모든 값에 #NUM 오류가 반환됩니다. 지원되는 최대 seasonality는 8,760(1년 동안의 시간)입니다.
해당 숫자보다 seasonality가 높으면 #NUM! 오류가 반환됩니다. - [data_completion] : 계측된 데이터에 빈값을 어떻게 할지 결정하는 선택요소입니다. 이 함수에서는 최대 30%의 누락지점을 매꾸는 알고리즘이 지원됩니다.
1 : 기본값으로 가까운 지점의 평균을 사용해서 누락된 DATA를 계산합니다.
0 : 누락된 지점을 0으로 간주하는 알고리즘입니다. - [aggregation] : timelie 요소간에 일정한 단계가 필요한데 중복되는 타임 스탬프가 있을 수 있습니다. aggregation은 이 값들을 어떻게 처리할지 결정합니다.
1 : 기본값으로 그 값들을 AVERAGE를 계산합니다.
2 : SUM으로 계산합니다.
3 : Count로 계산합니다.
4 : CountA로 계산합니다.
5 : 최소값(Min)으로 계산합니다.
6 : 최대값(Max)으로 계산합니다.
7 : 중위값(Median)으로 계산합니다.
2. FORECAST.ETS.SEASONALITY 함수
FORECAST.ETS.SEASONALITY(values, timeline, [data_completion], [aggregation]) : 관측된 데이터가 일정간격으로 패턴이 반복되는 것을 계절성(Seasonality)라고 합니다.
ETS에서 사용하는 계절성의 주기를 계산해주는 함수입니다.
ETS 함수에서 계절성을 자동으로 구해서 계산하기는 하지만 따로 뽑아서 확인할 필요가 있습니다.
미래 예측 분야에서는 감각적으로 사람이 한번 확인하는 것이 아직 중요합니다.
- values : 계절성을 파악하려는 데이터의 값들입니다. timeline에 대응하는 값들의 범위 입니다.
- timeline : 값이 배열된 시간의 데이터입니다. 시간들 사이에는 일정한 간격이 필요합니다. 범위의 데이터들이 꼭 순차적으로 정렬될 필요없이 함수가 알아서 정렬을 합니다. 0을 입력하면 #NUM! 오류를 출력하고 문자를 입력하면 해당 데이터는 무시하고 계산합니다.
- [data_completion] : 계측된 데이터에 빈값을 어떻게 할지 결정하는 선택요소입니다. 이 함수에서는 최대 30%의 누락지점을 매꾸는 알고리즘이 지원됩니다.
1 : 기본값으로 가까운 지점의 평균을 사용해서 누락된 DATA를 계산합니다.
0 : 누락된 지점을 0으로 간주하는 알고리즘입니다. - [aggregation] : timelie 요소간에 일정한 단계가 필요한데 중복되는 타임 스탬프가 있을 수 있습니다. aggregation은 이 값들을 어떻게 처리할지 결정합니다.
1 : 기본값으로 그 값들을 AVERAGE를 계산합니다.
2 : SUM으로 계산합니다.
3 : Count로 계산합니다.
4 : CountA로 계산합니다.
5 : 최소값(Min)으로 계산합니다.
6 : 최대값(Max)으로 계산합니다.
7 : 중위값(Median)으로 계산합니다.
3. FORECAST.ETS.STAT 함수
FORECAST.ETS.STAT(values, timeline, statistic_type, [seasonality], [data_completion], [aggregation]) : ETS 모델을 계산할 때는 몇가지 계수를 계산해야 합니다. FORECAST.ETS 함수는 그것을 자동을 계산해서 결과에 반영합니다.
.STAT 함수의 경우 그 값들을 사용자가 볼 수 있게 하나하나 출력하는 함수입니다.
- values : ETS 모델에 적용할 DATA들이고 timeline에 대응되는 값들입니다.
- timeline : 값이 배열된 시간의 데이터입니다. 시간들 사이에는 일정한 간격이 필요합니다. 범위의 데이터들이 꼭 순차적으로 정렬될 필요없이 함수가 알아서 정렬을 합니다. 0을 입력하면 #NUM! 오류를 출력하고 문자를 입력하면 해당 데이터는 무시하고 계산합니다.
- Statistic_type : 함수에서 반환할 값들을 구합니다. 필수요소임으로 꼭 사용자가 선택하여 입력하여야 합니다.
1 : EST 알고리즘의 α 값으로 수준(Level)의 매개 변수입니다.
2 : EST 알고리즘의 β 값으로 추세(Trend)의 매개 변수입니다.
3 : EST 알고리즘의 γ 값으로 계절성(Seasonality)의 매개 변수입니다.
4 : MASE 메트릭 값입니다. 예측정확도의 측정값이 절대 배율 오차메트릭을 반환합니다.
5: SMAPE 메트릭 값입니다. 백분율 오류를 기반으로 하는 SMAPE 측정값을 반환합니다.
6 : MAE 메트릭 값입니다. 백분률 오류를 기반으로 하는 MAE 측정값을 반환합니다.
7 : RMSE 메트릭 값입니다. 백분률 오류를 기반으로 하는 RMSE 측정값을 반환합니다.
8 : 기록된 timeline의 단계 크기를 반환합니다. - [seasonality] : 계절성을 입력하는 항목으로 선택 요소입니다.
1은 기본값으로 엑셀 함수가 자동으로 계절성을 계산하게 합니다.
0은 계절성이 없는 모델을 사용하여 계산하는 선형모델을 사용합니다.
양의 정수를 입력하면 사용자가 입력한 seasonality를 사용해서 계산합니다.
그 외의 모든 값에 #NUM 오류가 반환됩니다. 지원되는 최대 seasonality는 8,760(1년 동안의 시간)입니다.
해당 숫자보다 seasonality가 높으면 #NUM! 오류가 반환됩니다. - [data_completion] : 계측된 데이터에 빈값을 어떻게 할지 결정하는 선택요소입니다. 이 함수에서는 최대 30%의 누락지점을 매꾸는 알고리즘이 지원됩니다.
1 : 기본값으로 가까운 지점의 평균을 사용해서 누락된 DATA를 계산합니다.
0 : 누락된 지점을 0으로 간주하는 알고리즘입니다. - [aggregation] : timelie 요소간에 일정한 단계가 필요한데 중복되는 타임 스탬프가 있을 수 있습니다. aggregation은 이 값들을 어떻게 처리할지 결정합니다.
1 : 기본값으로 그 값들을 AVERAGE를 계산합니다.
2 : SUM으로 계산합니다.
3 : Count로 계산합니다.
4 : CountA로 계산합니다.
5 : 최소값(Min)으로 계산합니다.
6 : 최대값(Max)으로 계산합니다.
7 : 중위값(Median)으로 계산합니다.
4. 함수 적용해 보기
제가 임의로 만들어서 ETS 함수를 적용해 보겠습니다.

임의로 만든 숫자는 sin 함수에 8을 곱해서 45개를 주기로 하는 계절성을 만들었고,
exp로 감쇄하는 추세를 만들었습니다.
아래 결과를 보면 계절성의 주기는 44개로 계산했고 예상값의 경우 거의 일치하는 모양입니다.


하지만 수학적으로 만든 값이라도 예상값과 약간의 오차가 생깁니다.
수학적으로 타당한 함수이기는 하지만 완전히 믿는 것은 어렵습니다.
< 지수평활법과 ETS 관련 포스팅 >
01. 시계열 분석에서 미래를 예측하는 이동평균법(SMA), 지수평활법(ES)으로 미래값을 예상하고 풀어보기
02. 지수평활법으로 데이터를 분석할 때 계절성과 주기를 파악하는 방법(Exponential Smoothing의 Seasonality)
03. 시계열 예측에서 지수평활법의 기본 모델(Additive)과와 확장 형태인 감쇠 (Damped) 모델들의 정의
04. 시계열 예측에서 계절성에 따른 추세가 변하는 승법적 모델과(Multiplicative Model), 감쇠하는 승법적 모델(Damped Multiplicative Model)
05. 상황에 맞게 지수평활법과 ETS 모델(Exponential Triple Smoothing)을 사용해서 시계열 예측을 수행하기
06. 지수평활법에서는 사용하는 계수(α, β, γ)를 최소제곱법으로 구하는 방법(엑셀 VBA 구하기)
07. 엑셀(EXCEL)로 지수평활법의 ETS 모델을 사용하는 FORECAST.ETS 함수와 파생함수인 SEASONALITY / STAT 함수 - 현재글
08. 엑셀(EXCEL)의 FORECAST.ETS 함수의 오차를 계산하는 CONFINT 함수(지수평활법을 사용하는 미래 예측 함수)
'엑셀' 카테고리의 다른 글
문자형식으로 쓰여진 숫자를 숫자 형식으로 만드는 NUMBERVALUE 함수 사용하기 (0) | 2024.07.27 |
---|---|
엑셀(EXCEL)의 FORECAST.ETS 함수의 오차를 계산하는 CONFINT 함수(지수평활법을 사용하는 미래 예측 함수) (0) | 2024.07.14 |
엑셀(EXCEL) VBA로 영문자에서 이니셜(Initial) 추출하는 함수 만들기(첫 머리글자 따는 코드) (0) | 2024.06.18 |
엑셀(EXCEL)에서 영문자의 대문자 소문자를 변경하거나 첫문자만 대문자로 변경하는 함수(UPPER, LOWER, PROPER) (0) | 2024.06.17 |
엑셀(EXCEL), 과거 데이터를 보고 다음을 예측하는 FORECAST 함수(FORECAST.LINEAR, 선형예측) (0) | 2024.06.11 |