Smart Lab Life

〜あなたの研究生活をちょっとハッピーに〜

第9回 もっとグラフで上手に表したい… 〜統計解析・グラフ作成ソフト「R」のご紹介

CASE

先生「この表とグラフはわかりにくいから,箱ひげ図などを使ってもっと分かりやすい図を描いて」

学生(箱ひげ図ってエクセルでどう描くんだろう?それに,箱ひげ図も描いたら描いたらで,わかりにくいって言われそうだし...)

Rでグラフを描きたい

観察・実験結果をまとめる時に,グラフ・図示化は便利です.複雑な関係性をスパッとグラフや図でまとめられたら,気持ちがいいものです.羊土社HP担当の私もHPのアクセスや売上をグラフにするときは,一目でわかるモノを描きたいと日頃感じています.

しかし,いいグラフを描きたくても,「エクセルや解析ソフトは使いにくい」と感じる方も多いと思います.そのため,「KaleidaGraph」「Origin」などのソフトウェアを購入して使っているという声もききます.一方で「ソフトを買うのはちょっと...」という方もいるのではないでしょうか?「R」1)という統計解析・描画ソフトを使ってみてはどうでしょうか?「R」というソフトの名前を耳にしたことはあっても,どんなことができるかはよくわからない方も多いかと思います.

そこで今回は,「R」でどういうグラフが描けるのかをご紹介いたします.様々なグラフが描けるということの説明がメインとなりますので,具体的な操作方法は割愛します.

SOLUTION

今回グラフを作るためのサンプルデータとして,日本野球機構(NPB)のページにある2018年のセリーグ打者成績を利用しました.以下のグラフでは143打席以上の打者を抽出して作図しています.

箱ひげ図

最初のcaseに出てきた箱ひげ図から始めていきます.箱ひげ図を用いて,各チームごとに打者の得点能力を表す指標”OPS”の分布を表してみます.

Image

箱ひげ図をみると,優勝した広島打線の全体的な質の高さが,他の5チームと比べて違うというのがよくわかります.また,全体1位の選手も広島にいることがわかります.

しかし,箱ひげ図だけだと実際の詳しい分布が見えにくいので,一工夫してみます.

Image

実際の各打者の成績を点で追加いたしました.こうしてみると,広島の上位2人が飛び抜けて成績が良いことがよくわかります.こちらの点は”beeswarm” 2)と言われる手法で描いています.

ほかにも箱ひげ図のように分布を表す図としては,データの分布密度を表す"Violin plot" 3)という手法もありますので,気になる方は調べて見てください.

ヒストグラム

箱ひげ図以外にも分布を表すという方法としてヒストグラムがあります.こちらはエクセルでも簡単に描けるものですが,階級の幅の決め方にルールがないため,階級の決め方などで悩むこともあります.階級幅の決め方で困った時に「R」を使うと「スタージェスの公式」「スコットの選択」「フリードマン・ダイアコニスの選択」などといった『階級の幅の決め方』を手軽に利用することができます.『階級の幅の決め方』を利用するだけではなく,階級の分割数の検討も気軽にできます.

Image
Image

散布図

エクセルでもボタン一つで散布図は描けるのですが,Rを使うと多次元データを使った複数の散布図を一度に描くことができます.

Image
クリックして拡大

こういう図を一枚つくって眺めてみると,意外な2項目の分布、相関関係がみつかったりします.

ヒートマップ

マイクロアレイなどで観察した発現量を表す際によくみるヒートマップも『R』で描けます.左・上側に系統図も載せることができ,一度に多くの情報を図示することができます.

Image
クリックして拡大

ここまで,4種類のグラフを紹介して参りました.「今までと違ったグラフ描いて実験結果を見直して見たい」と思った方は検索エンジンで『R 始め方』などで調べてみてはいかがでしょうか?羊土社でもRに関する本も出していますので,ぜひ参考にしてください.

今回使いましたデータやコードは次回ご紹介いたします.

羊土社のRに関する本

Rとグラフで実感する生命科学のための統計入門

石井一夫/著

参考文献

  1. R Core Team (2018). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
  2. Aron Eklund (2016). beeswarm: The Bee Swarm Plot, an Alternative to Stripchart. R package version 0.2.3. https://CRAN.R-project.org/package=beeswarm
  3. Daniel Adler (2005). vioplot: Violin plot. R package version 0.2. http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler

TIPs〜ちょっと役立つコンピュータ豆知識 目次

オススメコンテンツのご紹介