COVID-19 感染確認数増加を片対数で可視化する

<span style="font-size: 8pt;"><span style="font-weight: 400;">新型コロナウイルス感染症については、必ず1次情報として </span><a href="https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000164708_00001.html"><span style="font-weight: 400;">厚生労働省 </span></a><span style="font-weight: 400;">や </span><a href="https://www.kantei.go.jp/jp/headline/kansensho/coronavirus.html"><span style="font-weight: 400;">首相官邸 </span></a><span style="font-weight: 400;">のウェブサイトなど公的機関で発表されている発生状況やQ&amp;A、相談窓口の情報もご確認ください。本投稿は一次データにアクセスしデータを理解する技術を伝える目的で作成されており、情報の更新、厳密な公表数値の保障はいたしかねます。</span></span>

<span style="font-weight: 400; font-size: 8pt;">世界の症例数については以下を参照ください。</span>

<span style="font-size: 8pt;"><span style="font-weight: 400;">Review resources about COVID-19 and the </span><a href="https://www.cdc.gov/coronavirus/2019-ncov/summary.html"><span style="font-weight: 400;">SARS-CoV2</span></a><span style="font-weight: 400;"> (the novel coronavirus that causes the disease). Start with the </span><a href="https://www.cdc.gov/coronavirus/2019-ncov/index.html"><span style="font-weight: 400;">CDC dedicated response page</span></a><span style="font-weight: 400;"> and explore more on the </span><a href="https://coronavirus.jhu.edu/"><span style="font-weight: 400;">Johns Hopkins Coronavirus resource page</span></a><span style="font-weight: 400;">.</span></span>

&nbsp;

現在（2020-04-02)、COVID-19（新型コロナウィルス）の感染確認症例数、死亡症例数の増加は、世界的に指数的な増加を見せています。指数的な増加傾向を適切に理解する可視化表現として片対数を用いる方法があります。以下、New York Timesの記事等で利用されています。

<a href="https://www.nytimes.com/interactive/2020/03/21/upshot/coronavirus-deaths-by-country.html">Coronavirus Deaths by U.S. State and Country Over Time: Daily Tracker</a>

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null.png" alt="" width="624" height="352" />

この図では、国ごとに最初に死亡症例が25を超えた日からの経過日数を横軸に、死亡症例数の片対数を用いて表現しています。　もし、最初の日が25人、次の日が25*2=50人、次の日kが25*2*2 =100人、次の日が25*2*2*2= 200人と倍々に指数的な増え方をしている場合、急こう配の直線で表現されます。指数関数的な増加を続けている場合に直線として置き換えられるため、増加傾向を理解しやすく、いち早くこのカーブを直線から外し、緩やかになることが感染の収束のために望まれます。

この記事では、上記のようなグラフをTableauでどのように描くかについて解説します。

以下完成したグラフです。


&nbsp;
<p id="twvOqPf"><img class="alignnone size-full wp-image-2209 " src="http://lovedata.main.jp/wp-content/uploads/2020/04/img_5e84e856b0676.png" alt="" /></p>
<a href="https://public.tableau.com/views/COVID19-FlattenCurve20200331-JapanOthers/CasesGrowth?:display_count=y&amp;publish=yes&amp;:origin=viz_share_link">Tableau Public Tomohiro Iwahashi: </a>

&nbsp;

<span style="font-size: 18pt;">■　ステップ：</span>

この記事では、Tableau の取り組みである”Trusted Coronavirus (COVID-19) global data from our community experts.”　からデータを取得し利用します。以下からデータをダウンロードすることができます。

https://www.tableau.com/covid-19-coronavirus-data-resources

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-1.png" alt="" width="624" height="217" />

&nbsp;

このデータセットには、Cases_Type フィールドに “Confirmed”（確認症例数）と”Deaths"（死亡症例数）の分類と対応する症例数”Cases"フィールドがあります。

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-2.png" alt="" width="624" height="336" />

まず、死亡数をCasesからメジャーとして取り出すために、死亡数を計算するフィールドを作成します。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-3.png" alt="" width="600" height="334" />

&nbsp;

&nbsp;

起点とする最初の死亡数Nを指定するパラメータ”First N Death"を作成します。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-4.png" alt="" width="552" height="320" />

&nbsp;

その日の死亡数がパラメータ　”First N Death"　を超える場合、１　を返すフラグを作ります。

&nbsp;

