統計解析R 入門講座 vol.3 〜 ヒストグラムを描いてみよう〜

By terada, 2016年7月22日


さて今回の統計講座では、統計学の中でも最も重要なグラフのひとつである「ヒストグラム」をRで描いてみようと思います。ヒストグラムとは、横軸に階級、縦軸に度数を取り、データがどのように分布しているかを、ひと目で確認できるとても優れたグラフです。R言語にはこのヒストグラムを表示するための優れた関数がありますので、その使い方をご紹介します。

関数”hist”をつかってみよう

R言語ではヒストグラムを描画するために“hist”という関数が用意されています。ヒストグラムを表示するためにデータを作って表示してみましょう。

# 正規乱数の発生
x = norm(100, mean = 0, sd = 1)

# 変数xのヒストグラム描画
h =hist(x)

まずは“rnorm”という関数を使ってデータを作ります。“rnorm”は正規乱数列を発生させる関数で、引数“mean”が平均値を、“sd”が表示ん偏差を表します。ここでは平均0、標準偏差1の標準正規分布に従う値を100点発生させます。この行を実行してRコンソールにxと入力してEnterを押してみてください。標準正規分布に従った乱数が変数xに代入されていることがわかると思います。このxの値は実行するたびに変わるので試してみてください。

さて次の行のコマンドで変数xのヒストグラムを表示します。実行すると右下の画面にヒストグラムが表示されたでしょうか?このようにRではたった1行の命令で簡単にヒストグラムを描画することができます。

Rplot

ちなみに“hist”という関数はヒストグラムの描画以外にも様々なデータを返してくれます。ヒストグラムにつけた変数hの中身を見るために、Rコンソールにhと入力してEnterを押すと、次のような結果が帰ってくると思います。

> h
$breaks
[1] -3 -2 -1  0  1  2  3  4

$counts
[1]  4 12 27 33 19  4  1

$density
[1] 0.04 0.12 0.27 0.33 0.19 0.04 0.01

$mids
[1] -2.5 -1.5 -0.5  0.5  1.5  2.5  3.5

$xname
[1] "x"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

それぞれ、階級幅や度数などヒストグラムに関する様々な値を得ることが出来ます。ここでヒストグラムを描く上で一つだけ覚えて欲しいことがあります。それがヒストグラムの階級幅を変える方法です。Rではデフォルトでスタージェスの公式に基づいて階級幅を決めますが、全てのデータで必ず適切な階級幅となるわけではありません。データの傾向をつかむためには自分で階級幅を変更してヒストグラムを描く必要があります。ヒストグラムの階級幅を変更するには次のように書きます。

h = hist(x, breaks = seq(-4, 4, 0.5))

引数に“breakes”という項目を追加します。その後に続く“seq”とは配列を作る関数のひとつで、この場合は-4から4まで0.5おきの配列が作成されます。このコマンドを実行すると先ほどの図と異なり階級幅が変更されていると思います。

Rplot2

このようにヒストグラムは階級幅が変わるだけでもかなり印象が変わると思います。データによって適切な階級幅を探すためにこのコマンドを是非活用してください。ヒストグラムは統計でも最も重要なグラフの一つです。データを解析するときは、平均・分散・標準偏差などの統計量を求める前に、必ずヒストグラムでデータをの分布を確認する習慣をつけましょう!

logo2

Soraotoでは社会人・大学生向けに、「統計がイマイチよくわからない人のための統計講座 〜Rで覚える統計の基礎〜」を行っております。内容は「記述統計編」「推測統計編」「相関・回帰編」の全3回をR言語を使って学びます普段統計に馴染みのない方から、仕事や学校で統計が必要な方まで、ぜひ受講してみてください。

Soraotoの統計講座 (http://www.soraotona.net/english.html#statistics)
詳しい開催日程は、当ブログ、Facebook、Twitter等で告知いたします。