ここでは少し題材が不適切かと思ったのですが、COVIDの陽性者予測を実際にしてみます。データは厚生労働省に日次で全国の陽性者数が公開されているオープンデータがありますから、これを使ってみましょう。
データはシンプルで、日付, 陽性者数のみが入っています。インポートする時はDATETIME型でインポートすると後工程が楽でしょう。データは2020年の1月1日から入っています。
次にモデリングをします。Auto ARIMAがオプションで使えますので、これを使ってみましょう。ARIMAの説明については時系列予測をしようという人は既にご存じでしょうからここでは割愛します。
- 入力時系列に対する自動クリーニング調整。欠損値、タイムスタンプの重複、異常値の急増などを調整します。また、時系列履歴の急激なレベル変更にも対応します。
- 休日の調整
- LOESS 回帰に基づく季節変動と長期変動の分解(STL)アルゴリズムによる季節変動と長期変動の分解
- 2 重指数平滑(ETS)アルゴリズムを使用した季節性の推定
- ARIMA モデルと auto.ARIMA アルゴリズムを使用したトレンド モデリングによるハイパーパラメータの自動調整。auto.ARIMA では、多くの候補モデルが並行してトレーニングされ、評価されます。赤池情報量規準(AIC)が最も低いモデルが最適なモデルになります。
欠損値まで補完してくれ、季節性はもちろん休日効果も織り込むことができます。面倒くさいハイパーパラメタの試行も自動的に行ってくれ(オプションで指定できます)AICまで見て採用するモデルを決めてくれます。
クエリは下記です。
ここでは100日間をAuto ARIMAで予測させてみます。祝日効果はPCRの検査結果が出るのが数日遅れですから、あまり意味はなさそうなのですが日本の祝日カレンダを取り込むことにします。(注: 休日効果のモデリングは、時系列が毎日で期間が 1 年以上の場合にのみ適用されるということで注意が必要です。)
ここでは、「ML_us」というデータセットの中に「covid_arima」というモデルを作っています。この時、モデルの作成と同時に予測が行われます。ですので、モデルを作ってから予測、ということが一気に行えます。
実際にクエリを実行すると14か月の日次のデータで35秒で終わりました。Slot timeは7分程度なので普段BigQueryを使っているユーザにとってはこの程度のデータでは課金を気にすることはなさそうです。
ではモデルを評価していきましょう。下記のクエリで試行したハイパーパラメタやAICを見ることができます。
p値, d値, q値に加えてdrift, 周期性については週次のものが採用されていました。この結果をもって採用されたハイパーパラメタを流用するような使い方をすることもできそうです。
また、次のクエリでモデルの係数も見ることができます。
自己回帰や移動平均の係数を確認することができます。
それでは早速予測結果を見てみましょう。30日間の予測を80%の信頼区間の加減と上限とともに読み込んでみます。
予測結果がでました。(これを実行した時点では2021/02/16までのデータしか公開されていませんでしたので2/17からの予測が出ています)
あとはDataStudioでグラフにしてみましょう。DataStudioには時系列のグラフがあります。もちろんクエリだけで予測値を見ることができるので、この予測結果を他のBIなどから読み込むこともできたり、他のアンサンブルするアルゴリズムの1つの特徴として再利用することも容易です。
ここではDataStudioで見てみましょう。
30日間の予測が下限・上限とともに描画できました。
今回はBigQuery MLの時系列予測を試してみました。まだアルゴリズムは少ないのですが、巨大なデータを訓練・予測に使う場合、BigQuery上でオンデマンドかつSQLだけでモデリングから予測までができるというのは使いどころによってはBigQueryの驚異的な並列計算速度はその威力を発揮するでしょう。
こんな場合:
・データが巨大である
・モデリング中にインスタンスを立てて計算をさせている
・本格的なモデリングの前段階としてさっと係数などを見たい
・ML Opsにワンライナーで簡単にモデリング工程を組み込みたい
・予測結果をアンサンブルする他のモデルの特徴として取り込むために予測速結果をBigQueryのテーブルに戻したい。
といった場合に大いに使えるでしょう。AI PlatformのJupyter上でクエリを叩いてdataframeに格納する機能と組み合わせれば、Google Cloud上でモデリングのiterationを回すことが完結できます。Google Cloud上でData Science / Analyticsのエコシステムを体験すると他の環境に戻れなくなるでしょう!