스팀달러 가격를 직접 예측해보자!(with R)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@mastertri·
0.000 HBD
스팀달러 가격를 직접 예측해보자!(with R)
![dkoi_logo](https://steemitimages.com/0x0/https://res.cloudinary.com/hpiynhbhq/image/upload/v1514784507/gzhhbuurwfzt4hy3ir4y.jpg)


안녕하세요? 트리입니다.
주말을 맞아 너무 추운 날씨에 밖으로 나가지는 못하겠고, 게으른 주말을 맞았습니다.
스팀잇에 들어와 글도 읽고 댓글도 달다가 @hellocrypto 님이 올려주신 재미있는 글을 보았습니다.
​
* [[가격예측] 페이스북이 예상하는 2월 스팀 가격은?](https://steemit.com/kr-coin/@hellocrypto/2)
​

페이스북의 [fbprophet](https://facebook.github.io/prophet/) 오픈소스 프로그램​을 이용해 스팀의 미래시세를 예측하는 포스팅입니다.
과거 1년치 데이터를 이용해 한달 뒤 스팀의 가격을 예측해 보는 내용입니다.
결론적으로 "2월 28일의 종가는 7.3달러일 것이다."라는 희망적인 메시지를 보내주었지요.
​
---

이 추운 날 집에서 해볼 수 있는 재미있는 공부가 될 것 같아 직접 해보기로 했습니다.

@hellocrypto님은 파이썬을 이용해 결과를 보여 주셨는데, 
저는 몇 년 전에 잠시 끄적거렸던 R을 이용해 한 번 해보기로 했습니다.
R이 설치도 안되어 있어서 다시 다운로드 받아서 해 보았지요.

프로그램을 잘 모르시는 분들도 직접 해보실 수 있을 정도로 정리해 보겠습니다. : )
​
---
​
## 1. R 다운로드 & 설치하기
​
* R 다운로드 경로: https://cran.r-project.org/bin/windows/base/
​

위 경로로 접속하면 다음 화면이 나옵니다.
​
![R_다운로드](https://s14.postimg.org/5xplev6o1/predict_R_01.png)
​
여기서 제일 위의 '**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을 쉽게 사용할 수 있게 해줍니다.
​
![R스튜디오_다운로드](https://s14.postimg.org/dqg96ukcx/predict_R_02.png)
​
여기의 RStudio Desktop Free 버전을 다운로드 받습니다.
저는 윈도우10 사용자이기 때문에 아래의 **RStudio 1.1.419 - Windows Vista/7/8/10**로 다운로드 받아 설치했습니다.
인스톨러를 통해 설치하시던지 Zip 파일로 받아 압축을 푸시던지 관계없습니다.
​
## 3. R 스튜디오 실행하기
​
R 스튜디오를 실행해서 열면 다음과 비슷한 형태로 열립니다.
​
![R스튜디오초기](https://s14.postimg.org/bynabz3kx/predict_R_03.png)
​
File - New Project 를 통해 새로운 프로젝트를 만드시면 프로젝트 단위로 쉽게 관리할 수 있습니다.
위 화면은 제가 '**test**'라는 이름으로 프로젝트를 만든 겁니다.

그리고 File - New File - R Script 를 선택하시면 다음과 같이 스크립트를 입력할 수 있는 창이 하나 나타납니다.
편집이 가능한 스크립트 파일을 여기서 열고, 바로 실행할 수 있게 해주죠.
​
![R스튜디오준비](https://s14.postimg.org/45wmjzpw1/predict_R_04.png)
​
1. R 스크립트 파일 편집기 창: 실행할 명령어를 입력하고 편집할 수 있습니다. 특정 영역만 지정해 실행할 수 있죠.
2. R 프로그램 실행 창: 직접 명령어를 입력하면 실행되는 창으로 스크립트 편집기에서 Run을 실행하면 이 창에서 명령이 자동으로 입력되고 실행됩니다.
3. 데이터 및 명령 히스토리 창: 임시로 생성된 데이터셋의 그룹을 보여주거나 실행된 명령어 히스토리를 볼 수 있습니다.
4. 파일탐색기 및 뷰어 창: 파일을 찾거나 명령을 실행해 그래프가 나타나는 창입니다.
​

이거 본의 아니게 R 스튜디오 소개 포스팅이 되어가는군요. -ㅅ-
​
## 4. 페이스북의 fbprophet 패키지를 다운로드 받습니다.
​
![패키지인스톨](https://s14.postimg.org/7pik9s5gh/predict_R_05.png)
​
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
​
![SBD일별가격](https://s14.postimg.org/uqz5fk7ox/predict_R_06.png)
​
조회한 데이터 중에 일별 데이터를 복사해야 하기 때문에 위 이미지처럼 표의 데이터를 드래그 해서 복사를 합니다.
이걸 엑셀에 가져다 붙여넣고 .csv 파일로 저장하는거죠!
​
![엑셀편집](https://s14.postimg.org/tbxkqtbqp/predict_R_07.png)
​
엑셀에다 붙여넣은 뒤 ①날짜표시 방식을 'YYYY-MM-DD'로 바꿔주고 ②날짜와 종가만 남기고 컬럼을 지웁니다.
③날짜 오름차순 정렬을 해서 ④csv 파일 형식으로 저장합니다.
​
![텍스트편집](https://s14.postimg.org/co62oboox/predict_R_08.png)
​
이 csv 파일을 메모장에서 열어서 위와 같이 첫 번째 줄에 컬럼명으로 `"ds","y"` 라고 입력해 주고 저장합니다.
(이 부분은 아시는 분들은 바꾸시면 됩니다. 편의를 위해 그냥 이렇게 했습니다.)
​
## 6. 데이터 로드 및 부분 실행 시켜보기
​
![부분실행](https://s14.postimg.org/hzkz92dch/predict_R_09.png)
​
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일 이후의 예상치이므로 여러분들이 임의로 바꿔서 넣으실 수 있습니다.
​
그러면 다음과 같이 아래쪽 콘솔 창에 나타나게 됩니다.
​
![결과](https://s14.postimg.org/4vfewe0q9/predict_R_10.png)
​
이 결과에 따르면 2018년 4월 1일의 스팀 달러 가격은 12.22 달러 정도로 예상하고, 낮다면 10.68 이고 높다면 13.82 정도가 될 것으로 예상합니다.
​
## 7. 그래프로 결과 보기
​
`plot(m, forecast)`
​
위 명령어를 실행시키면 다음과 같이 그래프로 예상되는 추세를 확인할 수 있습니다.
​​
![그래프결과](https://s14.postimg.org/wis4agyrl/predict_R_11.png)
​
그리고 다음 명령어로 조금 더 분석이 가능합니다.
​
`prophet_plot_components(m, forecast)`
​
![분석그래프](https://s14.postimg.org/6agzl3u3l/predict_R_12.png)
​
이 분석에 따르면 주로 일요일과 월요일에 상승 추세가 있어왔고, 수요일과 금요일에 제법 하락하는 패턴이었던 것으로 나타납니다.
자, 그러면 매도시에는 월요일에 매도 하시면 괜찮지 않을까..라고 혼자 중얼거려 봅니다. ㅎ
​
중간중간 명령어에 대한 설명은 따로 자세히 드리진 않았지만,
이렇게 직접 해보시는 것만으로 이미 데이터 분석 전문가(?)가 된 것 같지 않으세요?!

![야야님_mastertri_new](https://steemitimages.com/0x0/https://i.imgur.com/eDdWv6x.png)
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,