トップ 履歴 一覧 Farm ソース 検索 ヘルプ RSS ログイン

第3章 Radiantによるデータの可視化


キーワード

最終更新時間:2019年01月01日 20時08分21秒
アフィリエイト・広告について
プライバシーポリシー

この記事はRadiantによるデータ分析入門の一部です。

はじめに

前の記事では、集計表を中心に、データを「観察する」方法を紹介しましたが、Radiantには、豊富な可視化機能が備わっています。直感的な理解のために、データを可視化することはたいへん重要です。この記事では、Radiantで作成できるグラフィックスと操作方法を列挙します[1]

この記事は、Radiantがすでに起動し、iris データを読み込んでいることが前提です。念のため、Radiantの起動手順は以下の通りです。

> data(iris) # Radiantそのものではないですが、使用するデータの読み込み
> library(radiant)
> radiant()

Radiantでさまざまな可視化を行うには、"Visualize" タブに画面を切り替えます。


ヒストグラム

ヒストグラムは、データの分布 (散らばり、ばらつき) を棒の高さ (頻度) と幅 (区間) で表現するグラフです[2]。Radiantでは、"Visualize" タブの左側のメニューから、"Plot-type" で "Distribution" を選択すると作成できます。グラフィックスの種類ごとに設定項目は異なりますが、ここでは以下のようにしてみましょう。

  • "X-variable": Sepal.Length
  • "Facet row": none (デフォルト)
  • "Facet column": none (デフォルト)
  • "Fill": Species
  • "Number of bins": 10 (デフォルト)


上記のようにして、"Create plot" ボタンを押すと、品種別の「がく片」の長さの分布がヒストグラムとして描かれます。グラフィックスは、ggplot2で作成されます。


ここでは、"Fill" に "Species" を指定して、1枚のヒストグラムで塗り分けましたが、"Facet row" または "Facet column" に "Species" を指定することで、品種別に複数のヒストグラムを作成することもできます。また、"Number of bins" のスライダーを調整し、ヒストグラムの区間を変えることで、新たな示唆が得られることもあります。

"Facet column" に "Species" を指定、"Number of bins" を20に変更したようす


また、グラフのタイトルや全体の「テーマ」は、下部の "Labels", "Style" でカスタマイズできます。

てきとうにカスタマイズした結果


なお、作成されたグラフィックスは、右側のダウンロードアイコンからPNG形式でダウンロードできます。

確率密度曲線

確率密度曲線は、ヒストグラムと同様にデータの分布を捉えるためのグラフィックスですが、縦軸は頻度ではなく、確率密度です。データ全体の中で、ある値を取り得る確率が何%であるか、という情報をあらわします。

Radiantでは、"Plot-type" で "Density" を選択すると作成できます。設定項目は、ヒストグラムとほぼ変わりません。ひとつだけ、ヒストグラムでは "Number of bins" であったスライダーが、"Smooth" となっています。これは、確率密度曲線に適用する平滑化の程度を指定するものです。数値が大きくなると、曲線が滑らか (大まか) になっていきます。


散布図

散布図は、一般に2変量 (2列のデータ) 間の関係性を把握するために使います。一方のデータがもう一方のデータに伴って変動する (相関) 関係にあるかなどを観察します。

Radiantでは、"Plot-type" で "Scatter" を選択すると作成できます。設定項目として、"Y-variable" と "X-variable" に異なる2変量を指定します。また、カテゴリ変数ごとに点を塗り分けたい場合は、"Color" にカテゴリ変数を指定します。ここでは、"Y-variable" に "Sepal.Length" を、"X-variable" に "Sepal.Width" を指定し、"Color" に "Species" を指定した結果を示します。


また、"Size" の項目に数値データを指定すると、数値の大小を点の大きさに設定した「バブルチャート」として描画することができます。設定項目下部のチェックボックスのうち、"Line" や "Loess" を選択すると、それぞれデータを線形回帰した直線や、平滑化回帰した曲線が重ねて描画されます。


なお、"Y-variable" および "X-variable" はマウスのドラッグにより複数選択でき、その場合は組み合わせごとの散布図が出力されます。

"Species" を除き、すべての変数を "Y-variable", "X-variable" に指定した結果


ヒートマップ (Surface plot)

ヒートマップは、2次元空間上で、値の高低がどのように分布しているかを把握するためのグラフィックスです。点ではなく、四角形の「タイル」でデータを表現します。「ヒートマップ」を検索すると、Webページのアクセスパターンを図示するマーケティングツールの情報ばかり出てきますが、そのように、ブラウザという2次元空間で、ユーザーの興味関心 (クリックなど) がどこに分布しているかを直感的に把握できます。

現在Radiantに読み込んでいるデータ (diamonds, titanic, iris) はあまりヒートマップに適していませんが、例として、iris データを使います。

Radiantでは、"Plot-type" で "Surface" を選択すると作成できます。設定項目として、"Y-variable" と "X-variable" に異なる2変量を指定します。また、"Fill" に色で塗り分けたい変数 (一般的に数値データ) を指定します。ここでは、"Y-variable" に "Sepal.Length" を、"X-variable" に "Sepal.Width" を、そして "Fill" に "Petal.Length" を指定した例を示します。


