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

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

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


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

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

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

   이번 건은   HMM  모형을 돌리고 나서 state 별  posterior probability(사후확률)을 가지고 그래프를 그린 것이다.  여기에는 겹침 그래프와 여러 형태의 그래프를 한꺼번에 보여는 그래프는  확률/state 별로 어떻게 할 것인지 의사 결정 하는데, 도움이 된다.

 

 첫번째로 state별  사후 확률이 95% 인 것은 결측치를 처리하고,  adjusted1 필드에 넣는다. 

# 데이터 필터 state별 데이터 전처리 
  df1 <- df %>% 
       mutate(adjusted1 =  ifelse(post_prob >=0.95, adjusted, NA ))  

R에서 사용하는 Ifelse는 엑셀에서 사용하는 if 문과 거의 흡사하여, 엑셀 잘 사용하는 사용자는 일찍 이해 한다. 


그리고,  확률이 95% 이상 것만 그린다. 

# ggplot 그래프 추세 분석
  df1 %>% 
    ggplot() +
    geom_line(aes(date, adjusted1),color="blue")

HMM에서 사후 확률이 95% 그래프


   위의 그래프를 보면,  중간에 확률이 낮은 것이 잘렸지만,  고점 하고, 중간점, 저점이 보인다.    어찌 되었든  저점에서 매수해서 고점에 매도 하면 이익 나는 것은 사실이다. 


그래프를 겹쳐 그린다.   95% 이상의 사후확률은 green으로 하고, 이하는 붉은색으로 표현한다. 

  df1 %>% 
    ggplot() +
    geom_line(aes(date, adjusted),color = "red") + 
    geom_line(aes(date, adjusted1),color="green")  

 

그래프를 겹쳐 그리기 HMM ggplot2

  geom_line 두 개를 겹치면,  녹색선은 어느 정도 신뢰성이 있고,  빨간색 선은 신뢰성이 적은 것이다.   여기에서 그래프를 보면,  저점에 녹색선이 있고,  고점에서 녹색선이 있다.  그런데, 아래의 녹색선의 state를 알수 없다.  

 그래서 그래프를 2개의 판넬에 그려야 state 와 적합한 확률을 볼 수 있다.

 greadExtra 패키지를 사용하면 아래와 같은 그래프를 두가지 종류의 그래프를 그릴 수 있다. 

 

#  ggplot2 여러개 그래프 보기   
  library(gridExtra)
  a <- df1 %>% 
    ggplot() +
    geom_line(aes(date, adjusted),color = "red") +
    geom_line(aes(date, adjusted1),color="green")
  
  b <- df %>% 
    ggplot(aes(x = date, y = adjusted, color = state)) +
    geom_line()

  grid.arrange(a,b, nrow =2)     

그래프 여러개 그리기  R


  state 3 구입해서,  판매 할 수 있는 시점인 state5로 가려면,  6개월이 소요 되는 것을 직과적으로  볼 수  있다.  하지만,  우리가 증권사 그래프를 보았을때는  1달 안에 수익을 보는 것처럼 보인다.  

  어떤 것을 하더라도, 잛은 기간에  무언가 큰 수익을 기대하는 것은  요새 자주 오는 아래와 같은 문자들에 현혹되기 쉽다. 

증권 피싱 문자
   


댓글 없음:

댓글 쓰기

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

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