레이블이 시계열분석인 게시물을 표시합니다. 모든 게시물 표시
레이블이 시계열분석인 게시물을 표시합니다. 모든 게시물 표시

시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 7 편

     데이터 모형을 돌리고 나면,   모델에 대한 결과를 추출 해 올 때는 특별한 테크닉이 필요하다.   모형의 결과는 list화 되어 있기 때문에,   이를 어떻게 조정하고 추출 해오는지가 중요하다. 

  완벽하게 최적화 하기 위해서는 좌충우돌(突) 할 수 밖에 없다.   


 이번에는 은닉 마르코프 HMM 모형에서 데이터 최적화 하기 위한 도식이다. 

HMM 은닉 마르코프 모델 데이터 서치

 

시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 6편

    프로젝트와 같은 형태 처럼 분석 하는데,   분석을 진행 하는 단계 마다, 지속적으로 기존에 해 왔던 분석이 잘못된 것을 발견 하게 된다. 


 지금 현재 하고 있는 것이  해들리 위컴(Hadley Wickham)의  R for Data Science의 나온 아래와 같은 그림 대로 가고 있다. 


해들리 위컴의  데이터 분석 프로젝트에서 반드시 필요한 것 


데이터 분석의 분야는 매우 광범위 하기 때문에,  즉 책 한권을 읽는 다고 마스터 할 수 있는 것은 아니다,    즉  데이터를 변환 하고,   시각으로 보고 모델링 한 다음에 다시 데이터를 변환 하는 일정의 사이클이 필요하다. 물론  과정에서 계속 Communicate 가 필요한 것이다.  


시계열 분석 실적 사례 은닉 마르크프 모델은 동적인 모델이므로 언제 이야기가 끝이 날지는 모르겠지만, 이것을 계속 하다보면,  언젠가는 끝날 것이다.  

밀덕 세계에서는 한번의 실전이  백번의 훈련 보다 났지 않다고 하였는가?


시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 5편

   데이터 셋과  모형에 대한 기초적인 지식만 있어도  실제로 모델 돌리는 것은  어렵지 않다.  하지만, 이것을 해석 하는 문제는 다른 문제이다.  아래 페이지에 이것을 해석하는 것과  그 동안의 소스 코드를 모아 놓았다.    

https://rdmkyg.blogspot.com/2021/09/hmm-4.html

HMM 한개에 여러개 이미지 그리기


시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 4편

  이 포스트에서 사용할 소스코드를 실행 하기 위하여,  앞 편에서 구현된 소스코드를 모은 아래의 링크를 클릭 하여 다운 받아야 한다. 

https://drive.google.com/file/d/1fbJc-yvbPGGYs5d07GFD4wwgkON1Q4n9/view?usp=sharing


   나는 사실 어느 모형을 사용하느냐,  아니면, 어떠한 로직을 사용 하느냐에 대한 결정을 하는데, 데이터 시각화가 굉장히 중요하다고 느끼는 데는 R을 접하고 나서 4년이 지난 후에나 알았다.  

 위의 동영상은  내가 통계 패키지 R을 시작 하였을때, 보았던 동영상이지만,  그 당시에는 데이터 핸들링에 관심이 많았던 시기 였다.  즉,  업무용 프로그램을  엑셀에서 R로 넘어가는 시기였다고 보면 된다.   

  여기에서는 통계학을 전공하는 학생에게는 "인문학"이 중요하다는  이야기도 있었는데,  나같은 경우는 이학사에,  공학과 관련된 업무(Equipment maintenance)를 하고 있다. 

시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 3편 [state 별 그래프 분석]

   시계열 데이터에서  state(상태) 나타내는 것을 은닉마르코프 모형이다.  은닉 마르코프 모형에서 어느 시점에서 구입해서,  어느 시점에서 판매하는 것이 가장 좋은 것인지, 판단 하려면, 그래프를 이용한 EDA를 하여야 한다.   

  

   state별로 데이터의 분포로 보는 것은  매우 중요하다.   특히,  많은 금액을 투자 한다면,  더욱 많이 봐야 한다.  즉 투자 비용이 크면 클 수록 많이 봐야 한다는 것이다. 

시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 2편

 2번째 편에서는  은닉 마르코프 모형에서 state 별 조건부 확률 결과인  posterior probability (사후확률)에 대한 구체적인 값을 논의 하고자 한다.   이것에 대한 내용을 보면,  조건부 확률을 어떻게 되는지 알수 있을 것이다.

   

아래에 나오는 그래프와 소스코드를 돌리려면,  아래의 링크의 코드를  먼저 실행 하여야 한다.  

https://rdmkyg.blogspot.com/2021/09/hmm-1.html


대상  은닉 마르코프 그래프 (HMM)

시계열 분석 실전 사례 은닉 마르코프 HMM 모형 주식 분석 1편

     주식에서 일정 주기로 시세가 변동 하는 주식은  박스를 그려서 분석 할 수 있다.  하지만,  박스를 그려서 분석 할 수 있는 주식이 그다지  많지 않다.  

