728x90

혹시 전입신고 등 통보서비스에 대해서 모른다면 이 포스팅을 꼭 읽어 주시기 바랍니다.

아니면 그냥 "전입신고 등 통보서비스"에 가입하세요.

 

요즘 너무 무서워진 전세사기 수법중 가장 악날한 것에 하나입니다.

전세계약을 먼저 체결하고 그 때 얻은 신분증 사본이나 개인정보를 이용하여 본인 척 주소지를 변경합니다.

이렇게되면 집이 빈 것으로 처리가 됨으로 집주인은 추가 전세를 받거나 대출을 받고 도망가는 식입니다.

이 때 나도 모르게 대항력을 상실함으로 보험 같은 방어책이 하나도 통하지 않게 됩니다.

 

사고사례

 

기사를 보면 24년 상반기에 여러가지 대책이 나온다고하지만 문서위조등 강력한 수법의 범죄에는

여전히 속수무책으로 보입니다.

그래서 우리가 할 수 있는 가장 기본적인 방법을 소개합니다.

 

전입신고 문자 서비스가 바로 "전입신고 등 통보서비스"입니다.

전입신고가 되면 문자가 날아가 미리 알게 하는데 사기를 완전히 방어하지는 못해도,

최소한 내가 알고 대응할 시간적 여유를 주게 됩니다.

 

하는 방법을 소개시켜 드리겠습니다. 로그인을 하거나 본인 인증 절차는 생략합니다.

혹시 어려우신 분들은 가까운 주민센터에 신분증을 들고 방문하셔서 신청하도록 하세요.

 

 

① 정부 24 홈페이지에 접속한다.

 

홈페이지만 들어가면 사실 알아서 할 수 있을꺼라 생각합니다.

그래도 기본적으로 제가 한 방법은 아래에 써두었으니 참고하세요.

 

https://www.gov.kr/portal/main/nologin

정부 24

 

 

② 민원서비스에서 검색합니다.

 

상단의 민원서비스 - 민원 신청 안내에 들어갑니다.

여기서 "전입신고 등 통보서비스"를 검색합니다.

 

민원신청에서 검색하기

 

③ 개인정보를 넣고 신청합니다.

 

주소지등 개인정보를 넣고 신청합니다.

신청 서비스를 모두다 신청했습니다.

제 개인주소와 신청대상건물도 신청했습니다.

 

신청하기

 

④ 구비서류를 보냅니다.

 

저는 주소지가 있는 주민등록등본을 추가했습니다.

주민등록등본은 따로 정부 24에서 뽑을 수 있습니다.

이런건 정부기관 지들이 조회해도 될껀데 꼭 우리 시키는게 답답하기는 하네요.

 

구비서류 보내기

 

⑤ 신청된거 확인하기

 

제 실수인지 전산오류인지는 모르겠지만 처음에 신고가 안되었더라고요.

서비스 신청내역에서 신청한 날짜와 내용을 볼 수 있습니다.

그리고 카톡으로도 날아 왔으니 이번에는 신청이 된 것이라고 생각하겠습니다.

 

서비스 신청내용

 

제가 아직 이사를 안가서 이 문자를 받을 일이 없습니다.

혹시 주소지를 옮긴다면 서비스가 잘 작동하는지 확인하고 싶네요.

다음날 문자로 서비스 처리 통보도 오네요. 우리나라 공무원들 일 잘합니다.

 

문지로 통보도 옵니다.

 


 

사람마다 사정은 다르겠지만, 보통은 성인이 되고 직장을 가지고 벌이가 생기거나 결혼을 하면 독립을 하게됩니다.

20대 56.8%, 30대 46.8%가 전, 월세에 산다고 합니다.

참 세상이 야속하게도 사회를 시작하는 사람들에게 피해를 많이주는 전세사기가 점점 늘고 있습니다.

세상만 탓할 수는 없는 노릇이고 없는 자본에 어떻게든 살아야하니, 자신을 방어하기 위한 수단을 만들어야합니다.

이 "전입신고 통보서비스" 아직 홍보가 많이 안된 서비스라고 합니다.

보다 잘 알려져야 하니 여러분 한명한명이 가입하고 실적이 늘어나면 정부도 홍보를 늘릴 것이라고 생각합니다.

꼭 자신이 해당하지 않아도 가입하고 주변의 전세사는 사람에게 이런 서비스가 있다는 것을 알려주도록 합시다.

 

반응형
728x90

원과 타원

원과 타원의 정의는 각각 아래와 같습니다.

 

원(circle)은 평면상의 한 점에서 일정한 거리에 있는 평면상의 점으로 이루어지는 곡선
타원(ellipse)은 두 정점으로부터 거리의 합이 일정한 점들로 이루어진 곡선
(출처 : 다음 백과사전)

 

뭐든 수학적인 정의로 말하면 어려워지는 것 같습니다.

그래도 원과 타원은 눈으로 보면 명확하게 다릅니다.

하지만 어떻게 디자인 하나를 생각하면 꽤 복잡해집니다.

오늘은 얼마나 타원이냐를 따져보는 타원율(Ellipticity)에 대해서 알아보겠습니다.

 

 

1. 이심률 (Eccentricity)

 

이심률은 타원이 얼마나 찌그러졌는지를 나타내는 값입니다. 

타원의 장축(semi-major axis)과 단축(semi-minor axis)을 사용하여 이심률을 계산할 수 있습니다.

장축의 길이가 a, 단축의 경우 b라고 표시할 때 타원의 이심률 e는 아래와 같습니다.

 

이심률(e)의 정의

 

  • e=0일 때는 원(circle)입니다.
  • 타원은 e가 0에서 1 사이입니다.
  • e=1에 가까워질수록 타원은 더 납짝한 모양이 됩니다.

 

