過去の投稿に画像リンク切れ多数ありご迷惑おかけしています.

災難に逢ふ時節には災難に逢ふがよく候

JMPJMPではじめるデータサイエンス

先週予告したように,本日は新型コロナウィルス感染者の状況を中国,イタリアと比較しようと考えていました.ですが,イタリアの状況がデータを取るまでもなく酷くなってきていて,指数関数のグラフを見るに忍びないので,変更させてください.自転車と万年筆を愛する自分にとって,イタリアは特別な国なのです.(中国ならいいのかと言われれば,もちろん,そんなわけではないですよ.)ただ,どうしても気が乗らないのです.今年のジロは中止でしょうね...

そもそもコロナウィルスをブログ題材にするのにも気が引けるように思えてきました.自分に興味のあるデータ分析の対象として扱っているだけなのですが,明らかに,ここ最近のビュー数は多くなっているので,コロナウィルスというキーワードが影響しているのかも知れません.日常生活でもコロナコロナで気疲れしているだろうJMPユーザーにこの場でも,コロナを思い出させるのも申し訳ないかな,そう考えています.

こういうときの心構えとして頭に浮かぶのが,良寛さん71歳のとき,死者が1400名にも及んだという「三条の大震」に遭遇して家族を失った友人に送った手紙での一節です.

「災難に逢、時節には災難に逢がよく候。死ぬ時節には死ぬがよく候。是はこれ災難をのがるゝ妙法にて候。」東郷豊治編(1959)『良寛全集』,東京創元社

ブログのタイトルにした,この有名なお見舞いの言葉は,良寛さんの私的なものであったことに注意する必要があります.その意味は公式サイト?にお任せして,この精神に通じるFeynman先生の言葉を紹介しておきます.
Don’t use your energy to worry!
Use your energy to believe, to create, to learn, to think, and to grow.

ということで,このブログでコロナウィルスを取り上げるのは.あくまでも私たちがともに成長するためと考えていただければ幸いです.そもそも,ビュー数を稼ぐ必要はないので,マスコミとは立場が違うという事情もあります.一連の報道では,マスコミが不安を煽っていることが指摘されていますが,これは今回に限ったことではありません.「放射能がくる」などと表紙に書いた週刊誌も過去にありました.

とはいえ,マスコミがこう書くのは,それが仕事だからです.彼,彼女らの仕事は真実を伝えるのでも,民意を代表するのでもなく,収入を得るためです.例えば,東洋経済ONLINEの青沼さんの記事「パンデミック迫る「新型コロナ感染」の非常事態」を私が勝手にタイトルをつければ,最後に良いことを言われているので,「「新型コロナ感染」いまできることは、他人を思いやる本当の意味での“忖度”」としたいところです.ですが,ABテストでどちらのクリック数が増えるかは,自明ですよね.実際,この類のテストは既にあちこちでやられているので,自然とクリックしてもらえるタイトルになってしまうのです.ようするに,私たちがマスコミに煽られているのではなく,私たちがマスコミを煽らせているのです.トイレットペーパーの件でも根っこは同じです.

少し脱線してしまいました.時間の制約から本日はデータの取得は省略して,少し前にダウンロードしておいたデータを使ってネットで出回ってる回復率と死亡率のグラフをJMPで視覚化してみます.因みに,WHOのデータをもとにしたデータがKaggleから入手できます.先日紹介した「感染者数マップ」は製作者の了解を得ているのですが,このデータをここに紹介して良いのか?一瞬悩みましたが,ここにあります.このような,国ごとの「感染者数」「回復者数」「死亡者数」が日付入りのデータが手元にあるとして,さて,どういうグラフを描きますか?少し考えてみてください.

このグラフの性質から誰かに見せることも多いかも知れません.時間が非常に大きい意味を持ち,国というインデックスのある多次元データなので「バブルチャート」にしてみると面白いですね.普段あまり使うことのないグラフなので,この機会に使い方を覚えておきたいものです.これがバブルプロットの設定画面です.

「二変量の関係」では,目的変数と説明変数を意識することは重要ですが,「バブルプロット」ではモデリングを意識することはあまりないので,『Y』と『X』はどのように割り当ててもいいかと思います.バブルプロットは視覚化のグラフでもあるので,ここでは見る人にインパクトを与えるように,上向きに重大な変化を示すという工夫をしています.「死亡数/感染者数」を『Y』「回復者数/感染者数」を『X』に取り,それを対数目盛りで表示することにします.「Date」はこのデータ取得時の3月9日までの日付です.サイズは感染者数をそれぞれの人口で割った感染者密度である「感染率」です.オリジナルのデータにはないので,Wikiからデータを取って新規作成しています.(やり方は『JMPではじめるデータサイエンス』のp85の練習07と同じです.)

WHOのデータでは国以下の詳細な領域に分かれているので,このデータでも「Province/State」「Country/Region」という変数で分かれています.それを「要約」で新規列「Country」にまとめ,さらにそれを「再コード化」で「国」にしました.その上で,「Country」をコード『ID』,「国」を『色』に割り当てています.こうするとグラフ上のラベルは英語で,凡例は日本語で表示できます.因みに既にパンデミック状態なので,「ローカルデータフィルター」をかけて,感染者数が多い国のみ表示しています.この例ではまだ,国の数が多いのでメリットは感じられませんが,色数が少なければラベルは英語でスマートに見せ,凡例のみ日本語にするのも面白い使い方ですね.

完成したバブルプロットはこのようになります.JMPのラベルは「選択ツール」ではコピーできないのですが,実際のグラフでは「Country」がラベルとなってバブルの中央に表示されます.

言葉だけではうまく伝わらないので,インタラクティブHTMLに発行してみました.

このグラフ

グラフの下のプレイボタンを押してみてください.JMP14の画面では,部分的にしかサポートされていないと書かれていましたが,問題なく変換できているようです.このグラフをどう解釈するか,あるいはこのグラフをどう人に見せるか,については皆様にお任せします.

先日,このブログを紹介しても良いかとSAS社から聞かれたので,どうぞとお答えしたのですけれど,少々懸念していることがあります.自著のサポートブログとしてひっそりと続けているこのブログですが,実は自らのJMPスキルの鍛錬の場でもあるのです.とにかく時間をかけないで手早くデータ分析する練習をしています.クライアントの前でモタモタ分析するのは恰好悪いですから.本日の例では人口データの取得を含めて約10分です.このため,結果の見た目がジョボいのは否めません.このブログを見て,JMPってこんなことしかできないのか,と思われては申し訳ないなと思っています.一度でもJMPを使ったことがある人ならば,そんなことはないとお分かりになるはずですが,これからJMPを始めるという方はこの点をご容赦いただければと思います.

それでは,本日はこれまで.

統計的問題解決研究所

コメント