[連載] フリーソフトによるデータ解析・マイニング 第1回

データ解析・マイニングとR言語

1.データ解析・マイニングとツール

  データ解析とは、データに内在する構造を明らかにし、データから情報を見つけ出す手法や方法論の体系である。近年、「データマイニング」という言葉をよく耳にする。データマイニングとは、膨大なデータの山から宝物 (情報) を掘り出す (採鉱、mining) 技法や方法論の体系である。両者はデータを研究・処理対象とし、データから情報を見つけ出すことを目的としている。
  データ解析は、統計学に基礎をおいたデータの処理であり、データマイニングはコンピュータの資源に主眼をおいたデータの処理である。しかし、データ解析でもコンピュータの資源を最大限に活用しなければならないし、データマイニングでも従来のデータ解析の理論や方法を用いていることから、特別な説明がない限り、同一の概念として扱う。
  データ解析・マイニングの方法やツールの開発などには、線形対数や微分積分や機械学習理論など数理的な知識が欠かせないことから、データ解析・マイニングは理工系の分野であると人文・社会系は敬遠しがちである。しかし、データは人間社会のあらゆる分野にかかわりを持っており、数理科学に縁がない方にもデータ解析・マイニングのスキルが求められつつある。けれでも、数理基礎が弱い人文社会系のユーザにデータ解析・マイニングの方法にかかわる数式の展開やアルゴリズムの詳細などを漏れなく理解するように求めることは現実的ではない。
  運転免許を取得し、運転をする場合、車のすべての機械構造や電気経路およびその動作の原理まで理解しなくても、車を正しく利用することが可能である。また、IT 社会になっている現在、コンピュータの設計原理や部品の作動原理や通信理論などに関してすべて詳細に把握しなくてもコンピュータやインターネットを利用することが可能である。
  データ解析・マイニングもこれと同じくエンドユーザは必要最小限の知識さえ持っていれば、データから情報を見つけ出すことが可能である。本稿では、エンドユーザを対象として、データ解析・マイニングについてツールの説明を通じて概説を行う。
  エンドユーザがデータ解析・マイニングを行う際は、図1に示すように、データの構造やデータ解析の目的に適した解析・マイニングの方法を選択し、用いる方法の条件にあわせて整理・加工したデータを投入すると、解析結果が出力される。用いたデータ解析・マイニングの方法の原理やアルゴリズムの詳細について十分理解していないエンドユーザにとっては、出力結果を正しく読み取り、分析することが非常に重要である。

データ解析・マイニングの過程の略図

図1 データ解析・マイニングの過程の略図

2.R言語について

  エンドユーザがデータを解析・処理するためには専用ソフトが必要である。データ解析用の専用ソフトは何十年前から研究開発が行われ、多くのソフトが市場で流通されている。そのなかで最も広く知られているのは SAS、IBM-SPSS (SPSS とよぶ)、S 言語などがある。
  SAS、SPSS の歴史は古く、開発当時は一つの大学・研究機関が1台の大型汎用コンピュータを持ち、管理員が機械の使用権及びスケジュールを管理していた時代であった。そのときの大型コンピュータは、大型といっても今日のパソコンより性能が低いものであった。SAS、SPSS は開発した当時の歴史的な背景のこともあり、異なる角度から解析を繰り返し行うのには向いていなかった。またデータを視覚化するグラフィックス環境も貧弱であった。
  このような短所を克服し、データ処理を探索的により効率的に行うため、1980年代にデータ解析・処理用のソフト S 言語が開発された。S 言語は、アメリカの AT&T のベル研究所において開発された。S 言語では、個々のデータ処理プログラムを一つ一つのパーツとして見なし、それを組み合わせることにより、複雑な解析・処理を行うことが可能である。また開発当時は、SAS、SPSS よりグラフィックス環境が格段に優れていた。
  データマイニング機能をそろえた SAS、SPSS、S 言語のパッケージは値段が高く、一般の個人ユーザがボケットマネーで簡単に買えるものではない。コンピュータの普及に伴い、データ処理・解析の必要性が高くなり、Excel のような手軽く利用可能な表計算ソフトが開発された。しかし、表計算ソフトは大量のデータを本格的に処理・解析するのにはむいていない。Excel に追加するデータ解析ソフトも市販されているが、機械学習の機能を取り入れたソフトは見られない。
  そこでここでは、データ解析・マイニングのツールとしてR言語 (以後略して R と呼ぶ) を用いる。R は、ニュージーランドのオークランド (Auckland) 大学の統計学科の Ross Ihaka とアメリカのハーバード大学の Robert Gentleman により開発がはじめられ、1997年からは多くの賛同者が加えられ、開発され続けているオープンソース方式のデータ解析・処理の専用ソフトである。
  R は、見かけ上 S 言語との差異が少ないことから、R は S 言語のクローン、あるいは方言であるといわれている。 R は、主なデータ解析ソフト SAS、 SPSS、 S 言語、 Excel など、プログラム言語 C、FORTRAN など、データベース管理システム SQL などとのインタフェイスが充実しており、パッケージの作成やデータ渡しが容易である。また、 Rは、UNIX、Windows、 Mac など主な OS に対応するバージョンがある。