이심률에 따른 타원의 모양은 아래와 같습니다.

 

이심률에 따른 모양

 

 

 

2. 타원 평면도 (Flatness) - 타원률

 

타원에 평평함을 나타내는 또 다른 계산지표입니다.

이심률보다 개념이나 계산이 간편하여 여러분야에 응용할 수 있습니다.

이 경우도 타원의 장축 a와 단축 b를 사용해서 계산을 합니다.

 

이때 평편도 f는 아래와 같습니다.

 

평면도 f

 

 

평면도에 대한 모양

 

 

 

3. 사용하기 - 필터

 

타원율이 생각보다 많은 분야에서 사용되는데, 그 중 하나가 신호체계에서 필터입니다.

필터는 여러가지 조건에 따라 신호를 걸러주는 역할을 하는 경우가 많습니다.

이번에는 90˚ 방향에서 들어오는 신호는 차단해주고 0˚ 방향에서 입사하는 신호는 받아들이는 필터를 생각해 보겠습니다.

이 필터가 만들어내는 모양은 기본적으로 아래와 같습니다.

 

이상적인 필터는 타원율이 1.0

 

0˚ 로 입사되는 신호는 100% 들어오지만 90˚ 방향은 0%로 이상적으로 구현되었습니다.

이때 0˚ 방향을 장축 a이고 90˚ 방향은 단축 b 으로 해서 타원 평면도를 계산합니다.

이 때 평면도 f = 1이 되고 이 경우 성능이 우수하다고 합니다.

하지만 현실에서는 필터가 완벽하게 작동하지 않습니다.

 

현실에서 필터(타원율 0.8)

 

90˚ 방향의 성분이 다 차단되지 않아서 어느정도 남아 있는 것이 보입니다.

이 때 평면도를 계산하면 f = 0.8으로 필터의 성능을 나타내 줍니다.

반응형
728x90

엑셀을 하다보면 보여지는 문자는 "서식정보"와 "내용"이 합쳐집니다.

즉 생긴거는 문자이지만 숫자일 수도 있고, 숫자 10이 "10권"으로 표시될 수도 있다는 뜻입니다.

특히 통계 프로그램을 통해 생성된 숫자나 외부파일을 복사해서 붙이는 경우 문자로 많이 붙여넣어집니다.

 

이런경우에 문자를 숫자로 고쳐주는 NUMBERVALUE 함수에 대해서 알아보겠습니다.

 

 