IF [Deaths#] &gt;= [First N Deaths] THEN 1 ELSE 0 END

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-5.png" alt="" width="592" height="330" />

&nbsp;

&nbsp;

死亡数が　パラメータ　Nを超える日のみ　Dateを返す計算フィールドを作ります。

IF [OverDeath#Flg] =1 THEN [Date] END

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-6.png" alt="" width="588" height="318" />

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-7.png" alt="" width="624" height="438" />

Contry_Region に詳細レベルを固定（FIXED）して、その範囲で最小の日付、すなわち、「各国で最初に死亡数がNを超えた日」を作成します。

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-8.png" alt="" width="580" height="320" />

&nbsp;

{FIXED [Country_Region]:MIN([Date(OverNDeaths)])}

&nbsp;

ここでFIXED記述は、Tableau で詳細レベル式（LOD)と呼ばれ、可視化のレベルとは異なる集計単位で最小値などの集計を操作する場合に有効な手段となります。

&nbsp;

詳細レベル式（LOD)FIXEDの詳細については、以下Tableau マニュアルを参照ください。

<a href="https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod_fixed.htm">FIXED 詳細レベルの式</a>

&nbsp;

パラメタNを10とした場合、日本ではすべての行に、”2020/03/09” の日付が入ります。これが日本で死亡数10を初めて超えた日付となります。

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-9.png" alt="" width="604" height="353" />

&nbsp;

“FirstDate_OverNDeath”から数えて何日経過しているかを計算します。

&nbsp;

DATEDIFF('day',[FirstDate_OverNDeaths],[Date])

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-10.png" alt="" width="586" height="318" />

&nbsp;

&nbsp;

DaysFromNDeaths　（死亡数がNに達した日からの経過日数）　と　Deaths#（死亡数）でグラフを作成し、色にCountry_Region （いくつか特定の国を指定）を設定します。

&nbsp;

多くの国で指数的に死亡症例が増加していることが分かります。

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-11.png" alt="" width="624" height="389" />

&nbsp;

指数関数的な伸びを見せるグラフについては、ｙ軸のスケールを対数（片対数）

で表示します。 片対数グラフでは、指数的な伸びを見せている場合に直線的な遷移が見られます。急激な伸びを見せる数値については、片対数を用いて可視化した方が伸び率がより理解しやすくなります。（Y軸については数値が大きくなればなるほど、間隔が短くなります。）

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-12.png" alt="" width="334" height="333" />

各国において、最初に死亡数が10を超えてからどのように死亡数が増加しているがを可視化します。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-13.png" alt="" width="624" height="328" />

&nbsp;

ここでは傾向線として”指数”を選択し、傾向線を引きます。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-14.png" alt="" width="541" height="182" />

&nbsp;

Casesを”Deaths"（死亡数）とするか、”Confirmed"（確認数）とするかを切り替えるためのパラメータ”Switch”を作ます。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-15.png" alt="" width="544" height="438" />

以下のように”Deaths#”をパラメータを利用するように書き換えます。

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-16.png" alt="" width="581" height="316" />

Switchパラメータを”Death”から”Confirmed"に切り替えると、感染確認数の増加傾向を可視化します。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-17.png" alt="" width="624" height="338" />

すべての国を表示すると、以下のように表示数が多すぎて見えなくなってしまうため、「最終症例数が一定の国のみをフィルタすることにします。具体的には国で見たときの、最大値（この場合累計の最後）を国で固定（FIXED）して、その値でフィルタをします。<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-18.png" alt="" width="624" height="326" />

このようにすると、最終的な症例数がフィルタで指定した数を超える国だけにフィルタすることができます。（FIXEDを使わないと、すべてのレコードにフィルタがかかってしまうため、最終数が指定を超える国でも、指定数を超えない期間がフィルタされてしまいます。）

&nbsp;

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-19.png" alt="" width="598" height="328" />

&nbsp;

最終的にConfirmedが5000件以上となる国のみでフィルタをすると以下のようになります。

<img title="" src="http://lovedata.main.jp/wp-content/uploads/2020/04/null-20.png" alt="" width="624" height="334" />PAGE_BREAK: PageBreak

&nbsp;

以上、Tableau を用いて、片対数による増加傾向の可視化方法を紹介しました。状況の考察については敢えてここではいたしませんが、一次データに個人が直接アクセスし、個人で最新の状況を理解するための分析力を私含めて身に付けていきたいという思いでの投稿となります。

&nbsp;

不備、技術来なご指摘等ございましたら、ご連絡頂ければ幸いです。

&nbsp;