Rは統計解析のブッシュナイフだ

第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のサンプル画面(上記サイトより引用)

データが豊富に入手できる時代

 以上が簡単な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
next

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の世界を体験してみよう
  Coding Edgeフォーラムフィード  2.01.00.91

TechTargetジャパン

Coding Edge フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH