일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MongoDB
- 빅 데이터
- No SQL
- 김양재 목사
- openCV
- 데이터 과학
- 우리들교회
- R
- Deep learning
- WebGL
- 몽고디비
- 빅 데이타
- Statistics
- data science
- node.js
- probability
- 확률
- Big Data
- Artificial Intelligence
- 딥러닝
- 빅데이타
- 인공지능
- 빅데이터
- nodeJS
- 김양재 목사님
- 김양재
- 통계
- 주일설교
- Machine Learning
- c++
- Today
- Total
Scientific Computing & Data Science
[Data Science / Data Visualization] Moving Average 본문
[Data Science / Data Visualization] Moving Average
cinema4dr12 2015. 11. 21. 13:58이번 글에서는 Big Data와 직접적인 관련은 없지만 Fluctuation이 심한 데이터에 대한 경향을 살펴보는 기법 중 하나인 Moving Average에 대하여 알아본다.
Moving Average에는 Simple Moving Average, Accumulative Moving Average, Weighted Moving Average, Modified Moving Average, Exponential Moving Average 등이 있으며, 이 중 가장 간단한 Simple Moving Average를 다루기로 한다.
Theory & Algorithm
Simple Moving Average의 알고리즘은 매우 간단하다. n개의 데이터 윈도우사이즈(Window Size)에 대하여,
최초 i개의 데이터 개수가 n개 보다 작을 경우 i개에 대한 평균을 구한다.
만약 현재의 데이터 개수 i가 n보다 큰 경우 현재부터 이전 n개까지의 데이터에 대한 평균을 구한다.
즉,
Example
이제 간단한 코드를 통해 Moving Average를 알아보자. 우선 데이터가 필요한데 Yahoo 주가 History 데이터를 이용해 보자.
Yahoo 주가가 공개된 사이트를 방문한다: http://finance.yahoo.com/q/hp?s=YHOO
사이트의 맨 아래에 보면 Download to Spreadsheet 버튼을 클릭하여 오늘 날짜까지의 데이터(CSV 포맷)를 다운받을 수 있다. 이 글을 작성한 날짜를 기준으로 본 예제에 사용된 데이터를 다운받을 수 있다.
데이터를 보면 Date(날짜), Open(개장 시), Low(최저), High(최고), Close(폐장 시) 등등에 대한 정보를 알 수 있다.
이 중 개장 시의 데이터를 활용해 보고자 한다.
R 소스는 다음과 같다:
R CODE:
아래 이미지들은 원본 데이터와 Moving Average로 계산된 결과를 plot한 것이다.
Window Size가 증가함에 따라 곡선은 점점 부드러워지지만 원본 데이터와 차이가 점점 커짐을 알 수 있다.
[Window Size = 10]
[Window Size = 50]
[Window Size = 100]
[Window Size = 200]
[Window Size = 500]
[Window Size = 1000]
'Data Science > Data Visualisation' 카테고리의 다른 글
[Data Science / Data Visualization] 데이터 시각화, 보이는 작업량은 빙산의 일각 (0) | 2016.10.29 |
---|---|
[Data Visualisation] CanvasJS 소개 (0) | 2015.09.28 |
[Data Visualisation] rCharts / rPlot (0) | 2014.12.28 |