NUMBERVALUE(text, [decimal_separator], [group_separator]) : 텍스트를 원하는 형식에 숫자로 변환합니다.

  • text : 숫자로 표시될 문자입니다. 함수가 숫자로 해석할 수 없는 경우 #VALUE! 에러를 반환합니다.
  • [decimal_separator] : 소숫점을 확인합니다. text안에서 decimal_separator를 찾아서 똑같은게 있다면 그 오른쪽에 있는 숫자는 소수점 이하로 표시합니다. 같은 decimal_separator가 2개 이상이면 오류(#VALUE!)가 발생합니다.
  • [group_separator] : 구분표시입니다. text안에서 group_separator 를 찾아서 똑같은게 있다면 무시합니다.
  • 빈칸은 자동으로 무시합니다. 3 0 0 0은 3000으로 자동으로 변환됩니다.

 

인수에 대한 설명이 어렵습니다.

하지만 동작이 쉬운 함수로 예를 들어서 보면 명확합니다.

 

=NUMBERVALUE("1서43장55","장","서") 라고 하면 결과는 "143.55"가 됩니다.

"서"는 뭔가 구분기호로 생각해서 없애버리고 "장"은 소수점으로 빼버린 겁니다.

 

예시

 

문자로 표기되어 있고 중간에 공백이 있어서 연산이 안되는 왼쪽에 비해,

NUMBERVALUE로 변환한 식은 계산이 바로됩니다.

 


 

요즘은 사실 엑셀에서 어지간한 텍스트 형식의 숫자는 연산이 바로 지원되게 만들어져 있습니다.

텍스트 형식으로 '34 + '55을 하면 그냥 89라고 결과가 뜹니다.

스마트하게 만들어지는 추세죠.

언제가 NUMBERVALUE 함수는 장기적으로 없어지는 과거의 유물이 될 수도 있겠네요.

하지만 숫자가 텍스트가 되어서 문제가 생기는 경우는 언제든지 있습니다.

 

오른쪽 관중수가 텍스트입니다.

 

텍스트로 표시된 숫자는 거의 대부분 칸의 왼쪽 위에 초록색 삼각형이 있어 알 수 있습니다.

하지만 이것도 예외는 언제든지 있어서 혼돈될 때가 있습니다.

외부 프로그램으로 CSV 파일을 만들거나, 혹은 복사해서 붙일 때는 텍스트로 적용되었는지 아닌지를 확인할 필요가 있습니다.

반응형
728x90

https://youtu.be/Ymi_LMQ8N_Y

소개영상

 

작은 마녀 노베타는 대만의 Pupuya Games에서 제작한 3D 슈팅 액션 게임니다.

게임사는 대만이지만 일본을 타겟으로 제작한 느낌이 많이 납니다.

언어가 일어로 되어있고 부록도 일본어로 제작되어 플레이할 때는 일본게임이라고 생각했습니다.

3D 기반의 움직임을 가진 주인공 노베타가 맵을 이동하거나 전투하면서 진행하는 방식입니다.

 

노베타

 

밝은 색상의 배경에 귀여운 여자아이와 고양이가 등장하여 라이트한 분위기로 시작됩니다.

하지만 스테미너와 마력을 관리하면서 전투를 해야하는 조금은 난이도가 있는 게임입니다.

이런 스타일을 소울라이크라고 묶어 말하기도 하지만 전통적인 소울 계열과 비교하면 차이가 많습니다.

영창을 사용한 독창적인 전투스타일은 차별화된 전술로 보스전으로 진행하게 합니다.

 

원거리 공격

 

마녀인 노베타는 원거리 슈팅 공격을 주력으로 가지고 있습니다.

영창을 통해 강력한 마법을 사용할 수 있고 속성마다 개성이 있어 마법사라는 직업에 어울립니다.

원거리 공격은 마력을 소모하여 마력을 부족할 때가 많습니다.

근접공격이나 부서지는 오브젝트를 파괴하면 회복할 수 있습니다.

정확한 타이밍에 공격을 하면 마력흡수 마법이 발동합니다. 

소울 시리즈에 페링에 해당하는 기술로 대량의 마력과 약간의 체력을 회복하는데,

보상이 좋기는 하지만 사용하기가 어렵습니다.

또 정확한 타이밍에 회피를 하면 약간의 마력이 충전되는데 이쪽이 좀더 쉬워서 주력으로 사용했습니다.

 

노베타의 옥좌

 

어려보이는 외모에도 강력한 마법을 구사하는 노베타가 한 성을 방문합니다.
성은 지형이 복잡하며 귀신이나 인형들이 덤벼오고, 곳곳에 강력한 생혼들도 버티고 있습니다.

여기서 옥좌라는 것을 찾는 노베타가 말도 하고 길을 알고 있는 고양이를 만나 성을 탐험하는 이야기입니다.

주인공의 상황과 사정이 스토리가 진행되도 완전히 밝혀지지는 않습니다.

하지만 수집품을 통해서 어느정도 예상이 가능하고 상상하는 재미가 있는 게임입니다.

 

여신상

 

 

기본적으로 전투로 모은 생혼을 여신상에 가져가서 스텟을 강화할 수 있습니다.

기술에 해당하는 마법은 숨겨진 마법책을 찾아서 레벨을 올려 강해지는 방식입니다. 

1회차에도 마법을 만랩까지 올릴 수는 있지만 잘 뒤지고 다니지 않으면 다 찾기는 어렵습니다.

영창이 완료되면 주문 대기상태가 되는데 대기 상태 중에는,

특수효과가 있고 한번에 강력한 마법을 사용하면 영창상태가 끝납니다.

전투전에 미리 영창을 해두면 전투난이도가 쉬워지기 때문에 2회차가 더 쉬울 수도 있습니다.

 

풍경

 

그래픽이나 풍경이 시원하게 묘사되고 깨짐등 어색함이 없고 오브젝트 표현이 잘 되어있습니다.

케릭터의 동작이나 전투에서도 적들과 충돌현상이 없어 플레이에 재미를 올립니다.

하지만 BGM이 좀 심심합니다. 단조롭고 반복적이라 전투가 없는 구간에서는 심심합니다.

 

마법 사용하기

 

중간 보스급 이상은 지형과 기술의 특성을 살려 재미있게 하지만 일반적들은 단조롭고 마법한방에 쓰러집니다.

또 진행에서 부자연스러운 것들이 조금 있는데 특히 어두운 동굴 스테이지에서는 생각없이 진행하면 번개마법을 놓칠 수도 있습니다.

진행에 꼭 필요한 마법이라 공략을 보지 않으면 왜 게임이 막히는지 전혀 알 수가 없게 되는 상황이 되는 것이죠.

다섯 번째 정신세계로 들어가면 뒤로 못돌아가는데 세계관상 이해는 되지만 게임 내부적으로 허용해 주었으면 하는 바램이 있습니다.

 

번개마법은 강력합니다

 

인디게임다운 허술함이 있기는 하는 게임입니다.

하지만 웃고 넘어갈 수준이고 보스전이 재미있기도 해서 돈이나 시간이 아깝지는 않습니다.

여신상에서 세이브를 하면 적들이 다시 살아나는 특성을 이용해서 생혼을 모아 강화 할 수 있습니다.

다양한 요소가 많아서 조금 노력하면 생각보다 어렵지 않게 플레이 할 수 있습니다.

강하게 추천하지는 않겠지만 액션게임을 좋아하시면 재미있게 할 수 있습니다.

반응형
728x90
목차

1. FORECAST.ETS.CONFINT 함수

2. 함수 사용 예시

 

현실에서 사용하는 데이터들은 불연속적으로 보이고 패턴이 없어 보입니다.

이런 데이터를 분석하기 위해 몇가지 방법을 사용하는데,

 

  • 이동평균법 : 과거 데이터의 평균을 이용해서 데이터를 분석하기 쉽게 만들기
  • 지수평활법 : 수준(Level), 추세(Trend), 계절성(Seasonality)로 미래정보를 예상
  • ETS 모델 : 지수평활법에 Error를 추가하여 불확실성을 최소화

 

같은 방법이 있습니다.

 

엑셀에서는 FORECAST.ETS 함수로 이 ETS 예측 솔루션을 제공합니다.

그래도 미래예측이 다 그렇지만, 많은 불확실성을 가지고 있습니다.

불확실성을 계산하는 파생 함수인 CONFINT 함수를 알아보겠습니다.

 

1. FORECAST.ETS.CONFINT 함수

 

FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], [seasonality], [data_completion], [aggregation]) :ETS 함수로 계산한 날짜의 예측한 값에 대한 신뢰구간을 반환합니다. 예측된 결과 95%에 반경에 속할 것이라는 것을 계산할 수 있습니다. 반대로 말하면 이 반경이 좁을 수록 ETS로 예상한 값이 정확도가 높다고 할 수 있습니다.

 

  • target_date : 예측하려는 시점의 숫자입니다. 날짜 혹은 시간, 숫자일 수 있습니다.
    원본데이터의 시간인 timeline에서 몇 단계 멀어져 있는지 계산해서 수행합니다.
    이 시간이 timeline 안쪽인 경우에는 #NUM!의 에러를 출력합니다.
  • values : 측정한 과거의 값들입니다. 범위로 입력해야하고 정확하고 많은 데이터가 필요합니다.
  • timeline : 측정한 값들의 시간 데이터입니다. 일정한 간격의 값으로 구성되어야 하지만 꼭 정렬될 필요는 없습니다.
    함수가 자동으로 시간순으로 정렬하며 줍니다.
    여기에 계산이 불가능한 텍스트등이 포함되면 #NUM을 출력됩니다. values와 같은 개수여야 합니다.
  • [confidence_level] : 구간의 신뢰도 수준을 나타내는 값으로 0 ~ 1 사이의 숫자입니다. 입력하지 않는 기본값은 0.95입니다.
  • [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. 함수 사용 예시

 

함수는 범위를 반환하기 때문에 ETS로 구한값을 더하거나 빼면 됩니다.

EST ± CONFINT를 적용하면 해당 신뢰구간을 구할 수 있습니다.

과거 실측기온을 대상으로  ETS를 이용해서 내년 기온을 예상해 봤습니다.

 

기온을 가지고 ETS

 

일단 보이지는 않지만 1960년부터 지금까지 서울의 월평균 기온을 구한것입니다.

예상값 선에서 CONFINT로 구한 값이 위아래로 범위를 만들고 있습니다.

95% 신뢰구간임에도 이 범위는 ± 3 ℃ 가까운 굉장히 큰 것으로 기후 예상이 어렵다는 것을 알 수 있습니다.

 

기온값과 예상값

 

내년에 진짜 이대로 가는지 보는 것도 좋을 것 같습니다.

ETS함수로 먼미래까지도 계산할 수 있습니다.

예상하는 미래를 좀더 멀리해서 2030년까지 보겠습니다.

시간에 따른 오차가 점점 커지는 것을 볼 수 있습니다.

먼 미래가 예상하기 힘든 점이 반영되는 것입니다.

 

좀더 먼 예상

 

그리고 아주 약간이지만 중심치가 +로 가는 것이 있습니다.

그건 아무래도 지구 온도가 올라가는 것이 반영된 것 같습니다.

ETS 계산법은 기온을 예상하기 위한 수많은 데이터가 없이 통계적으로도 어느정도 예상할 수 있는 장점이 있습니다.

 

그냥 봐서는 이해가 어려울 수 있으니 예시 파일을 올립니다.

여기에는 Microsoft사의 Learn 홈페이지에 가져온 내용도 포함됩니다.

 

ETS 예시.xlsx
0.08MB

 


 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) - 현재글

 

 

