Amazon QuickSightで米国株QQQを予測してみた

# はじめに
はじめまして、えだまめと申します。
昨年からAWSをはじめまして、そろそろアウトプットもしつつレベルアップしていきたいので筆をとりました。
どうぞよろしくお願いします。

さて皆さんAWS summit2023は行かれましたでしょうか？
私は業務都合で行くことが叶わなかったのですがライブ配信にて拝聴させていただきました。
中でも`AWS-08　Amazon QuickSightでBI環境を統合する`で紹介された`MLを使用した予測計算`について興味が沸いたため、この度は人気ETF「QQQ」において予測させてみました。

*※この記事は個人的な実験の記事です※*
*※予測値はあくまで参考で実際の取引における材料にしないことをおすすめします※*

# 目次
* 米国のYahoo!Financeからcsvファイルを入手
* S3bucketを作成
* csvファイルをアップロード
* マニフェストファイルを作成/アップロード
* QuickSightの有効化/アクセス設定
* S3からデータセットを取り込み
* データセットから分析を作成
* MLを使用した予測計算
* 予測値と実績値の比較

# csvファイルを入手
以下、米国のYahoo!Financeのリンクから取得します。
https://finance.yahoo.com/

検索ボックスで「QQQ」を検索し、historical Dataより期間指定の上でapply実行後にdownloadします。
ここではshowの説明については省略します。
![スクリーンショット 2023-04-22 22.45.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/1fa62dbf-e36f-3f22-8d98-c538df0dfd2b.png)

# S3bucketを作成
バケット名は任意のものを付与し、その他は全てデフォルトで作成します。
![スクリーンショット 2023-04-22 22.50.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/bfd8cec5-e781-591c-6037-b5b87205e4b8.png)

# csvファイルをアップロード
S3メニューのアップロードから、上記で取得したcsvファイルをアップロードします。
今回は以下二つのファイルを使用します。
* 2022/01/01~2023/04/22の株価ファイル ←実績データで予測値評価用
* 2022/01/01~2022/12/31の株価ファイル ←予測値算出用
![スクリーンショット 2023-04-22 22.51.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/69b24808-7db6-42e7-8ca3-86b22efe38d0.png)

# マニフェストファイルを作成/アップロード
QuickSightではS3からファイルを取得する際にまずマニフェストファイルを参照します。
このマニフェストファイルに書かれたオブジェクトURLについてデータを取得するようになります。
今回は実績データからの予測値評価用で別にデータセットを作成するため二つ用意します。

```my_finance_2022.json
{
    "fileLocations": [
        {
            "URIs": [
                "s3://my-finance-qqq/QQQ_2022.csv"  ##オブジェクトの概要からS3 URIを記述
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "containsHeader": "true"
    }
}
```

```my_finance_2022-2023.json
{
    "fileLocations": [
        {
            "URIs": [
                "s3://my-finance-qqq/QQQ_2022-2023.csv"  ##オブジェクトの概要からS3 URIを記述
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "containsHeader": "true"
    }
}
```
csvファイルと同様にS3にアップロードします。
![スクリーンショット 2023-04-22 23.02.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/1d69ab59-c3d5-2dbd-539a-72502c1c198a.png)

# QuickSightの有効化/アクセス設定
有効化については省略します。最初のアカウント登録みたいな感じで簡単にできます。
上記で作成したS3にQuickSightからアクセスするためにアクセス許可設定を行います。
![スクリーンショット 2023-04-22 23.05.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/8c045cb8-5928-d11b-59fb-9581fe46423f.png)

# S3からデータセットを取り込み
QuickSightからデータセット追加でS3を選択します。
データソース名は任意のもので大丈夫です。
マニフェストファイルのアップロードURLを`S3でオブジェクトの概要からオブジェクト URL`を記述
注意：URLはマニフェストファイルのものです。csvファイルではありません。

* 2022/01/01~2023/04/22の株価ファイル ←実績データで予測値評価用
![スクリーンショット 2023-04-22 23.07.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/ce7d5c38-367f-f17d-2ff2-d45f33ec02e4.png)

* 2022/01/01~2022/12/31の株価ファイル ←予測値算出用
![スクリーンショット 2023-04-22 23.12.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/3d0fdd68-ef0c-587a-ef2f-9cc077d360f9.png)

# データセットから分析を作成
ビジュアルには折れ線グラフを選択し、データフィールドにDateとCloseをドラックアンドドロップで設定します。
これで2022/1/1~2023/04/22までの実際の株価がグラフ化されます。
![スクリーンショット 2023-04-22 23.15.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/8c25e211-bf5a-f8d9-280d-655526e8671f.png)

# MLを使用した予測計算
MLといっても組み込まれているので、必要なのはワンクリックです。
右上の・・・から予測を追加をクリックします。
![スクリーンショット 2023-04-22 23.19.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/6937ab65-0844-fc36-d4d9-8071bdd34266.png)
デフォルトでは14日後までを予測するみたいです。
![スクリーンショット 2023-04-22 23.20.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/663619f5-af09-15ed-acc3-22a117b403e4.png)

# 予測値と実績値の比較
なんやかんや設定し見やすくしたものが以下です。
![スクリーンショット 2023-04-22 23.22.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/dc350bcc-0aa9-8360-d0e7-3065c6fed292.png)

左上が2022年実績値＋2023予測値です。
左下が2023年実績値です。
右下は本日以降（2023/4/22時点）の予測値です。

予測値と実績値の比較ですがあまり予測できていませんね。。。
もちろん値以外の外的要因によって株価は上下するものですのでやはり参考程度だなという感じです。
実績期間をもっと増やせば予測がより正確になるのかもしれませんね。
本日以降（2023/4/22時点）の予測値については下降傾向となりましたが実際どうなるかはわかりません。

# まとめ
値が具体的に予測値として出ているので一つの指標として活用しやすいと思います。
より正確にさせるためには適切なデータセットを使うことがより重量になってくると思います。
以上、ここまで閲覧いただきありがとうございました。

# おまけ
試しにYahoo!Financeで最大まで遡って2018年からのデータで予測すると三ヶ月後には＄400超える結果に笑
![スクリーンショット 2023-04-22 20.35.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339919/0c152fdf-4aea-6376-a4c3-a708d149b06e.png)