3 ポイント 投稿者 GN⁺ 2023-11-21 | 2件のコメント | WhatsAppで共有
  • 科学論文やデータ分析でよく使われるが、誤った可視化の慣行16例を実例とともに整理したGitHubリポジトリで、Rコードとシミュレーションデータを使って各ケースを直接再現可能
  • 棒グラフでの平均比較の誤用、小標本でのバイオリンプロット、一方向データへの双方向カラースケールの適用など、データの分布や特性を歪める可視化を具体的に指摘
  • ヒートマップの行・列の並べ替え不足、外れ値の未確認、円グラフや同心円ドーナツチャートの根本的な限界など、人間の視覚認知特性を考慮していないチャートタイプの問題を説明
  • 位置ベースの可視化と長さベースの可視化の混同、軸切断付き棒グラフなど、誤解を招く構造的な設計ミスへの警告を含む
  • データ可視化を扱うすべての研究者と開発者が参照できる実用的なアンチパターン集であり、各項目に代替となる可視化手法も併せて提示

1. 棒グラフで平均比較をしてはいけない

  • 平均比較(means separation)プロットは科学論文で最も一般的な可視化の1つで、2つ以上のグループの平均、分散、分布を示すことが目的
  • 例では2つのグループが似た平均と標準偏差を持つ一方で、分布はまったく異なる — 棒グラフだけではこの違いを検出できない
  • 棒グラフを使う前に必ずデータの分布を確認すべきであり、Weissgerber et al.(2015, PLOS Biology)でも棒グラフの限界が指摘されている

2. 小標本ではバイオリンプロットを使ってはいけない

  • バイオリンプロットや平滑化された分布曲線は、標本サイズが小さいと意味をなさない
  • 小標本では同じ観測値でも分布や四分位数が大きく変動し、四分位数が安定するにはnが50以上必要
  • 同一の正規分布から複数回サンプリングして四分位数を比較した実験結果でこれを示している

3. 一方向データに双方向カラースケールを使ってはいけない

  • カラースケールでは、最も暗い色と最も明るい色は最大値、最小値、平均、0などの意味のある値を表すべき
  • 最も明るいまたは暗い色が任意の数値を表しているのは、「棒グラフで最も長い棒が最大値ではない」のと同じくらい重大な誤り
  • ヒートマップや色のグラデーションを使う際は、データの方向性(一方向か双方向か)に合ったカラースケールを選ぶことが不可欠

4. 棒グラフの草原(Bar Plot Meadow)を作ってはいけない

  • 多因子実験の結果を棒グラフで並べると「棒グラフの草原」になり、結果の伝達効率が悪い
  • 多因子実験の結果を効果的に伝えるには、関心のある因子ごとにグルーピングやファセット化を慎重に設計する必要がある
  • 例ではTreatmentとExplantがResponseに与える影響をVariety水準で比較し、分析の焦点によってレイアウトを変えるべきことを強調している

5. ヒートマップでは行・列の並べ替えを必ず検討すべき

  • ヒートマップは科学論文、特にオミクス(omics)論文で非常によく使われるが、行と列の順序を並べ替えないと有用な情報を引き出せない
  • クラスタリングを使った並べ替えが一般的だが唯一の方法ではなく、96ウェルプレートのように物理配置を表している場合は並べ替えできない
  • 行・列の並べ替えと適切な色のグラデーションを組み合わせれば、視覚的にも美しいヒートマップを作成できる

6. ヒートマップでは外れ値を確認しなければならない

  • 外れ値はヒートマップの認識と解釈を完全に変えてしまう可能性があり、色で数値データを表すあらゆる可視化に当てはまる問題
  • 例では20個の特徴を測定した2つの観測値が、外れ値を確認しないと全体として似て見えるが、カラースケールを95パーセンタイル基準に調整するとすべての特徴で違いが現れる

