セールスエンジニアの勉強ノート

日々成長を目指す40目前ダメダメセールスエンジニアが日々の勉強の記録を残します

初心者がデータを使って統計分析する第一歩「楽しいR」

環境セットアップ

書籍の中では、 環境準備としてWindows環境へのセットアップ手順が紹介されています。 私はMac OS上へインストールしました。 下記サイトから自分のOSバージョンにあったファイルをダウンロードしてクリックして進めるだけです。

https://cran.r-project.org/bin/macosx/ 

 

起動

本書にはRがどんなものかを体感できるようにサンプルデータが用意されています。まずはターミナルからRを起動してみます。

f:id:otosan22:20170611005625p:plain

 

サンプルデータのロード

下記リンクからサンプルデータをダウンロードします。

楽しいR ビジネスに役立つデータの扱い方・読み解き方を知りたい人のためのR統計分析入門 ダウンロード | 翔泳社の本

 

ダウンロードしたファイルを、Rの作業用ディレクトリに配置して実行します。

> sample<-read.table("sample.txt",header=T)

実際に読み込んだデータを表示してみます。

> sample
DATE Jyunkou Listing CV_Jyunkou CV_Listing
1 2014/1/6 122067 373 11 15
2 2014/1/7 114137 364 17 13
3 2014/1/8 128640 357 16 13
4 2014/1/9 113522 352 15 15

こんな感じで出力されます。

データに異常値がないかを確認する

ここからは本格的に統計学を学びながらRを使っていきたいと思います。

データに異常値がないかどうかを確認するには、平均や中央値を使う、あるいはヒストグラムを作成するというのが有効ですね。Rを使ってやってみます。

先ほどロードしたサンプルデータのうち、例えば2列目の変数を出力する場合には次のように実行すれば良いようです。

> sample[,2:2]

 sample[,2:3]とすれば2列目と3列目を表示できます。そして平均を出したければ、meanという関数が使えます。

> mean(sample[,2:2])

[1] 80358.31

もっとまとめて、最大値、最小値や、平均、中央値をまとめて出力してくれるsummaryという関数もあるようです。

> summary( sample[,2:2])
Min. 1st Qu. Median Mean 3rd Qu. Max.
48510 69610 76630 80360 91460 128600

ヒストグラムを出力してみます。

hist(sample[,2:2])

f:id:otosan22:20170611203844p:plain

なにやら110000から120000あたりに山が来ているのがわかりますね。

 

時系列データはデータが揃っていることが絶対

日付データに曜日データを追加する

> sample$DATE
[1] 2014/1/6 2014/1/7 2014/1/8 2014/1/9 2014/1/10 2014/1/11 2014/1/12 2014/1/13 2014/1/14

(省略)


> as.Date(sample$DATE)
[1] "2014-01-06" "2014-01-07" "2014-01-08" "2014-01-09" "2014-01-10" "2014-01-11" "2014-01-12"
[8] "2014-01-13" "2014-01-14" "2014-01-15" "2014-01-16" "2014-01-17" "2014-01-18" "2014-01-19"

(省略)

> weekdays(as.Date(sample$DATE))
[1] "月曜日" "火曜日" "水曜日" "木曜日" "金曜日" "土曜日" "日曜日" "月曜日" "火曜日" "水曜日"

この weekdays(as.Date(sample$DATE)) という列を追加するということをすれば良いようですね。追加するには次の通り。youbiという列に値を追加しています。

> sample2<-transform(sample,youbi=weekdays(as.Date(sample$DATE)))

確認してみます。

> sample2
DATE Jyunkou Listing CV_Jyunkou CV_Listing youbi
1 2014/1/6 122067 373 11 15 月曜日
2 2014/1/7 114137 364 17 13 火曜日
3 2014/1/8 128640 357 16 13 水曜日
4 2014/1/9 113522 352 15 15 木曜日
5 2014/1/10 100794 308 8 7 金曜日
6 2014/1/11 88473 303 7 15 土曜日
7 2014/1/12 87768 312 8 7 日曜日
8 2014/1/13 98202 346 7 17 月曜日
9 2014/1/14 112450 378 8 11 火曜日
10 2014/1/15 110696 374 11 12 水曜日