Rにはデータ分析で利用できるさまざまなライブラリが存在する。順番に見ていこう。
まずデータ加工のライブラリだ。データ分析を行う際は各所にある未加工のデータを集約し、前処理を行い集計しやすい形に加工した後、視覚化するという手順で実施する。この中で一番ネックになるのが前処理である。
各所にあるデータをそのままマーケティング部門側の人間が最初から加工し、必要な情報を抽出するのはさまざまな面で非効率だ。先に情シス側で扱いやすい形式に加工し、単純集計まで実施した中間データを作成しておく。そしてこの中間データをマーケティング部門側の人に提供することで、よりスムーズで安定した分析を実施することが可能になる。
以下の表のようなライブラリを用いることで、Rデフォルトの機能を用いるよりも楽に中間データの加工を行うことができる。
パッケージ名 | 詳細 |
---|---|
data.table | Rデフォルトのdata.frameを拡張したもの。より大規模データを高速に処理できる |
dplyr | SQLでデータベースからデータを抽出する感覚で、Rで表構造のデータを扱えるライブラリ。ファイルからの読み込み、またMySQLなど各種データベースに接続してデータの取得が可能。100~1000万行、100Mバイトまで程度のデータなら問題なく扱える。C++で実装されているため高速だ |
tidyr | クロス集計等を行うためのデータ加工用ライブラリ。dplyrと組み合わせれば、クロス集計を簡単に自動化できる |
これらのパッケージを活用することで簡単な統計処理は可能だが、単純集計では見えてこないさまざまなパターン情報を識別し、分析に用いることで、より深い分析が可能になる。回帰(目的変数と説明変数間の関係を表す式を統計的な手法によって推計する分析)、分類(データを複数のグループに分けること)、クラスタリング(データの集まりをデータ間の類似度などにしたがい、いくつかのグループに分けて分析すること)などの分析のためのRライブラリを紹介する。
まずは回帰だ。Excelなどでも実施できる線形回帰分析(直線をモデルに複数の変数間の相関を説明する手法)や重回帰分析(説明変数が2つ以上のもの)はデフォルトで組み込まれているlm()関数により実行できる。また、より一般化し、幅広いデータに適用できるようにした手法に、一般線形モデル(general linear model:GLM)がある。RにはデフォルトでGLMを扱うためのglm()関数がある。これを用いることで、さまざまな回帰モデル構築することが可能になる。
次に機械学習についてだ。機械学習とは人工知能分野における課題の1つであり人間の学習能力を計算機にも持たせるための手法に関する分野である。
まずは、教師あり学習について説明する。教師あり学習とは、事前に正解データを学習させ未知のデータを自動で識別する手法である。これにより将来に起こりうる変化の自動予測、大量のデータの自動分類などが可能になる。
代表的な手法の、サポートベクターマシン(SVM)のライブラリ「e1071」やランダムフォレストのパッケージ「randomForest」が用意されている。
次に教師なし学習について説明する。事前に正解データを用意できないが、対象のデータを自動で分割し、それぞれにラベル付けを行いたいといった場合ではクラスタリング手法の1つである「k-means」と呼ばれる手法を用いることで対応できる。
Rにはデフォルトでkmeans()関数が用意されているのでこれを用いればよい。