3.Rのインストール

3.1 Rのダウンロード

  R にはいくつかの OS に対応したバージョンがあるが、ここでは Windows バージョンのみについて説明する。Rは世界の十数か所からダウンロードすることが可能である。日本では統計数理研究所の下記の URL からダウンロードすることができる。
  https://cran.ism.ac.jp/bin/windows/base/

3.2 Rのインストール

  1. ダウンロードした rw****.exe をダブルクリックすると 「Setup Wizard」 のダイアログボックスが開かれる。
  2. 「Setup Wizard」 のダイアログボックスの[Next]ボタンをクリックすると 「License Agreement」 のダイアログボックスが開かれる。
  3. 「I accept the agreement」 をクリックし、[Next] ボタンをクリックすると 「Select Destination Directory」 のダイアログボックスが開かれる。
  4. インストールしたいディレクトリ (フォルダ) を指定する。通常では、C:\Program File\R\rw**** にインストールする。[Next] ボタンをクリックすると 「Select Components」 のダイアログボックスが開かれる。
  5. 「Select Components」 のダイアログボックスではインストールした後使用するマニュアルやヘルプのファイルを選択する。ハードディスクの容量および必要に応じてインストールしたい項目にチックを入れる。「Compiled HTML Help Files」、 「HTML Help Files」、 「Online PDF Files」 はインストールすることをすすめる。 [Next] ボタンを押すと 「Select Start Menu Folder」 のダイアログボックスが開かれる。
  6. 「Select Start Menu Folder」 のダイアログボックスの [Next] のボタンを押すと 「Select Additional Tasks」 のダイアログボックスが開かれる。
  7. 「Select Additional Tasks」 のダイアログボックスのすべての項目を選択し、[Next] ボタンを押すとインストールの進行を示すダイアログボックスが開かれる。
  8. インストールが完了すると、終了ダイアログボックスが開かれる。終了ダイアログボックスの [Finish] ボタンを押し、インストールを終了する。

4.Rの起動と終了

4.1 Rの起動

  ディスクドップの R のショートカットアイコン Rのアイコン をクリックすると R が起動される。あるいは、「スタート」 ⇒ 「すべてのプログラム(P)」 ⇒ R のフォルダから R をクリックする。
  R を起動すると、図2のようなウインドウが開かれる。 R でのデータの加工、処理、解析、マイニングは、基本的にはコンソール上でコマンドの操作で行う。

Rの起動画面

図2 R の起動画面

4.2 Rの終了

  R を終了するのには、R のコンソールに「q()」を入力し (あるいは quit()) 、[Enter] キーを押すと、図3のようなダイアログボックスが開かれる。

「Question」ダイアログボックス

