Rによる統計解析 日経平均先物その2
日経平均先物の分布について確認してみたいと思います
Black-Scholesモデルなど、株価のリターンの分布は対数正規分布と仮定されることが多いですが、実際はどのような分布になっているか調べてみます
今回は2010/6/21〜2016/6/21の日足データを使います
Macであれば楽天証券のMarketSpeedからデータをcsvで保存します
この中で、
> file <- file("NikkeiSakimono.csv", open="r", encoding="cp932") > data <- read.table(file, header=TRUE, sep=",")
ですがこのままだとデータがfactor型になってしまいます
factor型のままでは解析できません
> sapply(data,class) 日付 始値 高値 安値 終値 前日比 出来高 X5DMA "factor" "factor" "factor" "factor" "factor" "factor" "factor" "factor" X25DMA X75DMA X5DVMA X25DVMA X75DVMA "factor" "factor" "factor" "factor" "factor"
桁区切りを無くせばread.tableした時にnumeric型になってくれます
ということでExcelで桁区切りを一旦なくしてから再度読み込みました
あと日付のデータ型を日付型に変換します
> data$日付<-as.Date(data$日付)
株価のリターンとしては前日比を用いることにして、ヒストグラムをかきます
リターンは収益率にするべきでした
リターン=前日比/前日の終値
とします
> return <- data$前日比[-1]/data$終値[1:length(data$終値)-1]
[-1]で第1成分以外を指定し、[1:length(data$終値)-1]で最後の成分以外を指定します
リターンのヒストグラムは
> hist(return,main="Histogram of Return",xlab="return",freq=FALSE,breaks=50)
freq=FALSEとすることで縦軸を頻度ではなく確率密度にしています
breaksは分割数を指定しています
さて、パッと見正規分布に見えますがどうでしょう
> mu=mean(data$前日比) > sigma=sd(data$前日比) > curve(dnorm(x,mu,sigma),add=T)
dnorm(x,mu,sigma)で平均mu分散sigmaの正規分布を作ってヒストグラムに重ねてみます
これを見ると日経平均先物は正規分布と比べて端の方に分布が偏っているように見えます
実際、分散は0.0145くらいなので6σ程度まで分布が存在することになります
6σといえば1億分の1以下なので正規分布だとまあほぼほぼ出現しないはずですが、実際にはその辺まで現れます
暴騰暴落が起こりやすいということでその辺に気をつけないと死んでしまいそうです