crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

SPDR S&P 500 ETFのリターンをセクターSPDR ETFのリターンで分析する4 - ただのあてずっぽうでリターンを予測してみる。

 

www.crosshyou.info

 の続きです。

今回はSPDR S&P 500 ETFのリターンを、ただのguessで予測してみます。

ます、dfをトレーニング用とテスト用の2つのデータフレームにわけます。

f:id:cross_hyou:20210327161915p:plain

半々にわけようと思いましたので、n <- round(nrow(df)*0.5)でnをdfの行数の半分にしました。

set.seed関数で乱数発生のseedをセットします。

sample関数でランダムにdfの行数の中からn個の行数を抜き出します。

そして、df_trainとdf_testという2つのデータフレームを作りました。

リターンの値そのものを予測するのは難しそうですので、今回は、プラスだった1、マイナスだったら0の2値変数に変換します。

f:id:cross_hyou:20210327162416p:plain

それぞれの平均値、つまり1の割合をみてみます。

f:id:cross_hyou:20210327162541p:plain

trainのほうは0.5727, testのほうは0.5698です。p値は0.9239ですので両者に違いがあるとは言えませんね。

すべての週でプラス、と予測していれば正解率は0.5698になる、ということです。

この0.5698をどれだけ超えられるかがポイントです。

guess, つまりあてずっぽうで予測してみます。

f:id:cross_hyou:20210327163022p:plain

df_trainのデータを使って、df_testのSPYを予測しますから、はじめにdf_trainのSPYの1の確率を求めます。

f:id:cross_hyou:20210327163203p:plain

sample関数で0, 1と0が1-p, 1がpの確率になるようにでたらめにdf_testのSPYの数だけとりだします。

さあ、正解率がどれほどか見てみましょう。

f:id:cross_hyou:20210327163444p:plain

正しく0を予測したのが112、正しく1を予測したのが191です。

正解率は(112+191)/(112+191+125+123)=0.5499です。

No Information Rateの0.5699がすべて、1と予測したときの正解率ですから、それより低いです。

P-Value[ACC > NIR] が0.8388と0.05よりも大きいですから、Accuracy(正解率)がNo Information Rateよりも良いとは言えません。

正解率をベクトルに格納しておきます。

f:id:cross_hyou:20210327164628p:plain

今回は以上です。

次回は、

 

www.crosshyou.info

 です。

 

はじめから読むには、

 

www.crosshyou.info

 です。