7. 各因子水準ごとのデータ範囲を確認すること

  • 多因子実験では、応答変数の範囲が因子水準によって大きく異なることがよくある
  • 仮想実験で3種類の化合物を2グループ(対照群 vs. 処理群)で測定した結果、化合物1の濃度範囲が他の化合物よりはるかに狭く、処理効果を見落とす危険がある
  • 各化合物ごとのデータ範囲を事前に確認しないと、重要な処理効果を見逃す可能性がある

8. ネットワークグラフでは複数のレイアウトを試すこと

  • ネットワークグラフの**見た目(トポロジーではなくレイアウト)**は有効性に大きく影響する
  • 同じデータでも3種類のネットワークグラフはまったく異なって見え、9種類の異なるレイアウトを適用した例も含まれている
  • レイアウトによってネットワークの解釈のしやすさが大きく変わるため、複数のレイアウトを試すべき

9. 位置ベースの可視化と長さベースの可視化を混同してはいけない

  • 点グラフや線グラフでは値はx軸とy軸上の位置で表され、棒グラフでは値はx軸からの**距離(長さ)**で表される
  • 例では0始まりでない棒グラフは、時点2の棒の長さを時点1の約3倍に見せるが、実際の平均差は約1.6倍にすぎない — 長さと位置を混同すると誤解を招くグラフになる
  • 軸切断(Broken Axis)付き棒グラフに注意

    • 軸切断は広い範囲の数値を表すときに有用だが(代替として対数スケール軸も使える)、適切なのは位置ベースのグラフに限られる
    • 棒グラフで軸切断位置を変えると、特定の棒がより長くまたは短く見える錯視効果が生じる
    • 例では棒「d」の長さが軸切断位置によって大きく違って見え、これは棒グラフが長さベースのグラフィックだからである

10. 円グラフを作ってはいけない

  • 円グラフは比率データを円形セクターに分けて表すが、人間は角度や面積より長さを読む能力のほうがはるかに高い
  • 2グループ・各4サブカテゴリの例では、円グラフはグループ間比較が非常に難しい
  • ドーナツチャートに単純化しても弧の長さでデータを表すことになり、むしろドーナツを展開して積み上げ棒グラフにしたほうが比較にはるかに効果的
  • ggplotで円グラフやドーナツチャートのスクリプトは、積み上げ棒グラフよりむしろ複雑である

11. 同心円ドーナツチャートを作ってはいけない

  • 同心円ドーナツではデータが弧の長さで表されていると思いがちだが、実際には弧の角度で表されており、人間は弧の角度を読むのが苦手
  • 外側のリングの弧の長さは内側のリングよりずっと長いため、Group 2とGroup 3が同じ値でもGroup 3の弧のほうがはるかに長く見える
  • グループの順序(どのグループをどのリングに置くか)がプロットの印象に大きく影響し、大きい値のほうが短い弧を持つ逆説が起こりうる
  • circos plotなどの円形レイアウトにも同じ問題が当てはまり、代替は単純にドーナツを展開して積み上げ棒プロットに変換すること

12. 赤/緑およびレインボーカラースケールを使ってはいけない

  • **赤緑色覚異常(Deuteranomaly)**は男性の1/16、女性の1/256に見られる最も一般的な色覚異常
  • 赤/緑およびレインボーカラースケールは色覚異常のあるユーザーに問題があり、白黒印刷時にも情報保持性が非常に低い
  • viridisのような「現代的」カラースケールは、色覚異常に配慮しつつグレースケールでも安全で、視覚的にも優れている

13. 積み上げ棒プロットの並べ替えを忘れてはいけない

  • 積み上げ棒プロットは比率データ、**コミュニティ構造、集団構造、混合分析(admixture analysis)**の可視化によく使われる
  • 100サンプルと8クラスの例では、棒の順序を最適化しないとグラフから何のパターンも識別できない
  • 棒を並べ替えるとパターンが劇的に現れ、サンプルのグルーピングと並び順の最適化が重要になる

