第1回 Rは統計解析のブッシュナイフだ
柏野雄太
バクフー株式会社
2010/7/21
今ほど統計解析が必要とされる時代はありません。オープンソースの統計処理言語・環境の「R」を使って実践的な統計解析のテクニックとリテラシーを習得しましょう! 読者にとってRは、世に溢れるデータの密林を切り開くための“ブッシュナイフ”となることでしょう(編集部)
- - PR -
統計解析の必要性とリテラシー
21世紀になって、経営学者の故ピーター・ドラッカー氏が言うところの知識労働者は、ますます統計解析を必要する局面が増えてきました。この状況は、20世紀後半から21世紀に起きた計算機能力の増大とインターネットの発展を基礎に、3つの大きな潮流が現れたことがキッカケとなっているように思います。その3つの潮流とは、オープンソース、オープンデータ、そしてオープンアイデアです。後ろの2つは今筆者が名付けました。
オープンソースは、皆さんがご存知のように、Linux、Apache、Perl、Python、RubyなどのOSやアプリケーション、プログラミング言語などのソフトウェアのソースコードがオープンに公開され、グローバルな規模で開発が行われてきたムーブメントとその成果物のことです。統計の分野におけるオープンソースソフトウェアのデファクトスタンダードは「R」という統計言語+統合環境です。これについての詳細はおいおい解説しますが、ざっと次のような特徴を持っています。
●Rの特徴
- 統計解析言語Sをベースに構築されたオープンソースのプログラミング言語である(Rという名前はアルファベットのSの前にRがあるところから取られている)
- インタプリタ言語で簡単な文法のために習得が容易である
- 言語はオブジェクト指向言語的側面と関数型言語的側面がある
- 強力な統計解析・データ解析機能を最初から持っている
- オンメモリにデータを展開する
- 統計解析をしやすいデータ型で、データを探索的に分析できる
- 多様で美しいグラフを手軽に作成できる
- CRANアーカイブサイトにある数千を超える豊かな統計ライブラリが存在する
- ユーザーコミュニティには数百万人を超えるユーザーが存在する
- ユーザー数が多いため、質問の回答が得やすく、バグがすぐに収束し、毎週世界のどこかでユーザー会が開催されている
- 商用統計解析アプリケーションに比べても遜色ないパフォーマンス
- 入門的マニュアルから専門の統計解析に至るまで、豊富なドキュメトや書籍が存在する
- 商用パッケージやデータベース、C/C++、Fortran、Perl、Python、Java言語とのスムーズなインターフェースがある
一方で、いまだRが不得意なことも存在します。
- テラバイトを超える大規模データ処理(メモリにデータが展開できないため)
- 複雑なデータ構造の表現(RDBのようなテーブル間の演算機能が低い)
- 複雑なクエリを効率的に処理する(SQLやストアドプロシージャのような効率的なクエリ言語が存在しない)
- ゲームアプリケーションやWebアプリケーションなどの作成(いや、無理すればできますが……)
- 並列化計算、ベクトル化計算(ただし、マルチプロセッサやGPU、そしてOpenMPやHadoopを利用した並列化計算の実装が現在進行中)
Rは汎用のプログラミング言語とはかなり異なり、統計解析やデータ解析に特化している言語です。データを統計解析で使いやすい形でメモリ上に展開し、強力な統計解析関数で対話的、探索的に分析を行い、手軽に高品質なグラフィックスを作成します。

