R言語の過去と最新の動向

本連載「フリーソフトによるデータ解析・マイニング」は今月号をもって終了となります。 2003年8月に連載第1回として金明哲氏による「データ解析・マイニングとR言語」という記事が掲載されて以来、 約12年半149回に渡り、6名の執筆陣がR言語とデータ解析について解説してきました。 最終回となる今回は、過去10年余りのR言語の国内での普及、 そしてR言語の最新の動向について紹介しながら、有用な情報をピックアップしてみます。 なお今回の記事には著者の主観が多分に反映されていることをご承知おき下さい。

R言語の10余年史

コンピュータのバックアップ履歴を漁ってみたところ、著者自身は大学院生だった2003年頃からRを触り始めて、 2004年夏頃に研究のための分析ツールとしてRを導入していたようです。 この頃のRのバージョンは1.7から1.8だったように記憶しています。 本連載の開始時期と著者のR利用開始時期が偶然にも一致しており、 連載最終回を執筆させて頂くというのも何かの縁を感じます。

2003年という連載開始のタイミングは、日本国内でのR言語の普及開始時期とちょうど重なります。 現在では書籍やウェブでR言語に関する情報がいくらでも入手できますが、 2003年当時は状況は全く異なっていました。 著者自身も、有益な情報を探して四苦八苦していた記憶がありますし、周辺にRユーザは皆無でした。 当時の状況や著者自身の経験から、国内でのR言語の黎明期とも呼ぶべき時期に大きな貢献を果たしたウェブサイト、書籍、イベントなどを挙げてみました(完全なリストではないので漏れがあったらご容赦下さい)。

本連載が始まりRjpWikiがオープンした2003年は、日本国内のR言語の普及にとって一つの大きな転換点であったと言えるでしょう。 2003〜2004年にはR言語の利用を中心に解説した書籍が刊行され始めました。国際化プロジェクトもこの時期にスタートしています。 以降10年余りの間に、ご存知の通りR言語は爆発的な普及を遂げて現在に至ります。

この間、Rユーザ会や各種R勉強会の開催など、国内Rユーザコミュニティが大きな広がりを見せています。 また現在ではR言語に関連する書籍は毎週のように刊行され、 ウェブ解説記事が毎日のように投稿されているといっても過言ではありません。

R言語の最新の動向