반응형
728x90

링크

 

목차

1. FORECAST.ETS 함수

2. FORECAST.ETS.SEASONALITY 함수

3. FORECAST.ETS.STAT 함수

4. 함수 적용해 보기

 

엑셀에서는 확장형 삼중 지수평활법인 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개로 계산했고 예상값의 경우 거의 일치하는 모양입니다.

 

SEASONALITY 함수와 STAT 함수
FORECAST.ETS 함수 적용결과

 

 

하지만 수학적으로 만든 값이라도 예상값과 약간의 오차가 생깁니다.

수학적으로 타당한 함수이기는 하지만 완전히 믿는 것은 어렵습니다.

 


 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) 

 

반응형
728x90

링크

 

목차

1. 지수평활법과 계수들

2. 계수들의 값을 정하는 법

3. 엑셀로 최소제곱법 적용 준비하기

4. 엑셀로 최소제곱법을 적용하여 계수 구하기

5. 엑셀의 FORECAST.ETS.STAT 함수 사용하기

 

 

1. 지수평활법과 계수들

 

시간에 따라 움직이는 데이터를 분석해서 미래값을 예상하는 지수평활법에서는 각각에 계수를 사용합니다.

계수에 딱히 정해진 이름은 없지만, 이 포스팅에서는 α, β, γ를 사용하겠습니다.

수준(Lt : Level)에는 α, 추세(Tt : Trend)에 β, 계절성(St : Seansonality )의 γ로 하고,

삼중지수평활법 (Triple Exponential Smoothing)의 형태는 아래와 같습니다.

 

삼중지수평활법 (Triple Exponential Smoothing)

 

계수들은 특별하게 정해진 규칙은 없지만, 1보다 작은 값으로 구성되며 보통은 보통은 아래범위에서 사용합니다.

 

α (수준 평활 상수): 0.1 ~ 0.3

β (추세 평활 상수): 0.01 ~ 0.3

γ (계절성 평활 상수): 0.01 ~ 0.3

 

 

2. 계수들의 값을 정하는 법

 

계수들의 값을 정하는 법, 역시 이거다 하는 규칙이나 공식은 없습니다.

보통은 아래 3가지 중에 하나는 사용하고는 합니다.

 

① 직관적으로 결정한다.

그래프의 과거 데이터와 가장 잘 맞는 값을 직관적으로 선택합니다.

민감도가 작을 수록 값을 작게, 클 수록 큰 값이 됩니다.

 

② 최적화 알고리즘을 사용한다.

일부 통계 프로그램에선 최적회된 알고리즘을 제공합니다.

Python이 대표적인 예로 scipy.optimize 가 있습니다.

 

③ 최소제곱법(Least Squares Method)

최소자승법이라고 불리기도 하는 방법으로 기존의 관측값과 계산을 수행한 값들의 차가 최소가 되는 계수를 구합니다.

