본문 바로가기

AI/Machine Learning

[Practical Time Series Analysis (실전 시계열 분석)] Chapter 04 시계열 데이터의 시뮬레이션

728x90
더보기

[목차]

4.1 시계열 시뮬레이션의 특별한점

- 4.1.1 시뮬레이션과 예측

4.2 코드로 보는 시뮬레이션

- 4.2.1 스스로 직접 만들어보기

- 4.2.2 스스로 실행하는 시뮬레이션 세계 구축

- 4.2.3 물리적인 시뮬레이션

4.3 시뮬레이션에 대한 마지막 조언

- 4.3.1 통계적인 시뮬레이션

- 4.3.2 딥러닝 시뮬레이션

4.4 보충 자료

 


 

Chapter 04 시계열 데이터의 시뮬레이션

 

들어가며

1) 이 장은 크게 세 부분으로 나뉜다.

  • 첫째, 시계열 데이터 시뮬레이션과 다른 종류의 데이터 시뮬레이션을 비교한다. 그러면서 시간의 흐름을 처리할 때 새로운 분야에서 특별히 고려해야할 사항에 집중한다.
  • 둘째, 실제 코드 기반으로 시뮬레이션의 몇 가지 예를 살펴본다.
  • 셋째, 시계열 시뮬레이션의 동향을 살펴본다.

 

2) 시계열의 시뮬레이션 종류

  • 발견적 시뮬레이션 (heuristic simulation)
    • 세상이 움직여야만 하는 타당한 방식을 결정합니다. 그리고 규칙을 하나씩 코드로 옮깁니다.
  • 이산 사건 시뮬레이션 (discrete event simulation)
    • 우리가 만든 세상의 규칙을 적용 받는 개벽 액터(actor)를 만들고 각 액터를 실행해서 세상이 변화하는 방식을 관찰합니다.
  • 물리기반 시뮬레이션 (physics-based simulation)
    • 물리 법칙을 적용하여 시간에 따른 시스템의 진화 방식을 관찰합니다.

 


 

4.1 시계열 시뮬레이션의 특별한 점

  • 데이터 시뮬레이션이 필요한 이유
    • 동일한 시계열에서는 두 데이터가 서로 다른 시간에 일어나므로 정확하게 비교하는 것이 어렵다.
    • 따라서 특정 시간에 발생 가능한 일을 예측하기 위해 데이터 시뮬레이션을 이용

 

4.1.1 시뮬레이션과 예측

  • 시뮬레이션과 예측
    • 시뮬레이션과 예측은 유사한 일
    • 두 경우 모두 시스템의 유동성과 파라미터에 대한 가설을 세운 다음 가설을 기반으로 생성될 데이터를 추론
  • 시뮬레이션의 연구와 개발에서 알아둬야 할 중요한 점
    • 정성적 관측을 예측보다 시뮬레이션에 통합하는 것이 더 쉬울 수 있다.
    • 시뮬레이션은 확장 가능한 형태로 실행되므로 여러 가지 시나리오를 관찰할 수 있다. 반면에 예측은 시뮬레이션보다 더 신중하게 처리되어야 한다.
    • 시뮬레이션은 예측보다 위험 부담이 적다.

 


 

4.2 코드로 보는 시뮬레이션

 

4.2.1 스스로 직접 만들어보기

  • 시계열 시뮬레이션을 만들 때 고려할 사항
    • 시계열의 개수를 결정해야 한다.
    • 시간에 따라 모델링해야 하는 추세를 결정해야 한다.
    • 회원 가입 이전에는 이메일을 열람하거나 기부하지 않도록 설계해야 한다. (책 사례의 경우 해당함)
    • 시뮬레이션이 목적이라면 데이터 누수가 발생해도 괜찮다. (하지만 이 예제에서는 현실적인 데이터를 이용자에게 제공하기 위해서 데이터가 미래로 누수되지 않도록 해야한다.)

 

4.2.2 스스로 실행하는 시뮬레이션 세계 구축

  • 제너레이터
    • 시간에 따른 종합적인 측정 기준으로 개별 에이전트의 기여 방식 확인
    • 스스로에 대한 약간의 상태 변수를 관리하는 작은 객체
    • 독립적이거나 의존적인 일련의 액터 생성
    • 시간을 돌려가며 각 액터가 하는 일 관찰
    • 보일러플레이트 코드 작성 필요 없음
  • 합성 시계열 데이터가 유용할 만한 상황
    • 시뮬레이션을 통한 근본적인 역동성에 다양한 예측 모델을 접목하여 여러 가지 가치를 판단해볼 수 있다.
    • 실제 데이터를 손에 넣기 전까지, 합성된 데이터를 활용해서 예상되는 데이터 파이프라인을 구축해볼 수 있다.

 

4.2.3 물리적인 시뮬레이션

  • 물리적인 시뮬레이션은 마르코프 연쇄 몬테카를로(MCMC) 방법으로 구현되는 방식

 


 

4.3 시뮬레이션에 대한 마지막 조언

 

4.3.1 통계적인 시뮬레이션

  • 시뮬레이션된 시계열 데이터를 얻는 가장 전통적인 방법
  • 시스템의 근간이 되는 확률적인 역동성을 이미 알고 있을 때, 몇 가지 모르는 파라미터를 추정하거나 서로 다른 가정이 파라미터 추정 과정에 주는 영향을 알아보고자 한다면 유용
  • 시뮬레이션 정확도에 대한 불확실성을 정의하는 분명한 양적 측정지표가 필요한 경우에도 꽤 가치 있다.

 

4.3.2 딥러닝 시뮬레이션

  • 시계열 데이터에서 매우 복잡할 수 있는 비선형적 역동성을 잡아낼 수 있다.
  • 하지만 시스템 역동성의 근본 원리를 전혀 이해하지 못하게 될 수 있다.

 


 

4.4 보충 자료

생략

 


 

위 내용은 경희대학교 교내 동아리 KHUDA 에서 공부한 내용을 바탕으로 작성했습니다. 😜

공부한 책은 아래의 링크를 참고해주세요 !

https://link.coupang.com/re/CSHARESDP?lptag=CFM99774036&pageKey=5237489681&itemId=7390665092&vendorItemId=74681873862 

 

실전 시계열 분석:통계와 머신러닝을 활용한 예측 기법

COUPANG

www.coupang.com