RプロジェクトのWebサイト
データが豊富に入手できる時代
以上が簡単なRの紹介です。話を統計の重要性が高まっている理由に戻します。1つ目の理由はオープンソースでした。2つ目の理由は、オープンデータということです。
オープンデータは、公的機関や政府機関が、自身の説明責任を果たすために、統計データを積極的にネットに公開してきたことです。例えば、世界銀行のWebサイトでは、RESTインタフェースにより世界各国のGDPデータを手に入れることが可能です。
また、日本国政府も「政府統計の総合窓口」を公開して、白書にあるような統計データを公開しています。
このようにオープンデータにより誰もが安価で容易に多種多様なデータにアクセスできるようになっています。
公的なオープンデータという存在に加えて、最近では企業も多くのデータを所有するようになっています。例えば、オンラインでサービスを提供しているのであれば、ユーザーの購買履歴や、Webページのクリック数、そしてそれらユーザーのプロファイルといったように膨大なデータがあるでしょう。こうしたデータを解析をすることにビジネス上、大きな価値がある時代となっています。
Rで楽しく統計リテラシーを身に付ける
もちろん統計解析向けの商用パッケージというものがあります。本格的なデータマイニングであれば、データウェアハウスを使うという手もあります。しかし、知的労働の現場において、サッと取り出して目前のデータを料理し、何らかの知見を引き出すということの意味は、かつてないほどに高まっているように思います。データ解析を下請けに出して黒魔術化せずに、自分の頭で考え、統計リテラシー・データリテラシーを血肉化していく。オリジナルなビジネスアイデアというのは、自らの手を動かし、自分の頭で考えることを厭わない、こういう姿勢から出ていると思います。Rという言語+環境は、こうしたニーズにまさにうってつけの“ブッシュナイフ”となり得るのです。
オープンアイデアは、文字通りアイデアの流通が以前に増してオープンになっている現象を指しています。これは学術分野における論文やアイデアのやりとりが、ネット上で盛んに行われるようになってきたことに起因してます。多くの研究者がプレプリントサーバー(例えばhttp://arxiv.org/)を利用してアイデアを交換するようになっています。また、オープンアクセスポリシーを持つ学術誌が増加してきたり、自分のWebサイトでワーキングペーパーや論文を公開することでGoogle Scholar検索によりアクセス可能になったことも理由として挙げられます。誰もが安価で容易に研究論文にアクセスできるようになったということです。
このオープンソース、オープンデータ、オープンアイデアがあるときに、それを利用して楽しまない手はないでしょう。それを利用して統計解析を自分たちのリテラシーとして獲得するためのキッカケにしない手はないでしょう。と、これが、この連載を始める動機になっています。
グーグルでも使われているR
実際に2010年から始まる次の10年は、“Data Matters”(データは重要だ)のかけ声の下、多くの研究者や企業が膨大な統計解析・データ解析を行い、そこから効率よくアイデアやお金の源泉を「発掘」しようと競争が激化していくことでしょう。それがすでに始まっていることは冒頭で述べました。数年前にUCバークレーの看板教授だった著名なミクロ経済学者、Hal Varian氏をグーグルが雇い入れ、統計解析チームが本格的に活動しています。また、同様にIBMやマイクロソフト、Amazonなどの大手IT企業には専門の大所帯の統計解析チームが盛んに活動をしています。こうした活動については、以下の文書も参考になります。
ちなみにHal Varian氏のチームはRをデータ解析・データマイニングのためのプロトタイピング言語と利用し、そこで確立された手法がエンジニアによりC/C++やJava、Pythonにより実装されるそうです。
以上のような状況を考えると、統計解析を「読み書き算盤(そろばん)」と同様のリテラシーに数え上げる日も遠くはない予感がしています。それなのに、オープンソース、オープンデータ、オープンアイデアを利用した統計解析への日本語の手ほどきとなる解説コンテンツが少なすぎるような気がしています。この連載ではその現状に挑戦してみたいと思っています。
1/4 |
| Index | |
| Rは統計解析のブッシュナイフだ | |
| Page1 統計解析の必要性とリテラシー データが豊富に入手できる時代 Rで楽しく統計リテラシーを身に付ける グーグルでも使われているR |
|
| Page2 連載の前口上と小理屈 何よりもまず、実践的な統計解析を体験してみる 誕生月によってJリーガーになりにくくなるのか? |
|
| Page3 誕生月分布のプロット グラフの印象ではなく、定量的に議論するには |
|
| Page4 次回について 統計的検定を利用する |
|
| Coding Edgeお勧め記事 |
| いまさらアルゴリズムを学ぶ意味 コーディングに役立つ! アルゴリズムの基本(1) コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう |
|
| Zope 3の魅力に迫る Zope 3とは何ぞや?(1) Pythonで書かれたWebアプリケーションフレームワーク「Zope 3」。ほかのソフトウェアとは一体何が違っているのか? |
|
| 貧弱環境プログラミングのススメ 柴田 淳のコーディング天国 高性能なIT機器に囲まれた環境でコンピュータの動作原理に触れることは可能だろうか。貧弱なPC上にビットマップの直線をどうやって引く? |
|
| Haskellプログラミングの楽しみ方 のんびりHaskell(1) 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう |
|
| ちょっと変わったLisp入門 Gaucheでメタプログラミング(1) Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう |
|
TechTargetジャパン
- 実例で学ぶRailsアプリのテスト方法 (2011/12/22)
具体的なWebアプリを例に簡単なテストを使ったリファクタリングについ
て解説する - Railsの人気テストフレームワーク6選! (2011/8/18)
今回からテストを使ったリファクタリングを解説する。まずはRailsで人
気のあるテストフレームワークをいくつか紹介する - ActiveRecordの更新系操作 (2011/6/27)
Railsのモデル層を担当するActiveRecordを使った登録、更新、削除
など、更新系の機能を中心に見ていきます - 実例アプリで学ぶ“Railsらしさ”の基礎 (2011/5/26)
Ruby on Railsで書かれた実例アプリを取り上げて、初心者が陥りがちなコードの書き方を指摘します。より「Railsらしい」コードとは?
|
|