즉 과거의 데이터로 이미 관측된 값을 계산하여 가장 오차가 적은 계수값을 적용하는 방식입니다.

오늘은 이걸 가지고 포스팅해 보겠습니다.

 

 

3. 엑셀로 최소제곱법 적용 준비하기

 

엑셀에서는 최적화된 알고리즘을 지원하지만 이번에는 VBA로 최소제곱법으로 구해보겠습니다.

대부분의 사람들이 엑셀을 가지고 있고 가벼운 소스임으로 지수평활법을 사용하는 원리를 알기 위해 계산해 보겠습니다.

그 전에 준비물이 몇개 있습니다.

 

① 해 찾기 추가 기능

 

VBA에서는 최소제곱법으로 해를 찾는 Solve 기능을 지원하는데 사용하기 위해서는 우선 엑셀에서 먼처 활성화 합니다.

[상단매뉴] - [파일] - [Excel 옵션] - [추가 기능] - [이동] - [해 찾기 추가 기능]을 활성화 시킵니다.

그럼 데이터 매뉴에서 해 찾기가 추가된 것도 확인할 수 있습니다.

 

해 찾기 기능 활성화 하기

 

② Solver 참조하기

 

엑셀의 VBA 인터페이스에서는 추가 기능을 참조할 수 있습니다.

상단의 매뉴에서 [도구] - [참조] - [Solver를 활성화] 합니다.

이제 해찾기 매뉴인 Solver를 VBA에서 사용할 수 있습니다.

 

Solver를 참조합니다

 

 

4. 엑셀로 최소제곱법을 적용하여 계수 구하기

 

Solver 명령어와 그 파생기능을 VBA에서 사용할 수 있습니다.

이 기능을 이용해서 VBA 로 지수평활법의 계수를 구해보도록 하겠습니다.

 

Sub TripleExponentialSmoothingOptimization()
    Dim data As Variant
    Dim alpha As Double
    Dim beta As Double
    Dim gamma As Double
    Dim L() As Double
    Dim Te() As Double
    Dim S() As Double
    Dim forecast() As Double
    Dim i As Integer, t As Integer, m As Integer
    Dim n As Integer

'-------------------------------------------------------------------------------------
    '① 입력 데이터를 찾고 배열을 만듭니다.
    '입력 데이터
    data = Range("A2:A102").Value ' 데이터는 A2:A102 범위에 있습니다.
    m = 12 ' 계절 주기
    n = UBound(data) - LBound(data) + 1

    ReDim L(1 To n + m)
    ReDim Te(1 To n + m)
    ReDim S(1 To m)
    ReDim forecast(1 To n + m) ' 12개월 예측



'-------------------------------------------------------------------------------------
    '② 지수평활법의 초기값들을 입력합니다.
    
    ' 초기 수준과 초기 계절성 계산
    L(1) = Application.WorksheetFunction.Average(Range("A2:A13"))
    For i = 1 To m
        S(i) = data(i, 1) / L(1)
    Next i

    ' 초기 추세 계산
    Te(1) = (Application.WorksheetFunction.Average(Range("A14:A25")) - Application.WorksheetFunction.Average(Range("A2:A13"))) / m

    ' 초기값으로 사용할 평활 상수
    alpha = 0.1
    beta = 0.1
    gamma = 0.1

    ' 초기 알파, 베타, 감마 값을 시트에 입력
    Range("G2").Value = alpha
    Range("H2").Value = beta
    Range("I2").Value = gamma


'-------------------------------------------------------------------------------------
    '③ 주어진 값들로 이미 있는 데이터와 차이를 구하는 CalulateSSE 함수를 만들었습니다.
    

    ' 목표 함수 셀에 CalculateSSE 결과 표시
    Range("J2").Formula = "=CalculateSSE(A2:A102, G2, H2, I2)"
    