14. 積み上げ棒と平均比較を混ぜてはいけない

  • 積み上げ棒プロットは合計が100%になる比率データを、平均比較プロットは平均の差と分散を示すもので、両者はまったく異なる可視化課題である
  • ブルーベリー植物の実験例では、標準的な積み上げ棒プロットが、化学処理によって果実の色プロファイルが最も成熟した段階(dark blue)へ大きく移動したことを明確に示している
  • 積み上げ棒の上にエラーバーと点をオーバーレイすると、どのエラーバーと点を比較すべきか不明瞭になり、上部スタックのエラーバーが上へ押し上げられてy軸の解釈が直感的でなくなる
  • 平均比較と分散が可視化の主目的なら、別個の平均比較グラフのほうが適している

15. 小標本ではヒストグラムを使ってはいけない

  • ヒストグラムは棒グラフの代替として提案されることもあるが、ビン数に対する頑健性が小標本では非常に低い
  • 同一の正規分布からn = 10, 100, 1000でサンプリングし、10、30、50個のビンでヒストグラムを描くと、同じ分布でもヒストグラムの形が大きく異なる
  • 小標本(n < 30)ではすべてのデータ点を直接プロットするほうがはるかに望ましく、n = 100でもビン数によってヒストグラムの見た目は大きく変わる
  • ヒストグラムがビン数の変化に頑健になるには、標本サイズが約1000以上必要

16. 二峰性(Bimodal)データに箱ひげ図を使ってはいけない

  • 箱ひげ図は中央値と四分位数に焦点を当てるため、二峰性分布(および多峰性分布)データを適切に表現できない
  • 箱ひげ図を作る前に必ずデータの分布を確認すべき
  • 小〜中規模の標本サイズ(数万未満)では、ggbeeswarmパッケージのgeom_quasirandom()を使ってすべてのデータ点を直接表示するのが最善の実践
  • バイオリンプロットやヒストグラムなどの分布ベースのグラフィックは、小標本では頑健ではない

2件のコメント

 
xguru 2023-11-21

