Sisenseナレッジ - INSIGHT LAB

【Sisense Administration】PulseでCOVID-19の感染者増加率のアラートを出してみる

作成者: Turtle|2020年10月16日

シャローム!Sato-Gです。
新型コロナの東京の感染者数が連日100人超となっている。
しかし、東京都庁は赤くならない。つまり東京アラートは発動されない。
東京都は6月30日、「感染状況」と「医療提供体制」に着目した新たな7項目でモニタリング(監視)すると発表した。新たな7つの「モニタリング指標」に則って、週1回程度、専門家に分析してもらい、現状を評価をすることなっている。

【新モニタリング指標】
(1)新規陽性者数
(2)東京消防庁救急相談センターへの発熱相談件数
(3)感染経路不明者の数と増加比―で感染状況を、
(4)PCR・抗原検査の陽性率
(5)救急搬送先が20分以上決まらなかった件数
(6)入院患者数
(7)症患者数―で医療提供体制の状況を把握する。

以前のモニタリング指標(7項目)では特に下記の3つを重要視して対策を考えるということだったと思う。

【旧モニタリング指標】
(1)直近7日間平均の新規感染者数が20人以上
(2)週単位の感染者増加比が1倍以上
(3)同期間の感染経路不明率が50%以上

この旧基準に則れば、東京アラートは発動されいておかしくなかったのでは?と思う。
厚生労働省は人口10万人当りの新規患者数が2.5人を超えたら、「協力要請」を行うべきと考えているようだが、今回の新しいモニタリング指標では基準値があいまいでしっくりこないと思うのは僕だけじゃないだろう。

では代わりに旧基準に則り、Sisenseが東京アラートを発動してやろうかー
というのが今回の企画

上記の旧基準のうち、(2)がやっかいだ。直近1週間の合計を求める計算をSisenseでやらなきゃいけない。

1. 東京アラートの「週単位の感染者増加比」の計算とは

東京アラートの週単位の感染者増加比とはこういうことだ。
6/28から7/4までの7日間とその前の7日間を比較して1倍以上になっているかどうか...
手元で計算するとこうなる。

652 / 334 = 1.92

1倍を超え、ほぼ2倍という水準まで来ているから、とっくに基準を超えているよね。
上記の計算をExcelでやるのはSUM関数でセルの範囲を指定するだけなので簡単だ。

この計算をSisenseでできるのか?
ということだ。

2. Sisenseで期間合計

2.1 ピボットテーブルで確認する

Sisenseで直近7日間を求めるためにエビデンスとして、直近1週間の都道府県別の新規感染者数を日別にピボットテーブルにしてみる。

フィルターで「ランク付け」を選択し、「」の7を指定する。
ランク付けの条件は「条件」をクリックし数式エディタで以下のように入力する。

MAX([Days 単位 確定日YYYYMMDD])

結果はこうなる。これを見ただけで東京は危機的な状況だということがわかる。

2.2 数式にチャレンジ

まずデータモデルをおさらい。

上のピボットテーブルでは、[COVID-19]テーブルの確定日YYYYMMDDを基に人数を計算した。
ここでは(sum([人数]),[Days 単位 確定日YYYYMMDD])という数式で[確定日YYYYMMDD]に直近7日間というフィルタを設定すればよい。
[Days 単位 確定日YYYYMMDD]を右クリックして、「ランク付け」を選択し、数式で

(MAX([Days 単位 確定日YYYYMMDD]),ALL([#都道府県]))

と指定し「上」の7と設定する。これで、都道府県全体の[Days 単位 確定日YYYYMMDD]の直近7日間でフィルタした集計ができるはずだ。

おやっ?なんじゃこれ?これはフィルターが全く効いていないとしか思えない。
理屈ではこの数式正しいよね?
[COVID-19]内のカラムを使ったのが良くないのではないか?
確定日YYYYMMDDは感染者が出なかった時はレコードが発生しないからMAXは取れない。
数式の中でネストしたALLは有効にならないっぽい。

2.3 正しい数式

(sum([人数]),[Days 単位 年月日])という数式の[Days 単位 年月日]に対して「ランク付け」の7、条件は以下の数式を設定する。
(MAX([Days 単位 年月日]),ALL([#都道府県]))


2.1でエビデンス用として作成したピボットテーブルと完全に一致した。
今回の結果は全ての日付を持っている[カレンダー]テーブルの[年月日]を使用した。因みに
フィルターの数式は
(MAX([Days 単位 年月日]),ALL([#都道府県]))
ではなく
MAX([Days 単位 年月日])
だけでもOK。

都道府県から見た時に、FAKE_KEYで年月日がつながっているから、このような結果になっている。

2.4 週単位の感染者増加比

週単位の感染者増加比を求めるには、2.3で求めた直近7日間とその前の7日間を比較する必要がある。
この場合、その前の7日間は14日前から8日前ということになるのだが、8位から14位というランク付けは使えない。
そこで、上位14位以内から上位7位を引くことで8位から14位を求めることにする。
下記の❶は14~8日前までの集計、❷は7日前までの集計であり、❷ / ❶で週単位の感染者増加比が求められる。

これに左から「前週」「今週」「増加率」とラベルをつけ、危険水域の入ったら背景色が赤になるように設定する。
2以上の時はより濃い赤、1以上のときは淡い赤で設定した。


これで、どこの増加率が高いかが一目瞭然。
増加率だけで見るとなんと大阪が一番高かった。
大阪もヤバいー、大阪出張は考えねば...

3. Pulseアラート

ここでは「東京アラート」ではなく、1箇所でも増加率が1を超えたらアラートが飛ぶようにしたい。
いわば「全国アラート」だ。

3.1 Pulse用のインジケータ作成

2.4で求めた増加率の数式をコピーして作成する。
CASE ~ ENDの間で、増加率が1以上になったら1としている。それを都道府県ごとに合計するので、SUM([#都道府県], ...)とする。
このSUMの後に来る[#都道府県]ってどういう意味?と思った人は【Sisense Formula】~ごとの平均、最大、最小ってどうやって求めるの?を参照されたい。

ラベルは「感染者増加率>=1の都道府県」とつけておく

3.2 Pulseの設定

最後にPulseの設定を行う。
インジケータの右上のメニューから「Pulseに追加」を選択する。

アラート条件は「しきい値」、「次より大きい」で"0"と入力する。

次にメール配信先を入力する。

最後に以下の設定を行う
メッセージ:   「アラート対象の都道府県があります」
通知:      電子メール・モバイル
追加オプション: 「条件を満たしたあとで1回だけ通知」のチェックを外す
※このチェックを外さないと、毎回通知してくれないので要注意


そして、ビルドを掛けると...
ほらこの通り、アラートメールが届いた。
成功です!

4.まとめ

今回は直近の○日間の集計を数式の中のフィルター設定で実現してみた。
データにない日付を取得しようとするとうまくいかないので、今回のデータモデルで作成したカレンダーテーブルの年月日をランクで指定することで万事うまくいっている。
またPulseの基本的な設定も解説した。

これで当分の間、ビルドの都度、メールが来るのかな。
早くメールが来なくなるといいなあ。

ではまた!