'-------------------------------------------------------------------------------------
    '④ Solver 작동시킵니다.
        
    
    SolverReset
    SolverOptions Precision:=0.000001, Convergence:=0.0001, StepThru:=False
    SolverOk SetCell:=Range("J2"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("G2:I2")
    SolverAdd CellRef:=Range("G2:I2"), Relation:=1, FormulaText:="1"
    SolverAdd CellRef:=Range("G2:I2"), Relation:=3, FormulaText:="0.0000001"
    SolverSolve UserFinish:=True
    
    
    ' 최적화된 알파, 베타, 감마 값을 사용하여 삼중지수평활법 계산
    alpha = Range("G2").Value
    beta = Range("H2").Value
    gamma = Range("I2").Value
    
'-------------------------------------------------------------------------------------
    '⑤ 최적화 된 계수 값으로 수준, 추세, 계절성를 구합니다.
    
    
    forecast(2) = (L(1) + Te(1)) * S(1)
    
    For t = 2 To m
        L(t) = alpha * (data(t, 1) / S((t - 1) Mod m + 1)) + (1 - alpha) * (L(t - 1) + Te(t - 1))
        Te(t) = beta * (L(t) - L(t - 1)) + (1 - beta) * Te(t - 1)
        forecast(t + 1) = (L(t) + Te(t)) * S((t - 1) Mod m + 1)
    Next t
    

    For t = m + 1 To n
        L(t) = alpha * (data(t, 1) / S((t - 1) Mod m + 1)) + (1 - alpha) * (L(t - 1) + Te(t - 1))
        Te(t) = beta * (L(t) - L(t - 1)) + (1 - beta) * Te(t - 1)
        S((t - 1) Mod m + 1) = gamma * (data(t, 1) / L(t)) + (1 - gamma) * S((t - 1) Mod m + 1)
        forecast(t + 1) = (L(t) + Te(t)) * S((t - 1) Mod m + 1)
    Next t

'-------------------------------------------------------------------------------------
    '⑤ 그래프에 없는 예측값을 구합니다.
    
     
    For t = n + 1 To n + 12
    
        L(t) = alpha * (data(UBound(data), 1) / S((t - 1) Mod m + 1)) + (1 - alpha) * (L(t - 1) + Te(t - 1))
        Te(t) = beta * (L(t) - L(t - 1)) + (1 - beta) * Te(t - 1)
        S((t - 1) Mod m + 1) = gamma * (data(UBound(data), 1) / L(t)) + (1 - gamma) * S((t - 1) Mod m + 1)
    
        forecast(t) = (L(t) + (t - UBound(data)) * Te(t)) * S((t - 1) Mod m + 1)
    Next t

    ' 결과 출력
    For i = 1 To n + m
        Cells(i + 1, 2).Value = L(i) ' 수준
        Cells(i + 1, 3).Value = Te(i) ' 추세
        Cells(i + 1, 4).Value = S((i - 1) Mod m + 1) ' 계절성
        Cells(i + 1, 5).Value = forecast(i) ' 예측값
    Next i

    ' 향후 12개월 예측 출력
    For i = n + 1 To n + 12
        Cells(i + 1, 5).Value = forecast(i)
    Next i
End Sub

'----------지수평활법을 사용하기 위한 함수를 만듭니다.-----------

Function CalculateSSE(dataRange As Range, alphaCell As Range, betaCell As Range, gammaCell As Range) As Double
    Dim data As Variant
    Dim alpha As Double
    Dim beta As Double
    Dim gamma As Double
    Dim L() As Double
    Dim Te() As Double
    Dim S() As Double
    Dim n As Integer
    Dim m As Integer
    Dim t As Integer
    Dim SSE As Double

    data = dataRange.Value
    alpha = alphaCell.Value
    beta = betaCell.Value
    gamma = gammaCell.Value
    n = UBound(data)
    m = 12

    ReDim L(1 To n)
    ReDim Te(1 To n)
    ReDim S(1 To m)
'-------------------------------------------------------------------------------------
    '③-1. 에러값을 구하기 위해 별도로 지수평활법을 실행합니다.
    
  
    ' 초기 수준과 초기 계절성 계산
    L(1) = Application.WorksheetFunction.Average(dataRange.Cells(1, 1).Resize(m))
    For i = 1 To m
        S(i) = data(i, 1) / L(1)
    Next i

    ' 초기 추세 계산
    Te(1) = (Application.WorksheetFunction.Average(dataRange.Cells(m + 1, 1).Resize(m)) - L(1)) / m

'-------------------------------------------------------------------------------------
    '③-2. 지수평활법을 수행하여 관측된 데이터와 차이를 계산합니다.
    
    ' 삼중지수평활법 계산 및 SSE 계산
    SSE = 0
    For t = m + 1 To n
        L(t) = alpha * (data(t, 1) / S((t - 1) Mod m + 1)) + (1 - alpha) * (L(t - 1) + Te(t - 1))
        Te(t) = beta * (L(t) - L(t - 1)) + (1 - beta) * Te(t - 1)
        S((t - 1) Mod m + 1) = gamma * (data(t, 1) / L(t)) + (1 - gamma) * S((t - 1) Mod m + 1)
        SSE = SSE + (data(t, 1) - (L(t) + Te(t)) * S((t - 1) Mod m + 1)) ^ 2
    Next t

    CalculateSSE = SSE
End Function

 

 

꽤 긴소스가 되었지만 실제로 구성은 간단합니다.

 

① 입력 데이터를 찾고 배열을 만듭니다.

이번에 사용해야 할 것은 수준(L), 추세(T), 계절성(S)와 예측값 Futrure(F)입니다.

그리고 기존의 입력한  DATA 행렬을 포함해서 작업 영역을 만듭니다.

 

② 지수평활법의 초기값들을 입력합니다.

계산을 수행할 초기값들을 입력합니다.

수준(L), 추세(T), 계절성(S)과 이번에 구할 계수 α, β, γ 들의 초기값을 입력합니다.

지수평활법에는 일반적인 값을 입력하고 계수는 0.1을 일괄적으로 입력합니다.

 

③ 주어진 값들로 이미 있는 데이터와 차이를 구하는 CalulateSSE 함수를 만들었습니다.

함수로 만들면 Solver를 적용하기 쉽습니다.

③-1. 함수인 CalulateSSE에는 에러값을 구하기 위해 별도로 지수평활법을 실행합니다.

③-2. 지수평활법을 수행하여 관측된 데이터와 차이-에러를 계산합니다.

 

④ Solver 작동시킵니다.

계수값을 변경하면서 Error인 출력값이 최소가 될 때까지 수행합니다.

정밀도를 0.000001수준으로 하여 고밀도록 작업하게는 했지만 이렇게 까지는 필요없습니다.

 

⑤ 최적화 된 계수 값으로 수준, 추세, 계절성를 구합니다.

⑥ 1주기의 예측값을 구합니다.

 

이렇게해서 구한 예측값입니다.

예측값이 정확한 것처럼 보이시나요?

조금 부정확한 면도 있는 것 같습니다.

 

알고리즘을 통해 예측한 값들

 

 

5. 엑셀의 FORECAST.ETS.STAT 함수 사용하기

 

엑셀에서는 계수를 구하기 위한 함수를 제공합니다.

아래 링크는 각 계수를 추출하는 방식에 대해서 FORECAST.ETS.STAT 함수에 대한 설명입니다.

 

https://toast-story.tistory.com/457#C3

 

엑셀(EXCEL)로 지수평활법의 ETS 모델을 사용하는 FORECAST.ETS 함수와 파생함수인 SEASONALITY / STAT 함수

링크 목차1. FORECAST.ETS 함수2. FORECAST.ETS.SEASONALITY 함수3. FORECAST.ETS.STAT 함수4. 함수 적용해 보기 엑셀에서는 확장형 삼중 지수평활법인 ETS 알고리즘을 사용하여 기존의 관측값을 기반으로 미래값

toast-story.tistory.com

 

 


 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) 

 

