Twitter提供のRパッケージ{AnomalyDetection}で日経平均株価の異常検知
データセット
日経平均株価のデータは、以下のサイトからダウンロードしました。2007年以降のデータをダウンロードし、結合して一つのcsvファイルを作ります。
http://k-db.com/indices/I101/1h
日付の列の処理
ダウンロード時点では"2007/01/01"のような形式で日付が入っていました。
rで日付を処理するには、決まった形式になっている方が都合が良さそうだったので、この時点でExcelの機能で整形しました。
パッケージのインストール
install.packages("devtools") devtools::install_github("twitter/AnomalyDetection") library(AnomalyDetection)
実行
パッケージとデータセットの読み込み
library(AnomalyDetection) df = read.csv("nikkei_index.csv") data = data.frame(as.POSIXlt(df[,1]),df[,4]) # 終値を利用 plot(data, xlab = "date", ylab = "ending price")
異常検知
res <- AnomalyDetectionTs(data, max_anoms=0.02, direction='both', plot=TRUE) res
本来ならば、$anomsに異常と判定された行が抽出されるのですが、今回は全て異常ではないという判定だったようです。
確かにプロット結果を見ても、ある程度自然な推移のようにも捉えられます。