2010年代に入って以降、「ビッグデータ」「データサイエンティスト」がバズワードとなり、官民問わずデータ分析の有用性が意識され始めています。 R言語は当初は学術分野を中心に普及が進みましたが、最近では民間企業でも多くの専門家がR言語を駆使してビジネス上の意思決定を支えています。 事実、米国での2014年の報告によると、R言語はSQLなどのデータベース技術、Hadoopなどの大規模データ処理環境構築スキルなどを抑え、IT関連技術の中で最も高いサラリーが期待できるスキルとされています( http://goo.gl/BPk4FP )。 またプログラミング言語について成長度、ユーザ数、求職数などを総合的に評価したIEEE Spectrumの2014年のランキングではJava、C、JavascriptなどについでR言語が9位にランクインしています。 R言語は今後しばらくはデータ分析ツールのデファクト・スタンダードであり続けるに違いありません。このような状況を本連載当初に想像していた人は少ないでしょう。

豊富な統計解析手法の利用

分析に必要な統計解析手法や、それを利用するツールを、自分自身の手で実装するのは、勉強にはなりますが非常に時間がかかります。 また、データ分析の専門家の間では、日々新たな統計解析手法が開発されています。 Rの強みは何と言っても、多数の統計解析手法が容易に利用できる形ですでに提供されていて、さらに最先端の統計解析手法も利用できるという点にあるでしょう。 統計解析手法の多くはRのパッケージとして公開されてます。Rの公式パッケージシステムであるCRANには2015年1月現在、6000以上のパッケージが登録されています。 この中には従来の統計解析手法を使いやすくするパッケージ、効果的な可視化を行うためのパッケージなども多数含まれています。

CRAN上の6000以上のパッケージの新規追加・更新情報を逐一フォローするのは困難ですが、 Dirk Eddelbuettel氏(Rcppの開発者)によるCRANberries( http://dirk.eddelbuettel.com/cranberries/ ・Twitterフィード: @CRANberriesFeed )ではRSSやTwitterフィードを通して更新情報を手軽に確認できます。 更新情報の中に気になるキーワードがあったら詳細を確認してみるとよいでしょう。 また、CRAN Task Views( http://cran.r-project.org/web/views/ )では専門分野ごとに重要なパッケージがリストアップされています。

他のツールとの比較

R以外にも様々な統計解析ツールが開発されています。R言語の爆発的な普及以前は、商用ソフトウェアであるSPSSやSASが広く用いられていました。 これらの商用ソフトウェアは、信頼性やプロフェッショナルなサポートを強みとしており、専門分野によっては今でも中心的ツールとして活躍しています。 しかしSPSS、SASともに最近ではRへのインタフェースを提供しており、徐々にR言語にその座を譲りつつあるというのが現状です。

一方で、統計解析を行うための新たなオープンソース・ソフトウェアとしてJulia言語( http://julialang.org/ )やPythonベースの統計解析ライブラリが登場しています。 Julia言語は2012年に公式にリリースされ、当初から速度面でのパフォーマンスに高い評価を得ていました。 R言語の開発陣営もJuliaの動向に注目しており、JuliaがすぐにRの座に取って代わるということはないでしょうが、高速な処理が必要な場面ではJuliaの活用も選択肢のひとつです。

Pythonは汎用スクリプト言語ですが、最近ではpandas、SciPy、statsmodelsなど、データ分析をサポートする多くのライブラリが開発されています。 これらのライブラリを集めたAnacondaというディストリビューションも公開されています( https://store.continuum.io/cshop/anaconda/ )。 また、IPython Notebookというツールを使うと、ウェブブラウザ上であたかもノートを作成するかのように解析作業を行い、記録することができます。

2015年現在、他のツールと比較すると、速度面での極端に高いパフォーマンスや大規模データの処理が必要な状況以外では、 利用できる統計解析手法の豊富さや信頼性、ユーザ数や情報の多さという点から、R言語に一日の長があるといえるでしょう。

データ解析環境としてのRStudio

2011年にβ版が公開されて以来、RStudioチーム( http://www.rstudio.com/ )はRコミュニティの中で急速に存在感を高めています。 RStudioはR用IDEで、変数ビューアやデータビューア、グラフィック出力パネルの統合、Rの利用に役立つ様々な機能を実装しているだけでなく、 プロジェクト管理、バージョン管理、レポート・スライド作成支援など、日々のデータ分析業務に役立つ機能も備えています。 是非一度試してみることをお勧めします。

また、2012年にHadley Wickham氏(ggplot2、dplyr等の開発者)がRStudioチームに加入して以来、 データ分析業務をサポートする各種ツールの開発にも力を入れています。データ可視化(ggplot2/ggvis)、データ下処理(dplyr/plyr/reshape2)、 解析レポートの作成(knitr/Rmarkdown)、ウェブアプリケーション作成(shiny)など、一部は本連載でも紹介しています。 Hadley Wickham氏を中心とする開発チームは日本国内でも非常に人気があり、 「Impact the world by being useful」というモットーのもとに開発される各種パッケージはCRANのダウンロード数上位に位置しています。

高速化・並列化・大規模データへの対応

これまでの話題は、どちらかと言えば小規模データに対する「軽め」のデータ分析が中心でした。 「ビッグデータ」と呼ばれる超巨大データの登場で、現在ではデータ分析を取り巻く環境が大きく変化しています。 R言語自体は大規模データを扱う能力に乏しいため、大規模なデータに対してR外部での高速・並列なデータ抽出、変換、読み込み(Extract/Transform/Load、ETL)環境の構築が不可欠ですが、 最近ではR上でETL環境にアクセスできるパッケージが提供され始めています。 高速化・並列化・大規模データへの対応については「Rによるハイパフォーマンスコンピューティング」(福島真太朗著、2014年9月・ソシム)で詳しく解説されています。 大規模データを扱う必要のあるユーザには必読の一冊です。

コミュニティと情報発信

現在では日本国内でR言語に関する様々なイベントが開催されています。 コミュニティ内では人的ネットワークも形成されているので、最新の動向を知るためにもこれらのイベントに参加してみるのもよいでしょう。 また、R言語に関する話題をウェブ上に情報発信する場も増えています。

これ以外にも個人ブログに多数の有用な記事が寄せられています。 毎年12月には参加者が順番に毎日1記事ずつ執筆するというR Advent Calendarというオンラインイベントが開催されています。

おわりに

今回の記事で紹介したように、R言語を取り巻く状況はこの10余年で大きく変わりました。 「データ解析・マイニング」の手法はデータの性質や周辺技術の進化に大きく左右されます。 昨今のデータの巨大化を鑑みるに、これからも依然として状況は変わり続けるでしょう。 特に今後は統計解析やR言語のスキルに加えて、ETL環境含む周辺技術との連携や、ウェブ可視化などの効率的なアウトプット手法との連携など、 必要となるスキルの多様化が進むに違いありません。 今回の記事が今後の読者の方々の「データ解析・マイニング」の助けになれば幸いです。