반응형
728x90

링크

 

데이터를 평활화 시켜서 미래정보를 예측하는 지수평활법을 얼마간 알아보았습니다.

수준(Lt : Level), 추세(Tt :Trend), 계절성(St : Seasonality)와 데이터의 감쇄 여부, 또 계절성의 변화를 고려합니다.

대략적인 그래프의 모습은 아래와 같습니다.

 

< 지수평활법(Exponential Smoothing) >

 

모델별로 간단한 그래프의 모양

 

다양한 모델들을 구별하기 위해서 (Trend, Seasonality)로 표시합니다.

예를 들어 (A, M)은 증가하는 추세를 가지고, 승법적인 계절성을 가지는 모델이됩니다.

이때 수준(L_t, Level), 추세(T_t, Trend), 계절성(S_t, Seasonality) 값에 대해서 수식적으로 표현할 수 있습니다.

각 모델에서 예측하는 미래시점(k)에서 미래값 F은 계산하는 방법은 아래와 같습니다.

지수평활법 테이블

 

 

<  ETS 모델 >

 

현실에서 관측되는 데이터들은 그 차제로도 경향을 파악하기 어렵지만, 거기에 오차가 추가됩니다.

지수평활법에 오차를 넣어서 확장한 개념을 ETS 모델(Exponential Triple Smoothing) 이라고 합니다.

수준(Lt  : Level), 추세(Tt : Trend), 계절성(St : Seasonality)에 오차(εt : Error) 반영하는 모델로 되어있습니다.

오차를 정의한다는 것은 예상치에 대한 산포를 감안한다는 것과 같습니다.

 

1. Additive Error (덧셈 오차)

 

관측값에 에러를 적용할 때 더해주는 형태의 덧셈오차 모델은 예측값에 관측값과의 오차가 더해지는 형태입니다.

 

예측에서다가 확률 변수인 오차(ε)를 더해주는 기본적인 형태입니다.

위에서 본 것처럼 지수평활에 오차를 추가하여 확장한 ETS 모델들을 테이블로 정리할 수 있습니다.

 

덧셈 모델의 테이블

 

 

2. Multiplicative Error (곱셈 오차)

 

관측값에 에러를 적용할 때 곱해주는 형태의 곱셈 오차 모델은 예측값에 관측값과의 오차가 곱해지는 형태입니다.

확율적이 요소인 오차(Error)를 비율적으로 적용하는 방법입니다.

 

예측에 오차(ε)를 곱하는 형태로 단순하게 더해주는 것보다 더 극적인 형태로 오차의 영향을 받습니다.

관측값이 예측에 대해 얼마의 비율로 오차가 발생하는지를 알기 쉬운 모델입니다.

상황에 따라 선택하여 적용할 수 있습니다.

 

곱셈 모델 테이블

 


 

모델은 상황에 따라 적용할 수 있습니다. 예를 들어,

덧셈모델은 올해는 유난히 태양활동이 강해서 더워지는 경우 오차값을 가산하는 형태로 적용할 수 있습니다.

혹은 계절에 따른 판매량을 구할 때 유행이 지나는 것을 감안해서 비율적으로 예상할 때는 곱셈모델을 사용합니다.

ETS 모델에서 오차는는 모델의 예측 성능을 높이고 다양한 데이터 패턴을 설명하는 데 필수적인 구성 요소입니다.

모델링 과정에서 데이터를 면밀히 분석하여 적절한 Error 유형을 선택하는 것이 중요합니다.

 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) 

 

 

반응형
728x90

시계열 모델에서 DATA를 분석하기 위해서는 그 DATA가 가지고 있는 특성을 알아야 합니다.

자연 / 경제 / 사회에서 관측되는 값들은 추세를 가지거나 주기를 가지는데 그 주기나 추세도 변합니다.

오늘은 승법적 모델들에 대해서 알아보겠습니다.

 

 

1. 승법적 모델의 모양

 

승법적 모델의 모양

 

승법적 모델(Multiplicative Model) : 주기가 지남에 따라 진폭 점점 커집니다.

따라서 값들이 더 흔들리게 되고 예상하기 어려운 모양이 됩니다.

감쇄하는 승법적 모델(Damped Multiplicative Model) : 승법적 모델에서 전체 추세 자체가 포화하는 형태입니다.

 

 

2. 지수 평활법에서 승법적 모델

 

승법적 모델(Multiplicative Model)은 계절성 변동이 데이터 수준에 비례하여 나타나는 경우에 사용됩니다. 

데이터의 추세(T_t)에 따라 값(L_t)이 커지면 계절성(S_t)의 진폭도 비례하여 변합니다.

 

Multiplicative Model

 

여기에서 감쇄하는 승법적 모델(Damped Multiplicative Model)은 추세가 감소하는 경우를 고려합니다.

수식으로 표현하면 아래와 같이 됩니다.

 

Damped Multiplicative Model

 

 

3. 모델 적용해보기

 

임의로 만든 그래프에 승법적 모델(Multiplicative Model)과 승법적 모델(Damped Multiplicative Model)을 적용합니다.

아래의 하늘색선이 관측된 진짜 DATA로 보고 그 이후를 평활법으로 예상합니다.

주황색선으로 예상한 승법적 모델의 경우 추세가 점점 증가하는 것으로 시간이 지나면 원래 추세에서 멀어집니다.

