読書感想文「データ分析のためのデータ可視化入門」
2021/1/26 に講談社サイエンティフィック様から出版された「データ分析のためのデータ可視化入門」を翻訳者陣(瓜生真也様・江口哲史様・三村喬生様)のうちの一人であるシエ口様より献本いただきました.
本記事はその読書感想を記したものです.
本書の概要
本書はデューク大学の社会学で教鞭をとる Kieran Healy の名著「Data Visualization: A Practical Introduction」(2018)の翻訳本です.
原本は R のコミュニティにのみではなく世界的にも評価をうけており,この本を題材にした可視化の workshop が昨年(2020年)の rstudio::conf で開催されています(Healy はその時の講師).
本書の主な内容は
可視化をなぜ行うか?どう行うべきなのか?
R + ggplot + tidyverse (dplyr) の代表的な使い方
地図の可視化に関する内容
より美しい可視化のためのグラフの装飾の説明
といったあたりになるかと思います.
そして,可視化がテーマということもあり,カラーの図・コードのおかげでとても見やすくなっています.
では早速ですが,一章から八章にかけて印象に残った点や簡単な要約を順に挙げていきたいと思います.
少しの間,お付き合いいただけますと幸いです.
第1章 データを見る
データを可視化することの必要性を説くことから始まり,可視化をするにあたってどのように可視化すべきか・どういった点を考慮しなければいけないかを解説しています.
人間の知覚が色や形状などに如何に惑わされやすいか,そして,それらを誠実かつ効果的に使うことでより良い可視化ができるという事が述べられている点が,巷のデータ分析の可視化に関する本と一線を画しているように思いました.
個人的に,可視化はデータの本質をいかに捉えて表すか・どれくらいグラフをみる人の気持ちになれるかだと思っていましたので,この章の内容はごく自然な主張で読みやすかったです.
ちなみに,ggplot は default の option 設定などでも,比較的「誠実」かつ「よい感じの装飾度合い」でグラフ描画をしてくれるパッケージのように思います.
第2章 さあ,始めよう!
R と RStudio のインストール方法や簡単な使い方,R Markdown を使用する利点などが説明されています.既に R User で可視化にのみに興味があるという方は,本章は飛ばしてもかまわないと個人的には思います.
第3章 プロットを作る
long type の tidy データを入力の前提とした ggplot の基礎的な使い方が説明されています.
初心者の頃にやってしまいがちな, aes 関数の color option に named color 文字列を与えてしまうというミスに関して,丁寧な解説をしていたのも好印象です.
# A common mistake for mapping option in ggplot function
mapping = aes(x = ..., y = ..., color = "purple")
これ・・・凡例に "purple" という文字列ラベルが出現してしまうんですよね.私も最初 ggplot を触った頃によくやりました(笑
第4章 正しい数値の示し方
この章では,ggplot の code の文法が正しいだけでは駄目で,データの特性をしっかりと ggplot に理解させ正しく描画させることの重要性を説いています.
例えば,group option を設定し忘れたり,facet_wrap 関数をうまく使えていなかったりすると流石の ggplot でも変なグラフを出力してしまいます.ggplot といえども,group 別のカラムとして認識させるものが誤っていたらへんてこな描画をしてしまうわけですね.ggplot はあくまでも描画はしてくれますが,データの構造までは完璧には推し量ってくれないと考えておくべきでしょう.
ちなみに,本書内で紹介されていた @accidental__aRt という twitter account (https://twitter.com/accidental__art) は必見です.なんらかの設定ミスによって意図されていなかった,とても変な,それでいて時には芸術的でさえある描画結果が RT されています。
第5章 データの整形・ラベル・メモの追加
tidyverse(dplyr)のトレードマークといっても差し支えのないパイプ(%>%)演算子を利用したデータの整形の仕方の基礎が解説されています.
group_by や summarize 系の関数を使って集約した結果の可視化の説明に加え,グラフ内へのテキストの描画・軸の変換・描画テーマの変更なども解説されています.
第6章 モデルデータの可視化
geom_smooth 関数を使用して,回帰モデルの結果を図に追加する方法の解説から始まる章です.続いて,Ordinary Least Squares(OLS)によるフィッティング結果を格納したオブジェクトの中身を確認する方法を説明し,naive に(オブジェクトから係数を取り出してデータフレーム化して・・・という流れ)モデルのフィッティング結果を図示する方法を解説しています.
しかし,最大の目玉は broom パッケージの解説でしょうか.
私も少し前にこのパッケージを知りましたが,とても便利です.
モデルのフィッティング結果をもつオブジェクトから係数や信頼区間・p 値といった情報を都度とってきて,その後データフレーム化して・・・というプロセスをわざわざやらなくて済むようにしてくれる素敵な関数です.本章を読むことで broom パッケージの使い方,特に tidy, augment, glance 関数等の扱い方を把握できると思います.
第7章 地図を描画する
世の中にはたくさんの R の可視化に関する記事や書籍が Web や紙媒体を問わず出版されていると思います.しかし,地図の描画に関する話題を取り扱ったものは意外と少ないと思います.
本書では主に,緯度・経度情報を利用した geom_polygon 関数による描画を解説していますが,ggplot の 2.3.0 以降ですと公式に geom_sf 関数が利用できるようになっており,sf オブジェクトを利用したそちらの描画を利用する人が近年では多いような気がします.geom_polygon 関数は本書で,geom_sf 関数は他の媒体で勉強してみると良いのではないでしょうか.
ちなみに,翻訳陣の一人である瓜生氏はご自身のブログで ggplot を利用した地図の描画に関する記事を多数公開されています.
もちろん,geom_sf 関数に関する記事も多数書かれています.
蛇足ですが,twitter でハッシュタグ #30DayMapChallenge で検索をかけると,美麗な地図描画の投稿を多数みることができます(下リンクは著者の一人である瓜生氏の tweet).ここまでの描画ができるようになるまでは鍛錬が必要そうですが,こういったクオリティの描画ができるようになりたいものですね!
第8章 プロットを整える
最後の章はグラフの軸ラベル,タイトル,キャプションなどを付け加える方法やカラーパレットを選択する方法などが解説されています.この章はおまけ程度に捉えておくと良いかもしれませんが,labs 関数や theme 関数の使い方くらいはおさえておくと良いのではないかと思います.
長くなってしまいましたが,最後までお読みいただきありがとうございました.
この記事が気に入ったらサポートをしてみませんか?