"Fill" の値の幅が小さいため[3]、あまり見栄えの良い結果にはなりませんが、"Sepal.Width", "Sepal.Length", "Petal.Length" の3変量の関係性がある程度読み取れます。

また、設定項目下部の "Interpolate" にチェックを入れると、周辺の値を補間します。見た目としてはぼやけたヒートマップになります。


折れ線グラフ

折れ線グラフは、データの時間的推移を把握するためのグラフィックスです。現在Radiantに読み込んでいるデータは時間の情報を持っていないので、ここでは別のデータ (CSVファイル) をインターネットから読み込みます。使用するデータは、とある成人男性[4]の2018年3月から12月末日までの、体組成計による測定データです。

Radiantの "Data" - "Manage" タブから、"Load data of types" で "csv (url)" を選び、上記のURLを入力し、"Load" ボタンを押します。


すると、224行10列のデータが読み込まれます。

どこぞの成人男性の体組成計データ


このデータのうち、特に "date" 列と "weight" 列を折れ線グラフで可視化します。ただし、このデータでは "date" 列が文字列 (character) 型として読み込まれているため、このままでは正常に描画できません。そこで、データ型を変換します。

詳細は第4章 データの加工?で紹介しますが、"Data" - "Transform" タブを開きます。


まず、設定項目から、"Select variables" で "date" 列を選択します。そして、"Transformation type" から "Change type" を選択します。次に、"Change variable type" から "As date/time (ymd_hm)" を選択します。今回は "date" 列を上書きするので、"Variable name extension" には何も入力しません。最後に、"Store" ボタンを押します。


すると、データ型の変換が行われ、"date" 列が "date" 型になります。


データの変換を行ったら、本題の折れ線グラフを作成します。"Visualize" タブに切り替え、"Plot-type" で "Line" を選択します。そして、"Y-variable" に "weight" を、"X-variable" に "date" を指定します。"Create plot" ボタンを押すと、どこぞの成人男性の体重の推移がプロットされます。なお、RadiantのGUI上では、X軸のスケール (目盛間隔) を変更することはできません。


また、"Y-variable" に "weight" に加えて、たとえば "body_fat" を追加 (Ctrl-クリックで複数選択可能) し、"Combine Y-variables in one plot" にチェックを入れると、体重と体脂肪率の推移が1枚のグラフに描かれます。チェックを外すと、それぞれ個別のグラフが出力されます。


棒グラフ

棒グラフは、棒の高さで量の大小を表現するグラフィックスです。一般に、グループ化したデータの観測数や平均値を比較し、傾向の違いを観察するために使われます。

ここでは、Radiantに標準で読み込まれている titanic データセットを使います。"Datasets" の項目から "titanic" を選択します。次に、"Plot-type" で "Bar" を選択します。そして、"Y-variable" に "survived" を、"X-variable" に "sex" を指定します。また、下部の "Function" をデフォルトの "mean" から "sum" に変更します。これで、"Create plot" ボタンを押すと、性別ごとの生存者数のグラフが描かれます。


また、"Fill" で "pclass" を選択し、"Update plot" ボタンを押すと、船室の等級ごとに棒グラフが描き分けられます。


箱ひげ図

箱ひげ図は、Boxplotとも呼ばれ、さまざまな統計情報を1つのグラフィックスの中で表現するものです。具体的には、箱の上下はそれぞれ第1四分位数 (下、25%点) と第3四分位数 (上、75%点) をあらわし、箱の中の線は中央値を示します。箱から伸びる「ひげ」は、一般に最大値、最小値か5%点、95%点を示します (ソフトウェアによります)。

ここでは、"titanic" データを使用します。"Plot-type" で "Box-plot" を選択し、"Y-variable" に "age" を、"X-variable" に "survived" を指定します。また、"Color" に "sex" を指定すると、生存者、非生存者それぞれについて、性別ごとの年齢の分布が箱ひげ図で表現されます。


"Y-variable" や "X-variable" に複数の変量を指定すると、それぞれ個別の箱ひげ図として描画されます。

この2枚の箱ひげ図を比べることには意味がありませんが…


おわりに

この記事では、Radiantで作成できるさまざまなグラフィックスを紹介しました。Rを使っていて、何がいちばん面倒かというと、グラフを描くところだと思います[5]が、Radiantを使うと、GUIで簡単に一般的なグラフィックスを作成できます。データをスピーディに可視化し、議論することで、さらなる高度な分析への示唆を発見しましょう。

カテゴリ: [R, Radiant, データ分析]


  • [1]実際には、多変量解析やモデリングの機能により、他のグラフィックスも作成できます。ここでは、"Visualize" タブで作成可能なものに限っています。
  • [2]縦軸は相対頻度になることもあります。
  • [3]Radiantでは、カラーパレットは設定できないようです。
  • [4]当然ですが、私です。
  • [5]人によるかもしれませんが。