の続きです。
今回はSPDR S&P 500 ETFのリターンを、ただのguessで予測してみます。
ます、dfをトレーニング用とテスト用の2つのデータフレームにわけます。
半々にわけようと思いましたので、n <- round(nrow(df)*0.5)でnをdfの行数の半分にしました。
set.seed関数で乱数発生のseedをセットします。
sample関数でランダムにdfの行数の中からn個の行数を抜き出します。
そして、df_trainとdf_testという2つのデータフレームを作りました。
リターンの値そのものを予測するのは難しそうですので、今回は、プラスだった1、マイナスだったら0の2値変数に変換します。
それぞれの平均値、つまり1の割合をみてみます。
trainのほうは0.5727, testのほうは0.5698です。p値は0.9239ですので両者に違いがあるとは言えませんね。
すべての週でプラス、と予測していれば正解率は0.5698になる、ということです。
この0.5698をどれだけ超えられるかがポイントです。
guess, つまりあてずっぽうで予測してみます。
df_trainのデータを使って、df_testのSPYを予測しますから、はじめにdf_trainのSPYの1の確率を求めます。
sample関数で0, 1と0が1-p, 1がpの確率になるようにでたらめにdf_testのSPYの数だけとりだします。
さあ、正解率がどれほどか見てみましょう。
正しく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よりも良いとは言えません。
正解率をベクトルに格納しておきます。
今回は以上です。
次回は、
です。
はじめから読むには、
です。