記事タイトルが面白いですね。元記事を見るとサンプルのグラフも一緒に載っているので、見やすいです。

 
GN⁺ 2023-11-21
Hacker Newsの意見
  • 一方では、こういう内容はかなり優れているように見える
    もう一方では、こうした悪いグラフの多くは、データポイントが少ないことや怪しい基礎分布を隠そうとして意図的に選ばれているようにも見える
    だから「友人ならこんなことはさせない」というより、「明確に示すのではなく曖昧にするグラフを見たら、意図的かもしれないと疑え」に近い

    • 間違いではないが、研究者も非常に不完全。常に忙しく、実際に作業を改善する時間がなく、重点はすべてそこそこ十分な論文を出すことにある
      自分が関わった論文で「今すぐ出そう」ではない態度だったものは0件だった
      グラフが明確でない理由は、明確にするには時間と労力が必要で、学界にはその両方が大きく不足しているから、という場合が多い。見苦しいディテールを意図的に隠すことも確かに時々あるが、そうした悪い図の主な発生源だとは思わない
    • AMDとNVIDIAも毎年かなりひどいグラフを大量に出しているが、それは意図的なもの
    • 心理学の文献では、意図的かどうかにかかわらず確実に起きていることで、とくに最初の点がそうだと思う。心理学の論文はANOVAのp値を報告し、すべてが正規分布だと平然と仮定する
      ある集団は寝た子を起こす必要がなく、別の集団は単に知らない。研究をすべきでない人たちもいるが、訓練が不足しており、安い博士人材も簡単には手に入らないので、現状のようになっている
    • ほとんどの人はグラフの配置ができない。軸ラベルすらきちんと付けられないことが多い
  • 「友人なら、外れ値を最大値に設定しないヒートマップを作らせない」という例は本当によくある。ビデオゲームの統計可視化でもよく見かける
    戦略・シミュレーションゲームには、プレイヤーが状況や問題を理解するのを助ける可視化が多いが、ヒートマップは外れ値効果のせいで色のグラデーションがかなり役に立たなくなることがよくある
    たとえばOxygen Not Includedで温度の可視化をオンにすると、火山のような熱源がある場合、他の色がすべて冷たく見えるため、画面が青かピンクがかった赤だけに変わりがち。1000°Cの火山と、少し過熱した270°Cの蒸気室を区別できず、どちらもほぼ均一なピンクがかった赤になる。過熱した60°Cの基地も相対的には冷たくて青く見えるので、温度問題を診断するヒートマップとしてはほとんど役に立たない

    • 特定の温度が意味のある問題を示すなら、色はその温度を示すように標準化すべきで、現在存在する温度範囲全体から自動生成してはいけない
      実際、温度の変化に応じて色の意味が変わるのは、かなり悪いアイデアに聞こえる
    • ここではデータを対数変換すれば適切な解決策になるのでは? 火山の温度そのものが関心外なら、除外するか外れ値として表示するのが正しいだろうが
    • 私の友人は文字どおり熱マップを持っている。つまり赤外線サーモグラフィーカメラで、明らかな外れ値をデジタルビデオカメラが露出オーバー領域を示すように、赤と白の縞で表示する
      ホットスポット警告としても機能し、同時にそれらを無視せよという通知としても機能するので、本当に便利
  • 以前HNで、あらゆる軸の最小値が0でないグラフはすべて誤解を招く、と言っていた人がいて、激しく議論したことがある
    気候変動による全球気温上昇のグラフについて話していた最中だったが、その人はY軸である温度が0から始まっていないのでグラフがmisleadingだと言っていた。華氏0度なのか摂氏0度なのか、忌々しいケルビン0度なのかも分からないが
    さらには「底を0にしたときに見えない変化なら、そんなに有意義な変化ではないのかも?」とも言っていた。しばらく人間性への信頼がへこんだが、今はもう少し高い水準で話しているようで安心した。2016〜2020年は別の時代だったようだ

    • その人には、X軸が「年」なのに西暦0年から始まるチャートを渡せばいい
    • 温度の比率を意味のあるものにしたいなら、実際にはケルビンで0点を取る必要がある
      25°Cが20°Cより「25%熱い」ように見せるグラフは、その意味で誤解を招くと言える。もちろん、これが地球温暖化否定を正当化するわけではない
    • 簡単な解決策は、特定の基準日以降の**°C変化量**を描くこと。どんなグラフでも、すべての点からy(x_0)を引けばよい
    • 「0がすべての軸の最小値でないグラフは誤解を招く」という言葉には、ある程度同意する
      たとえば最初に見つけたグラフがこれ: https://religionnews.com/wp-content/uploads/2014/08/61Years-...
      一見すると2/3減ったように見えるが、これは誤解を招く。こうした下落グラフは、実際の減少幅を反映しない視覚的印象を与えることが多い
    • 完全に理解していない問題から、過度に単純化したルールだけを持ち帰った古典的な例。浅い知識は危険
  • データ可視化についてさらに読みたいなら、Edward Tufte の The Visual Display of Quantitative Information は優れた参考書。1983年に初版が出た古典だが、今でも意義がある

    • 興味深い本で、良い例と悪い例が本当に面白いのでおすすめできる。
      ただし、本の中心的な前提である「情報に対するインク比率を最大化せよ」は非常にもっともらしいものの、根本的に欠陥がある。インクの量、画面上でいえば黒いピクセル数は、視覚的複雑さと同じではないからだ。脳が視覚情報を解釈するときには、すでに境界検出やグルーピング、その他の前処理を終えている。
      散布図で、軸を隅で交わらせず、データ範囲だけを示すように軸を短くする例を挙げて、インクは少なく、情報は多く見せられるのでウィンウィンだとしている。だが比べてみると、修正版のほうが視覚的により複雑なのは明らかだ。テキストと複数のグラフが同居する複雑なページなら、断片が視覚的に混ざり合ってさらに悪くなるだろう。
      そうした複雑さを減らす方法の一つは、プロット全体のような大きな領域をボックスで囲むことだが、ボックスはその本や他の場面で Tufte にとって絶対的な敵である。あれほど長く視覚表現を見てきたにもかかわらず、そうした態度を保っているのは驚きだ。
    • 良い本。John Tukey の古典的論文 Some Graphic and Semigraphic Displays もおすすめ: https://www.edwardtufte.com/tufte/tukey
      Tukey は Tufte のメンターの一人だった。
    • 歴史的な観点では興味深かったが、今日ではオンラインにずっと膨大な資料がある状況で、「秘密」の情報や付け加えるべき内容があるわけではなかった。
      データとそのデータの物語に合うチャートを選ぶための高レベルな概観としては http://data-to-viz.com が優れており、さまざまなプロットライブラリの例も、着想を得る参考資料としてよい。たとえば https://matplotlib.org/stable/gallery/index.html
    • 良い助言だが、その後に神経科学と知覚理解が進展した点は念頭に置くべき。
      非常に興味深く関連性もあるが、このテーマの最終結論ではない。
    • 彼は、良いデータ可視化を形作る要素を考えるための洞察に富んだ枠組みを提示していると思う。
      ただ、多くの人はその背後にある論理を見落とし、単に Tufte スタイルをそのまま真似してしまう。その結果、過度に様式化され、偶像破壊的に見えることがある。R の ggplot2 のデフォルトプロットが良い例だ。
  • よくあるデータ可視化の失敗をうまく概観している記事なので、同僚たちと共有する予定。補足資料としては Kennedy Eliot の 39 studies about human perception in 30 mins を強くおすすめする: https://medium.com/@kennelliott/39-studies-about-human-perce...
    データ可視化のベストプラクティスをめぐる多くの主張について、その研究上の根拠を素早く俯瞰できる。特に、円グラフを使うなという教条は興味深い。1930年代からデザイナーたちがずっと違和感を抱いてきたテーマだが、研究結果は良く見ても結論がはっきりしない。

    • この記事は見ていなかったが、最近の論文を一つすすめようと思っていた: https://journals.sagepub.com/doi/full/10.1177/15291006211051...
      Medium の記事をざっと見ると、これらの問題について同じ観点を持っているようなので、互いに補完し合うと思う。
  • 「3. 友人なら、一方向のデータに双方向のカラースケールを使わせない」で、そもそもあの例にどうして色を使うのか分からない。

    • まさにこれ。同じ情報を二重に符号化する必要はない。そうすると、そのグラフが何を示しているのかを余計に考えなければならなくなるだけだ。
    • 例ではカラースケールが何も改善していない。それでも一般的な助言自体はなお良い。
      多くの場合、単一変数の表現は、グレースケールだけを使うよりもカラースケールを使うことで改善されることがある。その場合、一方向のデータに双方向のスケールを使うのはよくないし、その逆も同様だ。
    • ここでの「例」は、実際の使用例というより、カラースケールの特性を示すものとして理解するほうがよさそう。
      つまり、カラースケールをいつ使うべきかを示す例ではない。
    • 棒の長さを使って状況を説明しているだけ。両方を同時に使えと勧めているわけではない。
  • こうした教訓の多くは新しいものではない。Willard C. Brinton の Graphic presentation という1939年の本を見ればよく、無料でアクセスできる: https://archive.org/details/graphicpresentat00brinrich/mode/...

  • 私の目には、これらもまだ全部よくない。チャート装飾が多すぎるし、ほとんどは色も多すぎる。
    あの線がすべて必要なわけではない。慎重に減らせば、もっと読みやすくなる。Edward Tufte のどの本を見てもそういう内容で、基本的な手法をいくつか押さえるだけでもかなり遠くまで行ける。

  • バイオリンプロットが好きだったことはないが、データ可視化分野の人間ではまったくない。ちょうど1週間前に violin plots should not exist という動画を偶然見て、パズルのピースがはまった: https://youtu.be/_0QMKFzW9fw?feature=shared

  • Bill Cleveland の研究をもとに、こうしたアイデアのいくつかを一貫した枠組みにまとめた How Humans See Data という発表を行った
    https://www.youtube.com/watch?v=fSgEeI2Xpdc

    • アップしてくれてありがとう。素晴らしくテンポも良い発表で、40分があっという間に過ぎた
      推定の3段階 の部分は本当に目を開かされました。後から見れば当然なのですが、自分で説明してもらうまでは結びついていませんでした