회색선의 감쇠가 적용된 모델은 원 추세가 이어져 데이터가 평평해 집니다.

 

평활법 적용해보기

 

 


 

승법적 모델은 얼핏보기에는 적용할 사례가 많아보이지 않습니다.

하지만 오히려 자연에서 사용되는 케이스에는 더 많습니다.

 

Multiplicative Model의 적용 예시

  • 제품의 매출 : 어떤 제품의 판매매출은 계절에 영향을 받을 수 있습니다. 여름에는 판매량이 급증하고, 겨울에는 감소하는 패턴을 보일 수 있습니다.
    사업적 상황에 따라 시장이 커지면 변동량이 커지거나 작아지면서 계절성에 영향을 받습니다.
  • 관광객 수 : 여름철에 방문객이 많이 증가하고, 비수기에는 급감하는 패턴을 보입니다.
    이 역시 사업적 상황에 따라서 변동량이 커지거나 작아지면서 계절성에 영향을 받습니다.

 

Damped Multiplicative Model의 적용 예시

  • 기술 제품 수명 주기: 새로운 기술 제품의 초기에는 판매량이 급증할 수 있지만 시간에 따라 성장률이 둔화될 수 있습니다.
  • 신규 지역의 주택 시장 가격 : 예를들어 새로 개간된 지역에 주택이 들어선다고 하면, 초기에는 성장률이 급증하면서 성수기에는 잘 팔리고 비수기에는 안팔릴 수도 있습니다. 하지만 지역이 안정적이게 되면 결국 안정되게 되어 있습니다.

현실에서 데이터는 복잡하고 예측하기 어려운 형태를 하고 있습니다.

분석과 예상이란 것에 대해서 절대적인 규칙이 없고, 관측된 데이터를 보면서 적용할 모델을 선택해야 합니다.

 


 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) 

반응형
728x90

시간에 따라 변화하는 다양한 데이터를 분석해서 미래를 예측하려는 것을 시계열 예측이라고 합니다.

이 과거의 DATA가 가지고 있는 수준(Leve))과  추세(Trend), 계절성(Seasonality)을 통해 미래 정보를 예상하는 것이 지수 평활법(Exponential Smoothing)입니다.

 

지난번에 포스팅의 내용을 한번 더 말하고 넘어가겠습니다.

이 지수평활법은 현재시점 t에서 k 번째 미래를 예상하기 위해서 아래와 같은 기법을 사용합니다.

 

 

1. 지수평활법의 종류와 정의

 

지수평활법은 최근에 일어난 일에 대해 가중치를 줘 계산하는 방식입니다.

단순한 개념으로 설명하는 일반식은 이 형태가 됩니다.

좀 더 개념을 확실히 정리하기 위해 다른 표현 방법을 사용하면 아래와 같아집니다.

 

단순지수평활법 : 수준만을 고려하여 값을 구합니다.

( Ft : 미래값, Lt : 수준(Level), t, k : 시점 )

 

이중지수 평활법 : 데이터의 수준과 추세를 같이 사용합니다.

( Ft : 미래값, Lt : 수준(Level), Tt : 추세(Trend), t, k : 시점 )

 

삼중지수평활법 : 데이터의 수준, 추세에 계절성까지 생각합니다.

( Ft : 미래값, Lt : 수준(Level), Tt : 추세(Trend), S_t : 계절성(Seasonality), t, k : 시점 )

 

 

 

2. 감쇠하는 가산적 모델 At (Damped Additive) - 추세(Tt : Trend)의 변화

 

감쇠하는 가산적 모델은 추세의 변화에 대한 이야기입니다.

데이터를 분석하는 많은 분들에서 어떤 현상이 일어나는데, 데이터의 추세가 줄어든다는 것입니다.

 

 

 

자연계에서 예를 들면 떨어지는 물질이 가속이 줄어들다 특정 속도에 머물거나,

습기가 올라가다가 어느순간부터 점점 줄어들다 멈추는 현상이 있기 시작했습니다.

"포화"라고 부르는 이 현상을 설명하기 위해 감쇠 모델이 사용되게 됩니다.

(자연에서는 선형이 아닌 경우가 더 많습니다.)

이 모델에서는 감쇠상수 Ø가 추가됩니다.

 

< 이중지수평활법의 감쇠계수 적용 >

 

DATA가 계절성이 없이 어떤 추세만을 가질 땐 이중지수평활법을 사용합니다.

그리고 감쇠가 되는 경우 감쇠상수 Ø를 적용한 식을 아래와 같습니다.

 

식에 Ø항이 추가되었습니다.

 

측정과 예측

 

위의 그래프는 감쇠를 적용하기 전후를 보는 것입니다.

하늘색의 실선은 관측데이터주황색의 데이터는 일반적인 이중지수평활법입니다.

감쇠를 적용한 회색실선은 그래프가 포화되는 것 처럼 움직입니다.

 

 


< 삼중지수평활법의 감쇠계수 적용 >

 

계절성을 입력한다면 수식이 좀 더 복잡해지죠.

수식적으로 서술하면 아래와 같이 계산할 수 있습니다.

 

식에 Ø가 추가했습니다.

 

감쇠를 적용한 삼중지수 평활법

 

위의 그래프는 감쇠를 적용하기 전후를 보는 것입니다.

하늘색의 실선은 관측데이터고 주황색의 데이터는 일반적인 삼중지수평활법입니다.

감쇠를 적용한 회색실선은 그래프로 증가하는 폭이 줄어드는 것을 알 수 있습니다.

 


 

< 지수평활법과 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 함수(지수평활법을 사용하는 미래 예측 함수) 

 

 

 

 

 

반응형

+ Recent posts