2015年05月06日
COURSERAのクラス進捗 5/6/2015
現在、COURSERAでシステムトレード開発に活かせそうな以下のクラスを受講している。
”Introduction of Programming with MATLAB”はWeek6まで終了。Week7が始まるのを待っているところ。”Computational Neuroscience”と”Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship”はWeek1まで終了。
特にR関係の勉強を進めていて、”Regression Models”はWeek2までビデオ視聴のみ終了、”Practical Machine Learning”をWeek4までビデオ視聴のみ終了。順次受講を進めていく。
”Practical Machine Learning”は全てのビデオを視聴したが、まだ理解がいまいち。QUIZを解きながら復習して理解を深めるつもり。機械学習の応用例として分類に関するものが多く紹介されている。これはマーケットの状態が”上昇局面”なのか”下降局面”なのか、判定することなどに使えるかも?株価などの時系列データの予測に関する例はWeek4で少し紹介されている。コードは以下の通り。Quantmodは株価などの解析に使えるパッケージのようだ。これもいろいろ使えそうなので、もう少し調べてみよう。またforecastパッケージは名前の通り、予測用のものか。
library(quantmod)
library(forecast)
from.dat <- as.Date("01/01/08", format="%m/%d/%y")
to.dat <- as.Date("12/31/13", format="%m/%d/%y")
getSymbols("IBM",src="google",from = from.dat, to=to.dat)
head(IBM)
mIBM <- to.monthly(IBM)
ibmOpen <- Op(mIBM)
ts1 <- ts(ibmOpen,frequency=12)
plot(ts1,xlab="Years+1",ylab="IBM")
plot(decompose(ts1),xlab="Years+1")
decompose(ts1)
ts1Train <- window(ts1,start=1,end=5)
ts1Test <- window(ts1,start=5,end=(7-0.01))
ts1Train
plot(ts1Train)
lines(ma(ts1Train,order=3),col="red")
ets1 <- ets(ts1Train,model="MMM")
fcast <- forecast(ets1)
plot(fcast); lines(ts1Test,col="red")
accuracy(fcast,ts1Test)
クラスではグーグル(GOOG)の株価が使われているが、以下のエラーがでるので銘柄をIBMに変更した。
Error in `index<-.xts`(`*tmp*`, value = integer(0)) :
unsupported 'index' index type of class 'integer'
In addition: Warning message:
In to.period(x, "months", indexAt = indexAt, name = name, ...) :
missing values removed from data
実行していくと、
> head(IBM)
IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume
2008-01-02 108.99 108.99 104.17 104.69 9503410
2008-01-03 104.83 105.57 103.98 104.90 7529206
2008-01-04 103.95 103.95 100.48 101.13 11034849
2008-01-07 100.25 101.00 99.03 100.05 12650525
2008-01-08 100.05 100.38 97.17 97.59 9434330
2008-01-09 97.76 99.15 97.16 98.31 10922994
問題なく株価が取得できていて、decompose関数で株価をseasonal、trend、randなどの要因に分解する。
> decompose(ts1)
$x
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 108.99 107.16 113.86 115.20 121.06 128.49 117.50 128.52 122.87 115.51 92.64 80.95
2 83.89 90.60 91.17 96.13 103.78 106.94 105.00 118.88 117.67 119.39 120.77 127.29
3 131.18 123.23 127.50 128.95 129.39 124.69 123.55 129.25 125.31 135.51 143.64 143.61
4 147.21 162.11 163.15 163.70 172.11 168.90 171.61 182.60 172.71 174.36 181.55 187.01
5 186.73 193.21 197.23 208.96 207.18 190.12 196.36 196.96 196.61 208.01 194.68 190.76
6 194.09 204.65 200.65 212.80 201.87 208.25 192.15 196.65 183.63 185.34 179.81 179.46
$seasonal
Jan Feb Mar Apr May Jun Jul Aug Sep
1 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
2 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
3 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
4 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
5 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
6 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
Oct Nov Dec
1 1.3195556 -4.0671944 -6.1372778
2 1.3195556 -4.0671944 -6.1372778
3 1.3195556 -4.0671944 -6.1372778
4 1.3195556 -4.0671944 -6.1372778
5 1.3195556 -4.0671944 -6.1372778
6 1.3195556 -4.0671944 -6.1372778
$trend
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 NA NA NA NA NA NA 111.6833 109.9475 108.3121 106.5721 105.0575 103.4396
2 102.0208 101.0983 100.4800 100.4250 101.7587 104.8617 108.7629 112.0929 114.9663 117.8475 120.2821 122.0887
3 123.6012 124.8062 125.5567 126.5467 128.1712 129.8042 131.1521 133.4400 136.5454 139.4787 142.7067 146.3287
4 150.1733 154.3987 158.5967 162.1904 165.3888 168.7767 172.2317 175.1742 177.8900 181.1958 184.5429 186.8883
5 188.8038 190.4333 192.0275 194.4254 196.3746 197.0779 197.5408 198.3242 198.9433 199.2458 199.1846 199.7188
6 200.2987 200.1104 199.5567 198.0712 196.5071 195.4167 NA NA NA NA NA NA
$random
Jan Feb Mar Apr May Jun Jul Aug Sep
1 NA NA NA NA NA NA 7.6552778 13.4946944 15.2237778
2 -13.4028056 -10.7204722 -9.6380556 -9.7028056 -2.8362222 1.8541944 -1.9243056 1.7092778 3.3696111
3 12.3067778 -1.7983889 1.6152778 -3.0044722 -3.6387222 -5.3383056 -5.7634722 -9.2678056 -10.5695556
4 1.7646944 7.4891111 4.2252778 -3.8982222 1.8637778 -0.1008056 1.2169444 2.3480278 -4.5141389
5 2.6542778 2.5545278 4.8744444 9.1267778 5.9479444 -7.1820556 0.6577778 -6.4419722 -1.6674722
6 -1.4807222 4.3174444 0.7652778 9.3209444 0.5054444 12.6091944 NA NA NA
Oct Nov Dec
1 7.6183611 -8.3503056 -16.3523056
2 0.2229444 4.5551111 11.3385278
3 -5.2883056 5.0005278 3.4185278
4 -8.1553889 1.0742778 6.2589444
5 7.4446111 -0.4373889 -2.8214722
6 NA NA NA
$figure
[1] -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
[10] 1.3195556 -4.0671944 -6.1372778
$type
[1] "additive"
attr(,"class")
[1] "decomposed.ts"
これがRを使った1つの時系列データの予測方法と言えそうだ。
参考情報として紹介されているURL
http://www.google.com/trends/correlate
http://www.newscientist.com/blogs/onepercent/2011/05/google-correlate-passes-our-we.html
http://www.otexts.org/fpp/6/1
http://www.otexts.org/fpp/7/6
そして以下の書籍がRを使った時系列データの予測方法を勉強するのに良さそうだ。今後入手して、システム開発に活かす予定。
Forecasting:principles and practices
また株価関係のquantmodとquandlパッケージに関しても調査しておきたい。
- Introduction of Programming with MATLAB
- Computational Neuroscience
- Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship
- R Programming
- Developing Data Products
- Reproducible Research
- Statistical Inference
- Practical Machine Learning
- Regression Models
”Introduction of Programming with MATLAB”はWeek6まで終了。Week7が始まるのを待っているところ。”Computational Neuroscience”と”Developing Innovative Ideas for New Companies: The First Step in Entrepreneurship”はWeek1まで終了。
特にR関係の勉強を進めていて、”Regression Models”はWeek2までビデオ視聴のみ終了、”Practical Machine Learning”をWeek4までビデオ視聴のみ終了。順次受講を進めていく。
”Practical Machine Learning”は全てのビデオを視聴したが、まだ理解がいまいち。QUIZを解きながら復習して理解を深めるつもり。機械学習の応用例として分類に関するものが多く紹介されている。これはマーケットの状態が”上昇局面”なのか”下降局面”なのか、判定することなどに使えるかも?株価などの時系列データの予測に関する例はWeek4で少し紹介されている。コードは以下の通り。Quantmodは株価などの解析に使えるパッケージのようだ。これもいろいろ使えそうなので、もう少し調べてみよう。またforecastパッケージは名前の通り、予測用のものか。
library(quantmod)
library(forecast)
from.dat <- as.Date("01/01/08", format="%m/%d/%y")
to.dat <- as.Date("12/31/13", format="%m/%d/%y")
getSymbols("IBM",src="google",from = from.dat, to=to.dat)
head(IBM)
mIBM <- to.monthly(IBM)
ibmOpen <- Op(mIBM)
ts1 <- ts(ibmOpen,frequency=12)
plot(ts1,xlab="Years+1",ylab="IBM")
plot(decompose(ts1),xlab="Years+1")
decompose(ts1)
ts1Train <- window(ts1,start=1,end=5)
ts1Test <- window(ts1,start=5,end=(7-0.01))
ts1Train
plot(ts1Train)
lines(ma(ts1Train,order=3),col="red")
ets1 <- ets(ts1Train,model="MMM")
fcast <- forecast(ets1)
plot(fcast); lines(ts1Test,col="red")
accuracy(fcast,ts1Test)
クラスではグーグル(GOOG)の株価が使われているが、以下のエラーがでるので銘柄をIBMに変更した。
Error in `index<-.xts`(`*tmp*`, value = integer(0)) :
unsupported 'index' index type of class 'integer'
In addition: Warning message:
In to.period(x, "months", indexAt = indexAt, name = name, ...) :
missing values removed from data
実行していくと、
> head(IBM)
IBM.Open IBM.High IBM.Low IBM.Close IBM.Volume
2008-01-02 108.99 108.99 104.17 104.69 9503410
2008-01-03 104.83 105.57 103.98 104.90 7529206
2008-01-04 103.95 103.95 100.48 101.13 11034849
2008-01-07 100.25 101.00 99.03 100.05 12650525
2008-01-08 100.05 100.38 97.17 97.59 9434330
2008-01-09 97.76 99.15 97.16 98.31 10922994
問題なく株価が取得できていて、decompose関数で株価をseasonal、trend、randなどの要因に分解する。
> decompose(ts1)
$x
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 108.99 107.16 113.86 115.20 121.06 128.49 117.50 128.52 122.87 115.51 92.64 80.95
2 83.89 90.60 91.17 96.13 103.78 106.94 105.00 118.88 117.67 119.39 120.77 127.29
3 131.18 123.23 127.50 128.95 129.39 124.69 123.55 129.25 125.31 135.51 143.64 143.61
4 147.21 162.11 163.15 163.70 172.11 168.90 171.61 182.60 172.71 174.36 181.55 187.01
5 186.73 193.21 197.23 208.96 207.18 190.12 196.36 196.96 196.61 208.01 194.68 190.76
6 194.09 204.65 200.65 212.80 201.87 208.25 192.15 196.65 183.63 185.34 179.81 179.46
$seasonal
Jan Feb Mar Apr May Jun Jul Aug Sep
1 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
2 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
3 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
4 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
5 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
6 -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
Oct Nov Dec
1 1.3195556 -4.0671944 -6.1372778
2 1.3195556 -4.0671944 -6.1372778
3 1.3195556 -4.0671944 -6.1372778
4 1.3195556 -4.0671944 -6.1372778
5 1.3195556 -4.0671944 -6.1372778
6 1.3195556 -4.0671944 -6.1372778
$trend
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 NA NA NA NA NA NA 111.6833 109.9475 108.3121 106.5721 105.0575 103.4396
2 102.0208 101.0983 100.4800 100.4250 101.7587 104.8617 108.7629 112.0929 114.9663 117.8475 120.2821 122.0887
3 123.6012 124.8062 125.5567 126.5467 128.1712 129.8042 131.1521 133.4400 136.5454 139.4787 142.7067 146.3287
4 150.1733 154.3987 158.5967 162.1904 165.3888 168.7767 172.2317 175.1742 177.8900 181.1958 184.5429 186.8883
5 188.8038 190.4333 192.0275 194.4254 196.3746 197.0779 197.5408 198.3242 198.9433 199.2458 199.1846 199.7188
6 200.2987 200.1104 199.5567 198.0712 196.5071 195.4167 NA NA NA NA NA NA
$random
Jan Feb Mar Apr May Jun Jul Aug Sep
1 NA NA NA NA NA NA 7.6552778 13.4946944 15.2237778
2 -13.4028056 -10.7204722 -9.6380556 -9.7028056 -2.8362222 1.8541944 -1.9243056 1.7092778 3.3696111
3 12.3067778 -1.7983889 1.6152778 -3.0044722 -3.6387222 -5.3383056 -5.7634722 -9.2678056 -10.5695556
4 1.7646944 7.4891111 4.2252778 -3.8982222 1.8637778 -0.1008056 1.2169444 2.3480278 -4.5141389
5 2.6542778 2.5545278 4.8744444 9.1267778 5.9479444 -7.1820556 0.6577778 -6.4419722 -1.6674722
6 -1.4807222 4.3174444 0.7652778 9.3209444 0.5054444 12.6091944 NA NA NA
Oct Nov Dec
1 7.6183611 -8.3503056 -16.3523056
2 0.2229444 4.5551111 11.3385278
3 -5.2883056 5.0005278 3.4185278
4 -8.1553889 1.0742778 6.2589444
5 7.4446111 -0.4373889 -2.8214722
6 NA NA NA
$figure
[1] -4.7280278 0.2221389 0.3280556 5.4078056 4.8574722 0.2241389 -1.8386111 5.0778056 -0.6658611
[10] 1.3195556 -4.0671944 -6.1372778
$type
[1] "additive"
attr(,"class")
[1] "decomposed.ts"
これがRを使った1つの時系列データの予測方法と言えそうだ。
参考情報として紹介されているURL
http://www.google.com/trends/correlate
http://www.newscientist.com/blogs/onepercent/2011/05/google-correlate-passes-our-we.html
http://www.otexts.org/fpp/6/1
http://www.otexts.org/fpp/7/6
そして以下の書籍がRを使った時系列データの予測方法を勉強するのに良さそうだ。今後入手して、システム開発に活かす予定。
Forecasting:principles and practices
また株価関係のquantmodとquandlパッケージに関しても調査しておきたい。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/3626282
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック