
안녕하세요? 트리입니다.
주말을 맞아 너무 추운 날씨에 밖으로 나가지는 못하겠고, 게으른 주말을 맞았습니다.
스팀잇에 들어와 글도 읽고 댓글도 달다가 님이 올려주신 재미있는 글을 보았습니다.
페이스북의 fbprophet 오픈소스 프로그램을 이용해 스팀의 미래시세를 예측하는 포스팅입니다.
과거 1년치 데이터를 이용해 한달 뒤 스팀의 가격을 예측해 보는 내용입니다.
결론적으로 "2월 28일의 종가는 7.3달러일 것이다."라는 희망적인 메시지를 보내주었지요.
이 추운 날 집에서 해볼 수 있는 재미있는 공부가 될 것 같아 직접 해보기로 했습니다.
님은 파이썬을 이용해 결과를 보여 주셨는데,
저는 몇 년 전에 잠시 끄적거렸던 R을 이용해 한 번 해보기로 했습니다.
R이 설치도 안되어 있어서 다시 다운로드 받아서 해 보았지요.
프로그램을 잘 모르시는 분들도 직접 해보실 수 있을 정도로 정리해 보겠습니다. : )
1. R 다운로드 & 설치하기
- R 다운로드 경로: https://cran.r-project.org/bin/windows/base/
위 경로로 접속하면 다음 화면이 나옵니다.
여기서 제일 위의 'Download R 3.4.3 for Windows' 링크를 클릭해 'R-3.4.3-win.exe' 파일을 다운로드 받아 설치합니다.
2. R Studio 다운로드 & 설치하기
- R Studio 다운로드 경로: https://www.rstudio.com/products/rstudio/download/
R Studio는 R의 사용을 쉽게 해주는 툴입니다.
프로젝트로 묶어서 파일을 관리도 해주고, 여러 분할 창으로 한 눈에 R을 쉽게 사용할 수 있게 해줍니다.
여기의 RStudio Desktop Free 버전을 다운로드 받습니다.
저는 윈도우10 사용자이기 때문에 아래의 RStudio 1.1.419 - Windows Vista/7/8/10로 다운로드 받아 설치했습니다.
인스톨러를 통해 설치하시던지 Zip 파일로 받아 압축을 푸시던지 관계없습니다.
3. R 스튜디오 실행하기
R 스튜디오를 실행해서 열면 다음과 비슷한 형태로 열립니다.
File - New Project 를 통해 새로운 프로젝트를 만드시면 프로젝트 단위로 쉽게 관리할 수 있습니다.
위 화면은 제가 'test'라는 이름으로 프로젝트를 만든 겁니다.
그리고 File - New File - R Script 를 선택하시면 다음과 같이 스크립트를 입력할 수 있는 창이 하나 나타납니다.
편집이 가능한 스크립트 파일을 여기서 열고, 바로 실행할 수 있게 해주죠.
- R 스크립트 파일 편집기 창: 실행할 명령어를 입력하고 편집할 수 있습니다. 특정 영역만 지정해 실행할 수 있죠.
- R 프로그램 실행 창: 직접 명령어를 입력하면 실행되는 창으로 스크립트 편집기에서 Run을 실행하면 이 창에서 명령이 자동으로 입력되고 실행됩니다.
- 데이터 및 명령 히스토리 창: 임시로 생성된 데이터셋의 그룹을 보여주거나 실행된 명령어 히스토리를 볼 수 있습니다.
- 파일탐색기 및 뷰어 창: 파일을 찾거나 명령을 실행해 그래프가 나타나는 창입니다.
이거 본의 아니게 R 스튜디오 소개 포스팅이 되어가는군요. -ㅅ-
4. 페이스북의 fbprophet 패키지를 다운로드 받습니다.
R 프로그램이 좋은 건 패키지를 쉽게 다운로드 받아 사용할 수 있다는 건데요.
2년만에 R을 설치해 봤는데도 잘 되는군요. ㅎㅎ
위에서 소개한 2번 창(R 프로그램 실행 창이죠!)에서 아래의 명령을 입력해 실행합니다.
install.packages('prophet')
위와 같이 입력해 실행하면 fbprophet 패키지가 설치됩니다.
참고로 fbprophet 패키지와 관련된 소개 사이트는 다음과 같습니다.
- fbprophet: https://facebook.github.io/prophet/
5. 스팀달러(SBD)의 과거 데이터를 다운로드 받아 준비합니다.
코인마켓캡 사이트에서는 친절하게 일별 데이터를 제공하고 있죠.
다음 링크로 접속해 조회합니다.
https://coinmarketcap.com/currencies/steem-dollars/historical-data/?start=20130428&end=20180127
조회한 데이터 중에 일별 데이터를 복사해야 하기 때문에 위 이미지처럼 표의 데이터를 드래그 해서 복사를 합니다.
이걸 엑셀에 가져다 붙여넣고 .csv 파일로 저장하는거죠!
엑셀에다 붙여넣은 뒤 ①날짜표시 방식을 'YYYY-MM-DD'로 바꿔주고 ②날짜와 종가만 남기고 컬럼을 지웁니다.
③날짜 오름차순 정렬을 해서 ④csv 파일 형식으로 저장합니다.
이 csv 파일을 메모장에서 열어서 위와 같이 첫 번째 줄에 컬럼명으로 "ds","y" 라고 입력해 주고 저장합니다.
(이 부분은 아시는 분들은 바꾸시면 됩니다. 편의를 위해 그냥 이렇게 했습니다.)
6. 데이터 로드 및 부분 실행 시켜보기
R 스튜디오가 좋은 게 편집기에서 영역을 지정해 실행시킬 수 있는 점인데요.
위와 같이 영역을 지정하고 Run 버튼을 눌러 영역 내에 있는 명령어를 실행할 수 있습니다.
library(prophet)
library(dplyr)
df <- read.csv('sbd_data_20180126.csv')
m <- prophet(df)
future <- make_future_dataframe(m, periods = 70)
tail(future)
forecast <- predict(m, future)
tail(forecast[c('ds', 'yhat', 'yhat_lower', 'yhat_upper')])
아까 저장한 csv 파일을 읽어오는 거죠. 해당 프로젝트의 디렉토리에 있어야 합니다.
저기 periods = 70 이라고 해 놓은 건 70일 이후의 예상치이므로 여러분들이 임의로 바꿔서 넣으실 수 있습니다.
그러면 다음과 같이 아래쪽 콘솔 창에 나타나게 됩니다.
이 결과에 따르면 2018년 4월 1일의 스팀 달러 가격은 12.22 달러 정도로 예상하고, 낮다면 10.68 이고 높다면 13.82 정도가 될 것으로 예상합니다.
7. 그래프로 결과 보기
plot(m, forecast)
위 명령어를 실행시키면 다음과 같이 그래프로 예상되는 추세를 확인할 수 있습니다.
그리고 다음 명령어로 조금 더 분석이 가능합니다.
prophet_plot_components(m, forecast)
이 분석에 따르면 주로 일요일과 월요일에 상승 추세가 있어왔고, 수요일과 금요일에 제법 하락하는 패턴이었던 것으로 나타납니다.
자, 그러면 매도시에는 월요일에 매도 하시면 괜찮지 않을까..라고 혼자 중얼거려 봅니다. ㅎ
중간중간 명령어에 대한 설명은 따로 자세히 드리진 않았지만,
이렇게 직접 해보시는 것만으로 이미 데이터 분석 전문가(?)가 된 것 같지 않으세요?!
