デレステイベントアタポン形式 1位ポイント推定 -Pystanを使った状態空間モデル-

## 概要

* 本でStanを使った状態空間モデルによる分析方法を勉強したから、実際のデータで練習してみたもの
* 目標は「イベント開始日の時点で、イベント終了時の1位のポイントを推定する」
    * 1位を取ったから何か報酬があるわけでもないので、実用性は無い
* 今回使ったのは、状態空間モデルの「ローカル線形トレンド」+「時系変数」モデル
* **結果としては、十分な精度をもったモデルが作れたと思われる**
  * 1位は「トレンド」「イベント期間の長さ」で、ほぼ説明しきれた
  * やはり、[2001位の予想](https://qiita.com/kazuya_minakuchi/items/cfb1de8e4dd9acd404a4)よりは簡単だった
  * 1位には「イベントごとの盛り上がり具合」はあまり影響せず、ガチ勢が最高効率で時間いっぱい走るためと思われる
* 今回作ったスクリプトたちの[置き場所はココ](https://github.com/kzy611/qiita/tree/master/dereste_analysis/dereste_event_point_ranking_border/%E3%82%A2%E3%82%BF%E3%83%9D%E3%83%B3_1/script)。
* [2001位の予想](https://qiita.com/kazuya_minakuchi/items/cfb1de8e4dd9acd404a4)が難しく、説明変数を検討中のため、気分転換も兼ねてやってみたもの

## 使うデータ

[ココ](https://qiita.com/kazuya_minakuchi/items/04a1fcfc896f64c1e010)で取得したデータを、形式がアタポンのものだけ抽出したもの

* 1位ポイント（目的変数）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/5bfe87e5-112f-f4a8-ae39-070a467e0efd.png)

* イベント期間の長さ（h）（説明変数）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/d9dd33a0-794f-44ad-9be0-ae94c47a2f26.png)

## 「ローカル線形トレンド」+「時系変数」モデル

* ローカル線形トレンドモデルや時系変数モデルの中身の[数式とかはコッチ参照](https://qiita.com/kazuya_minakuchi/items/09b010927688b322df9d#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E7%B7%9A%E5%BD%A2%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%83%A2%E3%83%87%E3%83%AB)
* 赤線が点推定で、赤い範囲が区間推定（5%-95%区間）
* モデル作成に使ったデータに対する、区間推定の正解率は91.7%（全数: 60、正解数: 55）

### トレンド成分(A)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/0b3d16a7-08b6-c532-612c-826fe697e7c1.png)

### 「イベント期間の長さ」による成分(B)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/9970cd28-a376-aedd-11c7-02fd04787320.png)

* 時系変数の係数

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/703cb748-15ed-3633-d6da-30f64eb8a14f.png)

### 予測モデル(A+B)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/e7c7e157-9aae-be7a-7f41-e01403420597.png)

* トレンド成分と係数を比較すると、「トレンドは滑らか」「係数は急に変化する」傾向がある
* 「性能の高いキャラの追加」「グランドライブの実装」などの時間効率に影響する要因が、係数に乗ったと思われる

### 実測と予測の比を見てみる

* 「比 = 実測値 / 予測値」として、比を見てみる
  * 「値が大きかったら、ズレも大きくなりがちだよね」という考え
  * 「比=1」でピタリ賞
  * 1以上で予測値 < 実測値。1以下で実測値 < 予測値

#### 統計量

* 平均は約1（そこを狙ってモデル作られているので、コレは当たり前）
* 標準偏差0.043 = 正規分布の場合、68%は±4.3%に入る
* 最大のズレは約13%（min, max）
* 50%はズレ3.3%未満（25%-75%）

|     | ズレ  |
|:---:|-----:|
|count|60    |
|mean |0.9977|
|std  |0.0439|
|min  |0.8816|
|25%  |0.9679|
|50%  |1.0000|
|75%  |1.0199|
|max  |1.1269|

#### プロット

* ヒストグラム
  * 正規分布に近い

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/3f8621ac-9b58-09b1-be14-3f8d258c77a1.png)

* 時系列

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/855fba1c-b7a8-d90f-b5a8-29cae70baeef.png)

他にも大きい順に見てみたり、月別で見てみたりしたが、あまり規則性は見られなかった。

## 実際のイベント1位を推定する

* ↑のモデル作成には、[イベント一覧のヒーローヴァーサスレイナンジョー以前のデータ](https://imascg-slstage-wiki.gamerch.com/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF)を使ったため、その次に開催された[オレンジタイム](https://imascg-slstage-wiki.gamerch.com/%E3%80%90%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%80%91%E3%82%AA%E3%83%AC%E3%83%B3%E3%82%B8%E3%82%BF%E3%82%A4%E3%83%A0)の1位ポイントを推定してみた
* 「オレンジタイム」の情報
  * 開催日：2020/09/20
  * 期間：174h
  * １位ポイント（答え）：**1,250,000**

* 予測値
  * 点推定: **1,222,458**
  * 区間推定(90%)：**1,102,110 ~ 1,344,647**
     * 実際の値が区間推定の中には入っており、推定に成功している

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563901/a2d9d4b3-7b78-c7a3-e4ab-f6645525134a.png)