Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

東証の業種別空売りデータの分析3 - R言語でVarianceを調べる。F test、標準誤差、信頼区間、Bootstrap

 

www.crosshyou.info

 の続きです。

今回は各データのVariance(分散)を調べてみます。

まずは、規制有りのVarianceと規制無しのVarianceを調べてみます。

f:id:cross_hyou:20200620091549j:plain

var関数でVarianceはわかります。規制有りのVarianceは33.4、規制無しのVarianceは4.87です。かなり違いますね。この違いが統計的に有意に違うのか、F testをします。

はじめに、両者のVarianceの比を算出します。

f:id:cross_hyou:20200620091824j:plain

6.86です。両者のVarianceが同じだったら、この値は1になるはずです。なので、本当は1になるはずのこのF_Ratioが6.86になる確率をpf関数で求めます。

f:id:cross_hyou:20200620092042j:plain

確率は4.244034e-07です。0.0000004244034です。0.000042%です。確率的にはとっても低いですから、規制有りのVarianceと規制無しのVarianceは違いがあると言えます。

var.test関数でいままでの作業を1行のコードで実行できます。

f:id:cross_hyou:20200620092702j:plain

p-valueの値、ratio of variancesの値が一致しています。

つぎに、前日比のVarianceを調べましょう。

f:id:cross_hyou:20200620093015j:plain

0.295です。

このVarianceは何に使うのでしょうか?平均値がどのくらい確からしいかを見る標準誤差と信頼区間を計算するのに使います。

標準誤差(Standard Error)は、sqrt(Variance / n)で計算できます。nはデータの数です。

前日比の標準誤差を計算してみましょう。

f:id:cross_hyou:20200620093541j:plain

標準誤差は0.0945873とわかりました。

前日比の平均値も計算しましょう。

f:id:cross_hyou:20200620093904j:plain

この平均値を標準誤差を使って表現すると、

前日比の平均値は、-1.320909 ± 0.09454873(1 s.e., n = 33) と表現できます。

グラフにしてみましょう。

f:id:cross_hyou:20200620094504j:plain

f:id:cross_hyou:20200620094518j:plain

赤い水平線が平均値で、上下の青い水平線が ± 1標準誤差の水準です。

続いて、信頼区間を計算します。

信頼区間は、t-value * standard error です。

95%の信頼区間ならば、t(α = 0.025, d.f.) x 標準誤差 です。

α = 0.025のt-valueはqt(0.975, d.f.)で計算できます。

f:id:cross_hyou:20200620095151j:plain

平均値を信頼区間を使って表現すると、

前日比の平均値は、-1.320909 ± 0.1925895(95% CI, n = 33) と表現できます。

これもplot関数、abline関数で視覚化しましょう。

f:id:cross_hyou:20200620095900j:plain

f:id:cross_hyou:20200620095919j:plain

真の平均値は95%の確率で緑の水平線の中に存在します。

 

信頼区間の計算方法には、まったく違うBootstrapという方法があります。

前日比の33個のデータからある個数のデータを取り出して平均値を計算します。

これを1万回など多くの回数を繰り返して、その1万個の平均値の2.5パーセンタイル、97.5パーセンタイルの値を信頼区間にする方法です。

やってみましょう。

f:id:cross_hyou:20200620101050j:plain

33個の前日比の中から重複有りで30個のデータを取り出して平均値を計算します。これを1万回繰り返しました。1万回の平均値の平均値は-1.322022となりました。33個の前日比の平均値は-1.3220909なのでかなり近いですね。

hist関数でaverageの分布形状をみてみます。

f:id:cross_hyou:20200620101456j:plain

f:id:cross_hyou:20200620101510j:plain

2.5パーセンタイル、97.5パーセンタイルの値を調べるのはquantile関数です。

f:id:cross_hyou:20200620101952j:plain

標準誤差とqt関数から計算した信頼区間と比較してみましょう。

f:id:cross_hyou:20200620102939j:plain

f:id:cross_hyou:20200620102950j:plain

ほとんど同じですね。

実際の値も確認します。

f:id:cross_hyou:20200620103411j:plain

f:id:cross_hyou:20200620103628j:plain

Bootstrapで求めた信頼区間のほうが少し範囲が広いですね。

今回は以上です。

今回もMichael J. Crawley著 Statistics An introduction using R を参考にしました。