図3 「Question」 ダイアログボックス

  作業中に作成したオブジェクト (データ、関数など) を保存したいときには 「はい(Y)」、廃棄する場合は 「いいえ(N)」 をクリックする。
  終了の操作は、RGui (R ウインドウ) の 終了ボタン をクリック、あるいは RGui のメニューの「File」 ⇒ 「Exit」をクリックしてもよい。

5.関数とオブジェクト

  R は、関数型、あるはオブジェクト型であるといわれており、データ解析・マイニングは、操作対象 (データや条件など) を関数に代入する形式をとっている。 R での指示・命令文の書式は

関数(引数)

である。関数は、データに対して処理を行うプログラムであり、R には数百の関数が用意されている。ここでいう引数は、データおよび関数の設定に関するパラメータなどである。
  データ、あるいは関数は R 環境上でファイルとして作成される。R では、保存されている関数、データをオブジェクト (object) と呼ぶ。
  ここで、簡単な関数の例をあげる。データを処理するためには、データを入力しなければならない。いくつのデータを一つのオブジェクト (ファイル) として結合する関数は c である。関数 c は combine (結合) の頭文字である。 R を起動し、コンソールに

> c(1,2,3,4,5)

を入力し、実行する ([Enter] キーを押す) と画面に

[1] 1 2 3 4 5

が返される。出力の結果のなかの[1]は始まる要素の番号である。このようにコンピュータ画面に返されている結果はR環境にオブジェクト (ファイル) として保存されていない。実行した結果をオブジェクトとして保存するためには、代入 (付値、assignment) の手続きが必要である。
  一般的な代入の書式は

オブジェクトの名前<−関数(引数)

である。代入はオブジェクトの名前と関数 (あるいはオブジェクト) を 「<-」 でつなぐ。
  例えば、c(1, 2, 3, 4, 5) の結果をオブジェクトにしたいときには、オブジェクトの名前を決め、その名前と c(1, 2, 3, 4, 5) を 「<-」 でつなぐと、データ1, 2, 3, 4, 5がオブジェクトとして記録される。オブジェクトの名前は、各自が自由につければよい。例えば、オブジェクトの名前を x にし、コマンド

x <- c(1,2,3,4,5)

を実行すると x にデータ1, 2, 3, 4, 5が一つのオブジェクトとして記録される。オブジェクト x の中身を画面に出力するためには、コンソールに x を入力し、[Enter] キーを押すと、コンソール画面に次の結果が返される。

[1] 1 2 3 4 5

  R は日本語の全角文字も扱えるようになっているので、日本語の文字列をオブジェクトの名前やデータのラベルとして用いてもよい。

6.R言語の仕組み

  R 言語はオブジェクト指向型言語であり、関数型言語であもある。R 言語には一般的によく多く用いる統計用の関数が用意されている。例えば平均を求める関数は mean である。上記に作成したデータオブジェクト x の平均は次のように求めることができる。

> mean(x)
[1] 3

  R 言語は関数を重ねて用いることができる。例えば、上記の x を対数 log(x) をとった後、平均をとる計算は次のように行う。これは x の対数演算が g(x)、平均の演算がf ()とした場合の関数式は f (g(x)) である。

> mean(log(x))
[1] 0.9574983

  このような関数は必要に応じて自分で既存の関数を組み合わせて作成することもこともできる。R の一つの大きな利点は、多くの統計計算や処理の関数をパッケージ化し公開している。2016年5月の現在9000を大きく上回るパッケージが公開されている。R のパッケージが最も多く公開されているのは CRAN (Complete R Archive Network) のミラーサイトであり、2016年5月の現在8348のパッケージが登録されている。近年パッケージの数は指数分布に増加している。CRAN 以外に生物統計関連のパッケージを集めているサイト Bioconductor があり、2016年5月の現在1104のパッケージが登録されている。
  R をインストールする際にいくつかのパッケージがインストされる。それ以外のパッケージはインターネットが接続されている環境で自由にダウンロードしてインストールすることができる。