시작에서 충격(Ex 코로나 팬더믹) 받지 않은 이상은 박스를 그려서 분석 할 수 있는 주식이 있는데,  "대상"이라는 주식이  내가 찾은 유일한 주식인 것 같다. 

시계열 분석 실전 사례 auto.arima로 주식 데이터분석 대상, nasdaq 100

    auto.arima 검정은 놀랍게도,  실험적으로  발견하는  heuristics 방법을 따르는 박스-젠킨스 방법에 비해, ARIMA 모델을  자동으로 정해 주기 때문에,  분석이 매우 용이하다.   이것은 R에 forecast에 패키지에 있으며,  사용법이 간단 하다.   

  시계열 분석의 중요도가 매우 높은 경우에는  데이터 시각화,  기반지식,  학습 파라에터 추정, 여러 가지 실험을 통해 모델을 평가 하여,  파라메터를 조정 하여야 한다. 

  하지만,  대용량의 데이터를 한꺼번에 분석 하여야 할 때, auto.arima는 매우 중요한 요소로 작동 할 수 있다.   

   초보들에게는 여러번 실험에서  박스-젠킨스 방법 보다는 auto.arima가 사용이나 결정 측면에서 더욱 좋다고 볼 수 있다.

시계열 분석 코드로 보는 은닉 마르코프 모델 HMM의 적합과정

 은닉 마르코프 모델   HMM의 적합 과정은 매우 복잡하다.  그러나 R 에는 이를 구현할 여러가지 패키지가 존재 한다. 여기서는 depmixS4 패키지로 작업 하겠다.  다음 코드를 사용해 적절한 시계열을 만든다. 

시계열 분석 은닉 마르코프 모형 [모델을 적합 시키는 방법]

 직접적으로 측정이 불가능한 상태의 존재와 이 기술이 적용될 다양한 데이터 셋에 대해 분명하게 옳은 정답은 얻을 수 없다는 것을 상정 한다.  그러면  은닉 상태들의 선험적 지식 없이 이 알고리즘은 은닉 상태들을 어떻게 식별 할 까?  그 대답은 바로 반복성에 있다.  관측을 설명 가능한 가장 적절한 은닉 상태를 도출하는 마법 같은 해결책은 존재하지 않는다.  그러나 완전하게 구체화된 시스템이 있다면 추정을 향해 나아갈 가능성은 열린다. 

