R

urcaパッケージを使用した定常性検定 〜 続編

前回「urcaパッケージを使用した定常性検定」の続き。今回はTOPIXのリターンについて、リターンの分布を調べる。 ※)ちなみに、以前のエントリー「Rで確率・統計の中級 〜 株価の分布」では(TOPIXではないが)価格の分布を調べた。その時、価格分布は非定常…

urcaパッケージを使用した定常性検定

urcaパッケージについては、マニュアル参照。 ざっとコードを追って、補足は追々後日しておく。 > getSymbols('YJ2489.T', src='yahooj') # アドウェイズの株価取得 [1] "YJ2489.T" > head(YJ2489.T) # 株価確認 YJ2489.T.Open YJ2489.T.High YJ2489.T.Low Y…

Rで確率・統計の中級 〜 株価の分布

価格分布を描く。 > T6758_AdjClose<-T6758$YJ6758.T.Adjusted > head(T6758_AdjClose) YJ6758.T.Adjusted 1983-01-04 1586.36 1983-01-05 1595.45 1983-01-06 1577.27 1983-01-07 1590.91 1983-01-08 1581.82 1983-01-10 1563.64 > T6758_MeanAdjClose<-mea…

Rで確率・統計の基礎2 〜 中心極限定理

前回「Rで確率・統計の基礎1 〜 母集団と標本」の続き。前回とは異なり、常に10個の抽出を行って平均を取得し、それらをリストmean_listに入れる。 そのヒストグラムを描き、Xの平均を縦線で追加で描く。 > mean_list<-list() > for(i in 1:10000){ + mean_…

Rで確率・統計の基礎1 〜 母集団と標本

乱数を生成してヒストグラムを描き、その上に平均値を縦線で描く。 ほぼ教科書通り。 > set.seed(100) > X <- rnorm(1000000, mean = 2.33, sd = 0.5) > mu <- mean(X) > sd <- sd(X) > hist(X, breaks=100) > abline(v=mu, lwd =3, lty =1) set.seed(引数)…

ggplot2でグラフ作成

前回は「quantmodでグラフ作成」だったが、今回はggplot2を使用する。データの確認。 > head(T6758) YJ6758.T.Open YJ6758.T.High YJ6758.T.Low YJ6758.T.Close YJ6758.T.Volume YJ6758.T.Adjusted 1983-01-04 1755 1770 1745 1745 309800 1586.36 1983-01-0…

quantmodでグラフ作成

前回「quantmodで株価データ取得」で取得したデータ「T6758」を使用したグラフを描いてみる。使用する関数はchartSeries。Rのプロンプトで「?chartSeries」と入力するとブラウザでAPIの仕様を読むことができる。 下記のようなもので、一部引用した。 Descrip…

quantmodで株価データ取得

米株データ取得がデフォルトだけど、src="yahooj"とすれば日本株データも取得可能。早速エラーだったが、パッケージが無かっただけ。 > getSymbols('6758.T', src="yahooj") getSymbols.yahooj(Symbols = "6758.T", env = <environment>, verbose = FALSE, でエラー: pack</environment>…

RからMySQL接続1 〜 RMySQL

ソース。 > install.packages("RMySQL") > require(RMySQL) > conn<-dbConnect(MySQL(), user="ユーザ名", password="パスワード", dbname="r", host="ホスト名/IPアドレス") > dbList<-dbListTables(conn) > class(dbList) [1] "character" > sql_command<-…

Excelファイルからデータを取り出す/データを書き込むパッケージ 〜 XLConnect

パッケージ「XLConnect」をインストールして、次のように使えばいい。 > install.packages("XLConnect") 警告: package ‘XLConnect’ is in use and will not be installed > library("XLConnect") > orderBook<-loadWorkbook("order.xlsx") > signals=readWo…

Yahoo Finance Americaから株価を取得してグラフにする

Yahoo Finance Americaから株価を取得してグラフにする。 取得した株価の銘柄は「The Bank of New York Mellon Corporation (BK)」。データはこんな感じのCSV。 Date Open High Low Close Volume Adj Close 2016/1/4 40.290001 40.290001 39.48 39.970001 74…

RStudioでグラフがかけない。

Rでは、ちょろっとグラフを書いてみたり、概要を把握するためにちょろっと計算したりするためだけに使用しているので、IDEも便利なエディタも特に不要だったけど、RStudio使おうかなと思った。それで、簡単なグラフをかいてみようとしたけど、グラフが出力さ…

R関数メモ

適宜、Rの関数をメモするためのエントリー。■%in% ベクトルvec1の中でベクトルvec2にも入っている要素を確認する関数 > vec1<-c(1,3,6,9,3.4) > vec2<-c(0,3,5,9,4) > vec1 %in% vec2 [1] FALSE TRUE FALSE TRUE FALSE■complete.cases 行ごとにNAがある場合…

Rの関数いくつか

今日は規則性の無いデータに無闇に関数を作用させるだけの話。 なので、内容が無いよーうです。 > setwd("D:\\100_work\\data") > data<-read.csv("data.csv") > head(data) No Date One Two Three Four Five Six Option 1 1 2000/10/5 2 8 10 13 27 30 39 2…

とあるデータのスペクトル解析

結論から言うと、今回は「やりたいことが実現できなーい。どうすればいいのか分からん!」という話。 なので、読んでもいいことないです。いつも以上に単なる備忘録です。さてさて、今回はこんなデータ。 CSVを読み込んでtsに変換。 jniv<-read.csv("データ.…

履歴〜2015年11月22日にSTLを施して2週間後

2015年11月22日に掲載した「Rで周波数解析や成分分解」で、周期240と周期80でSTLを実行した。それから凡そ2週間経過したので、再度解析した結果を載せておく。データは直近の2015年12月7日まで。◎周期80での結果 前回のエントリーでは、周期80の結果を見て次…

続 〜 周期変動部分の分解

「Rで周波数解析や成分分解」や「RでstatsパッケージのSTLによる結果から周期変動部分、トレンド部分、残差部分を取り出す」で取り扱ったことを違うデータでやってみる。データは「2つのデータの相関、ccfなど」で使った、fdataとvi。まずはviについて。 >vi…

2つのデータの相関、ccfなど

今回扱うのは次の2つのデータ。tdataのグラフ。 viのグラフ。 期間は2006/1/6〜2015/11/20のデータ。相関。 > cor(tdata,vi) [1] -0.3088769 CCF。 > ccf(tdata,vi) 次に、tdataを次のfdataと置き換える。 相関。 > cor(fdata.close.ts,vi) [1] -0.3742764 C…

Rでパーセンタイルを求める

ある時系列xのパーセンタイルを求めたい。 quantile関数を使用すれば良い。次のようなデータを使用する。 > summary(x) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.233 36.030 49.950 50.110 64.430 99.490 パーセンタイルを求める。 > quantile(x,c(0,0.1,0.…

RでstatsパッケージのSTLによる結果から周期変動部分、トレンド部分、残差部分を取り出す

前回「Rで周波数解析や成分分解」で、データにSTLを作用させてその結果から今後3ヶ月のシナリオを考えた。 その時思ったことだが、周期変動部分と残差部分の動きが似ている気がした。 そこで、それら2つの相関を計算しようと思ったが、stlの結果から各要素の…

Rで周波数解析や成分分解

今回は、まずこんなデータを考えてみる。 期間は2006/1/4〜2015/11/20。Rのspec.pgramを使用してピリオドグラムを求める。 spec.pgramはデフォルトでは対数グラフを作成するが、今回は対数化は行わないので、log="no"を指定する。 > spec.pgram(y,log="no") …

Rでar関数や残差分析などの復習 〜 続き

前回「Rでar関数や残差分析などの復習」の続き。 今回は、元データを前半と後半に分けて、前半のデータから後半のデータを予測してみる。 > f1min_20151112_Day_0900_1230<-read.csv("f1min_20151112_Day_0900_1230.csv") > f1min_20151112_Day_0900_1230.cl…

Rでar関数や残差分析などの復習

前回「Rのts.arima関数を使ってみる」を書いてから、5日経過。 すでに色んなことを忘れているwww。1日開けば殆ど忘れます。SE的にすべきことが多いので。今回は、まずRの使い方の復習から。 >setwd("D:\\dev\\DataAnalysis\\Data") >f1min_20151112_Day<-…

Rのts.arima関数を使ってみる

今回の目的は、Rの使い方に慣れる・Rの使い方思い出すこと。 従って、適切なモデリングかどうかといったことは気にしない。 1.CSVからデータを読み込む 2.時系列データへ変換する 3.とりあえず、ts.arimaを使用してみる 4.とりあえず、ts.arimaで推…

頭のリフレッシュ 〜 時系列分析3

前回「頭のリフレッシュ 〜 時系列分析2」では、相互相関で遊んでみた。今回はその時扱ったデータの差分について考えてみる。 Rでプロットするとこんな感じ。なんだか周期的に、-50くらいへ下振れするようなので、周期性を調べてみる。 次の加法モデルを仮…

頭のリフレッシュ 〜 時系列分析2

前回「頭のリフレッシュ 〜 時系列分析1」の続き。前回は1つの時系列データについて、自己相関係数とコレログラムを作ってみた。 今回は2つの時系列データについて考えてみる。とりあえずRでCSVのデータを書いてみた。 見づらいが、気にしないd(´∪`○)…

頭のリフレッシュ 〜 時系列分析1

ここ1年、システムの仕事ばかりしている。しかも、運用・保守が殆ど。 使わない知識は自ずと忘れていく。そこで息抜きに時系列分析について非常に簡単に整理しておく。 難しいことには触れないので、レベルは高校3年生〜大学1年生といったところ。 下図は…

【R】行列の各横ベクトルの階差を計算した行列を求める

目的は、次の図のように、行列の各行ベクトルの要素ごとの階差を要素に持つ行列を求めること(列ベクトル同士で階差をとったもの)。 結論から述べると、次の①、②、③を実施すると良い。 ①行列の転置を求める(関数tを使用する) ②列ベクトル同士の階差を求める…

【R】行列の各列ベクトルを1つの時系列データとみなしてグラフを描く

データは次のようなデータ。 > head(random.csum) X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 3 2 1 0 0 1 0 0 1 1 1 0 0 1 0…

【R】グラフの重ねあわせ

データをCSVから読み込む。 > random.csum<-read.csv("data.csv") データを確認する。 > head(random.csum) X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 0 1 1…