ここ数年、新型コロナウイルスワクチンの世界的な影響の中でも、予測モデリングのための分析手法に大きな進歩がもたらされました。勾配ブースト ツリーとディープ ニューラル ネットワークは、時系列予測の最先端の方法として登場しました。 最近の内容を確認できます特別な問題の国際予測ジャーナル、を含む紙David Lander と私による、M5 Uncertainty コンペティションでの優勝ソリューションについての記事です。このソリューションでは、勾配ブースト ツリーのみを使用しています。 このノートでは、 JMP Pro の XGBoost アドインCovid-19ワクチンの安全性をめぐる論争の中心である米国疾病予防管理センター(CDC)の現在のデータセットに基づく基本的な時系列予測を目的としています。
3 回にわたる一連の長いブログ投稿で、倫理的懐疑論者(TES)は、2021年初頭の新型コロナウイルス感染症(Covid-19)ワクチンの導入以来、超過がんやその他の死亡率が大幅に増加していることについて警鐘を鳴らしている。 彼は CDC から公開されているデータを使用しており、主なグラフの 1 つは次のとおりです。

反論としては、ジェフリー・モリス(JM) はデータを再分析し、このシグナルは 2022 年 3 月 12 日までは説得力がないと結論付けています。 彼の 2 つのグラフは次のとおりです。

JMはこう書いています。
彼の主張を評価する鍵となるのは、もちろん、2022 年のデータがより成熟し、夏にかけてより完全なデータが得られることを確認することです。 2021年春の最低値からのがんによる死亡者数の増加が2022年を通じて続くのであれば、彼の仮説はより裏付けられることになるが、2022年初めに始まったと思われる減少が続くのであれば、本質的に超過死亡がより高いという主張は弱まるだろう。 2021 年初めに導入された何らかの要因によってがんによる死亡が増加しました。
2022 年夏のデータを JMP Pro で分析して、現状を確認することができました。 データは、次の内容をカバーする 2 つの .csv ファイルで入手できます。 2014-2019そして2020-2022 。 後者は、新しいデータが継続的に追加されているため「暫定」とみなされ、最後の数週間はまだ完全に集計されていないため、数値が異常に低くなる傾向があります。 その後の分析は、2022 年 11 月 22 日にダウンロードされたデータに基づいています。
超過死亡率の問題を調査するには、現在のデータから差し引いて矛盾を推定できる、長期にわたるベースライン死亡率の適切な推定値が必要です。 TES では、かなり複雑なワークフローこれを達成するために、6週間の平滑化機能と、癌ではなく新型コロナウイルス感染症が早期に死亡した人に対応するための「プルフォワード効果」が含まれる。 残念ながら、彼のアプローチの手順は賢明であるように見えますが、TES は彼の結果を正確に再現するコードを提供していないようです。 JM は、基本的な線形傾向に週ごとの季節平均を加えたものとしてベースラインを推定します (それぞれ、上の左側のグラフの黄色と青色の線)。 彼は見事に提供してくれるRコードを実行して結果を再現することができました。 TES と JM の両方のベースラインは、2014 年から 2019 年のデータに基づいた 2020 年から 2022 年の予測であり、パンデミックが 2020 年 1 月頃に始まったことを考慮すると、妥当な時間分割です。
時系列予測における勾配ブースト ツリーの最近の大きな成功を考慮すると、再分析の魅力的なアプローチは、XGBoost を使用して 2014 ~ 2019 年のデータを使用して 2020 ~ 2022 年の死亡率を予測し、これを 2020 ~ 2022 年の超過死亡を評価するためのベースラインとして使用することです。 XGBoost を使用した予測の鍵は、将来への一般化を可能にする適切な時間ベースの機能を設計することです。 データの構造と問題に応じて、多くの機能が可能です。私たちのを参照してくださいIJF紙これに関する詳細については、こちらをご覧ください。 TES および JM との比較を容易にするために、年間の週と 156 週間のラグ値という 2 つの数値特徴のみを使用する単純なアプローチを使用します。 より洗練された機能も確かに可能ですが、これら 2 つはかなり良い仕事をしており、このような問題に対する XGBoost の威力を示す最初の良い例となっているようです。 結果は以下のグラフ ビルダーに表示されます。

