【R】5つの基礎的なグラフ描画関数(stripchart, hist, box, plot, qqnorm)

Rで使う基礎的なグラフ関数

箱ひげ図、ヒストグラムなどはRでデータを可視化する際に頻繁に使うのですが、 脳内であまり整理されていなかったため、基礎的な5つのグラフ関数としてまとめてみました。

データセットにはRに組み込まれているFisherのirisデータ*1を利用しています。

ストリップチャート(stripchart)

f:id:ekanoh:20180910145843p:plain

> setosa <- iris[iris$Species == "setosa",]
> stripchart(setosa$Sepal.Length)

ストリップチャートstripchart()は、データの実数を1次元の直線上に配置していきます。重複しているデータは重なるので、ざっくりとデータの取る値の範囲を把握するのに向いているでしょう。

なおmethod="stack"を付けると重なっているデータはズラしてプロットしていく設定になり、下図のように実数ベースのヒストグラムのようなものになります。

f:id:ekanoh:20180910145912p:plain

ヒストグラム(hist)

f:id:ekanoh:20180910145946p:plain

> setosa <- iris[iris$Species == "setosa",]
> hist(setosa$Sepal.Length, breaks=12, xlim=c(4,6))

ヒストグラムhist()は、度数分布を示すグラフです。横軸に階級、縦軸に度数をとり、各階級の度数を長方形の柱で示します。つまり、データの取る値を何分割かして、分割した領域に含まれるデータの数をy軸に表したグラフです。break=で分割の個数を、xlim=でx軸に取る値の範囲を指定することができます。

ヒストグラムを見ることで、データがどのような確率分布に従っているかの見当を付けたり、適切な変換(正規化など)が必要かどうか判断することができます。

箱ひげ図(boxplot)

f:id:ekanoh:20180910150004p:plain

> boxplot(iris$Sepal.Length~iris$Species)

箱ひげ図boxplot()は、データのばらつきを表現したグラフです。分布を四分位で分割していて、箱になっている部分が分布のボリュームゾーンとなっており、中央値もここに含まれます。 使い方はヒストグラムとほぼ同じですが、上図のように複数の箱ひげ図を並べたときに比較しやすいメリットがあります。

散布図(plot)

f:id:ekanoh:20180910150020p:plain

> setosa <- iris[iris$Species == "setosa",]
> plot(setosa$Sepal.Length, setosa$Sepal.Width)

散布図plot()は、「二つの特性を横軸と縦軸とし,観測値を打点して作るグラフ表示」です。要はx軸、y軸のデータを平面にプロットしたもので、2つの特性に関連性があるかどうかを観察するのに使われます。

QQプロット(qqnorm)

f:id:ekanoh:20180910150035p:plain

> qqnorm(setosa$Sepal.Width)
> qqline(setosa$Sepal.Width)

QQプロットqqnorm()は、データの分布が正規分布に近いかどうかを判定するのに使用されます。図に描かれている直線がデータが完全に正規分布に従っている場合の理想的な直線で、プロットされている点がこの直線に近いほど正規分布的な挙動をしていることがわかります。

Rを使って分析できるようになろう

コンサルタント・マーケター・データサイエンティストなどの職種を志している人は、素早くかつ正しく分析を進めることができるようになるためRやPythonなど分析に特化したプログラミング言語を使えるようにしておくとよいでしょう。

まずは、統計・機械学習に特化したオンライン学習サイトであるAidemyで無料カウンセリングを受けて、現状の能力と目標とするべきスキルセットを明確にしておくのがおすすめです。

*1: setosa, versicolor, virginicaという3種類のあやめの 4つの計測値:がく片長(Sepal Length)がく片幅(Sepal Width)花びら長(Petal Length)花びら幅(Petal Width)と種類(Species)からなるデータ