시계열 분석 은닉 마르코프 모형 [ 모델 동작 방식]

 은닉 마르코프 모형 (hidden markov model(HMM)은 특히 시계열 모델링에 유용하다.  또한 시계열 분석에 학습될 데이터에 올바르게 라벨링 된 정답이 존재하지 않는 비지도 학습이 적용된 회귀 한 경우이기 때문에 흥미롭기도 하다.  

HMM 은 앞서 살펴본 칼만 필터의 실험에서 얻었던 직관,  즉 관측 가능 변수가 시스템을 가장 잘 묘사하지 못한다는 개념에서 영감을 받았다. 

선형 가우스 모델에 적용된 칼만 필터처럼 과정에는 상태가 있으며 관측이 그 상태에 대한 정보를 준다는 개념을 상정 한다. 

시계열 분석 칼만 필터 코드 예제

  오차가 쉽게 발생하는 센서를 사용하여 뉴턴 역학을 따르는 물체를 추적하는 전형적인 예를 살펴 보자.  물체의 위치를 물체의 속도와 가속도에 대한 함수로 보는 뉴턴 운동법칙 Newton's laws of motion에  따라 시계열을 생성한다.

이 때 물체의 움직임은 계속성을 갖지만,  측정이 이산적으로 분리된다고 가정해보자.  우선 가속도에 대한 계열을 정하고,  위치와 속도는 0에서 시작한다.   또한 물리적으로 비현실 적이지만 각 시간 단계에서 각 시간단계의 시작점에서 순간 가속도가 변하고 다시변하기 전까지는 지속적인 값을 가진다고 가정 하자. 

시계열 분석 칼만 필터 개요

   칼만 필터 Kalman filter는 충분히 성숙한 방법이다. 시계열로 부터 새로운 정보를 결합하는 데 사용되고 과거에 알려진 내부 상태 추정 정보를 지능적으로 결합해 준다. 칼만 필터의 최초 사용 사례로는 아폴로 11호 apollo 11 mission 이 있다. 



아폴로 칼만필터

NASA 엔지니어들은 기내의 계산 자원만으로는 매우 메모리 집약적인 위치추정 기법 사용이 불가능하다는 판단을 내렸다.  이 상황에서 킬만 필터 기법이 대신 선택되었다. 계산이 비교적 간단하고,  미래의 예측이나 현재를 추정하는 데 과거 데이터의 저장이 필요없다는 것은 칼만 필터의 장점이다. 

시계열 분석 상태공간 모델의 장단점

   상태공간 모델은 확률적이거나 결정론적인 애플리케이션 모두 사용할 수 있다.  또한 연속적이거나 이산적으로 샘플링된 데이터 모두에도 적용 될 수 있다. 

이 사실만으로도 상태공간 모델의 활용도와 상당한 유연성을 어느 정도 예측 할 수 있다.  특히 장점과 단점은 상태공간 모델이 가진 유연성에 의해 생긴다. 

시계열 분석 시계열의 상태 공간 모델

상태 공간 모델은 '실세계'에서 얻는 동기에 영향을 받는다.  추정시 측정 오류를 고려하는 방법, 사전 지식이나 믿음을 추정에 주입하는 방법처럼 실제 공학 문제에서 발생 있는 문제 들을 해결 한다. 

시계열 분석 시계열 통계 모델의 장단점

  시계열 분석의 장단점을 아래와 같이 나열을 한다. 


장점

  • 통계 모델은 간단하고 투명해서 모델의 파라미터 측면을 보면 명확하게 이해 할 수 있다. 
  • 통계 모델을 정의하는 간단한 수학적 표현 덕분에 철저히 통계적인 방식으로 관심 속성을 도출하는 것이 가능 하다. 
  • 어느 정도 작은 데이터셋에 적용해도 여전히 좋은 결과를 얻을 수 있다.   
  • 다뤄진 간단한 통계 모델 및 이를 변형한 모델은 상당히 좋은 성능을 보이며,  매우 복잡한 머신러닝 모델과 비교해도 손색이 없다.  따라서 과적합이라는 위험성 없이도 좋은 성능을 얻을 수 있다. 
  • 모델의 차수 선택 및 파라미터 추정에 대해 잘 개발된 자동화 방법론은 예측을 간단하게 만든다.                                                                                                                  

단점

  • 통계 모델은 매우 간단해서 데이터셋이 커지더라도 항상 성능 향상을 보장하지 않는다.  대규모 데이터셋으로 작업한다면 복잡한 머신러닝 모델 및 신경망 방법을 사용하는 것이 더 좋다. 
  • 통계 모델은 분포보다 분포의 평균값 추정에 집중한다. 예측의 불확실성에 대한 대용물로서 표본의 분산을 도출 할 수 있지만  이는 모델을 고를 때 선택 한 모든 것에 대한 불확실성을 제한된 방식으로만 표현 한다.  기본 모델이 모델을 선택 할 때,  선택한 모든 선택과 관련된 불확실성을 표현하는 제한된 방법만 제공한다. 
  • 정의에 따르면, 통계 모델은 비선형 행동을 다루기 위해 구축된 것이 아니라서 비선형 관계가 많은 데이터를 설명하는 데 적합하지 않다. 
# 참고 서적 :  실적 시계열 분석  -  한빛 미디어 

시계열 분석 통계모델의 변형

    시계열 데이터를 위해 개발된 다양한 통계모델이 있다. ARIMA 모델을 확장 하거나, ARIMA 모델과 다른 역동성을 가정하기도 한다.   이번에는 그중 가장 일반적으로 사용되고 잘 알려진 통계적 시계열 모델을 간략히 살펴 보겠다. 


통계 모형의 변형


시계열 분석 벡터 자귀회귀

  실세계에서 서로 관련성이 있는 여러 시계열은 병렬로 존재할 수 있다.  이미 이러한 데이터를 정리하고 정렬하는 방법은 살펴 보았다. 이제 정리된 데이터를 최대한 활용하는 방법을 배워볼 차례이다.  그 중 여러 변수에 대한 AR(p) 모델을 생성해 볼 수 있다.  이러한 모델은 변수들에게 서로 영향을 주고 받는 상황을 제공한다는 제공한다는 장점을 가진다. 

즉,  모든 변수가 x  로 지정되며 특별히 y를 위한 변수는 없다는 것이다.  대신 적합은 모든 변수에 대해 균등하게 이루어진다.  한편 계열이 정상이 아닐 때,  전에 살펴본 모델처럼 차분이 적용될 수 있다는 것을 참고해야 한다. 

시계열 분석 ARIMA 모델 파라메터 선택 [자동으로 모델을 적합시키는 방법]

    오늘날에는 수동으로 반복하는 과정에서 벗어나,  모델을 자동으로 선택하는 방법이 사용된다.  자동화된 모델의 선택은 앞서  forecast 패키지의 auto.arima() 함수와 함께 잠깐 언급된 AIC 와 같은 다양한 정보 손실 기준을 토대로 이루어 진다.

시계열 분석 ARIMA 모델 파라메터 선택 [ 수동 모델 적합]

    ARIMA  즉 "자기회귀누적이동평균" 의  모델에 대한 설명의 미리 보고 파라메터 선택 부분을 봐야 한다.    앞에 이야기에서 이어지는 것이다.  필요시 아래를 클릭 하여 참고 하면 된다. 

 https://rdmkyg.blogspot.com/2021/08/arima.html


ARIMA 모델에서 파라메터의 역할을 아래와 같다. 


  • 파라메터 p :  자귀회귀와 관련이 있고,  순환성을 설명할때 필요하다.
  • 파라메터 q : 이동평균과 관련이 있고, 오차항에 대한 시스템 충격이라고 표현환다.
  • 파라메터 d :  시계열에서 설명 하는 차분이다.  

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...