上部のパネルには、生のデータが青で、XGBoost の予測が赤で表示されます。 単純な XGBoost 予測は「目視」テストに合格しますが、より慎重なモデリングにより改善できる可能性が非常に高くなります。 中央のパネルには当てはめの残差があり、2020 年以降の結果は各週のがん超過死亡の推定値と考えることができます。 2021 年半ば以降のほとんどの週で、観測データが予測を上回っていることがわかります。 下のパネルには残差の累積合計があり、最終的な数値 15,000 は 2022 年 10 月 1 日の超過死亡総数のおおよその推定値です。 この分析から得られた最初の結論は、2021年半ば以降、がん死亡が過剰に増加するというTESの主張を支持し、ワクチンが因果関係を果たしている可能性を示唆している。
超過死亡の推計は複雑なテーマであり、前述の分析は、決定的なものというよりも説明的なものとして、簡単な出発点となるように設計されています。 のCDCそして英国OHIDにはさらに奥深いページがあり、オンラインでは数多くの分析や論争が存在します。 たとえば、次のような意見の相違を見てください。 JMそしてマシュー・クロフォード地域的なシンプソンのパラドックスを示すいくつかの驚くべき保険データについて、撤回された紙Kostoff et al.によるもの、およびによる挑発的な記事ノーマン・フェントンとその仲間たちそしてスティーブ・カーシュ英国からのデータについて。 冬の間にどのようなデータや議論がもたらされるかを見るのは興味深いでしょう。そしてありがたいことに、私たちにはデータを効率的かつ直接分析できる JMP Pro のような信頼できるツールがあります。
JMP Pro で XGBoost 予測分析を再現する手順は次のとおりです。これを使用して、今すぐ、または後でより多くのデータが利用可能になったときに独自のさらなる探索を実行できます。
- 2 つの CDC テーブルをダウンロードして開き、連結します ( 2014-2019そして2020-2022 )。 データを発生管轄 == 「米国」にサブセットします。最後の 5 行を選択し、[行] > [非表示と除外] をクリックします。 最後の 5 行を除外し、グラフ ビルダーの生データの最初の表示に基づいて、カットオフ日として 2022 年 10 月 1 日を選択しました。 常にデータをプロットしてください。
- 2020 ~ 2022 年の行を選択し、[行] > [行の選択] > [列の名前の選択] を選択して、2014 ~ 2019 年 (未選択) の値が 0、2020 ~ 2022 年 (選択) の値が 1 になる Val20 という名前の新しい変数を作成します。 [列] の左端のパネルで変数の隣にある赤いヒストグラムを右クリックして、この変数の分析タイプを連続に変更します。 Val20 は、モデル フィッティング中に 2020 ~ 2022 年を保持するために、XGBoost の検証列として使用されます。
- 数値変数 MMWR Week はすでにテーブルに含まれており、これが最初の機能です。 2 番目の機能を操作するには、一次がん反応である悪性新生物 (C00-C97) 列を選択します。テーブルで、この変数を右クリックし、[新しい数式列] > [行] > [ラグ倍数] を選択します。 開始値と終了値の両方として 156 を選択し、「OK」をクリックします。 これにより、3 年のラグ変数である新しい列が作成されます。 2020 年から 2022 年の予測期間を 2014 年から 2019 年の観測値で漏れなく完全にカバーするために、3 年のラグを使用します。
- をインストールしますXGBoost アドイン。[アドイン] > [XGBoost] > [XGBoost] をクリックします。 悪性新生物 (C00 ~ C97) を Y 応答として、MMWR 週と新しい 3 年ラグ機能を X として、Val20 を検証として指定します。 「OK」をクリックし、「自動調整」にチェックを入れてから「実行」をクリックします。 結果は次のようになります。

- XGBoost 出力ウィンドウで、モデル 1 の横にある赤い三角形をクリックし、[予測の保存] をクリックします。 これにより、すべての行の予測が JMP テーブルに保存されます。 2020 年から 2022 年のデータは、トレーニング中にデータを提供したための予測です。 上の右側のプロットは、大部分の点が 45 度の基準線の上にあることからわかるように、観測値が 2020 年から 2022 年の予測を上回っていることも示しています。
- テーブルで、悪性新生物 (C00 ~ C97) と新しい予測列の両方を選択します。 右クリック > 新しい数式列 > 結合 > 差分。 これにより、残差の新しい列が作成されます。 この新しい列を選択して右クリックし、[新しい数式列] > [行] > [累積合計] を選択します。
- グラフ ビルダーで、週終了日を X にドラッグし、以前に作成した変数を Y にドラッグして、前に示した表示を作成します。
すべてのデータ (ステップ 1 ~ 3) と埋め込み XGBoost およびグラフ ビルダー スクリプト (ステップ 4 ~ 7) を含む JMP テーブルが添付されます。 こちらのトピックスに関してもお気軽にお問い合わせください。