今、あなたは統計分野のプログラミング言語の違いを知りたくて本記事に到達されたかもしれません。そこで、R言語はどのような強みがあるかを知り、他の言語との違いも知りたいと思っていらっしゃるでしょう。
本記事では、統計やデータ分析の領域で活用されるR(R言語、アール)の魅力や特性、その強みや弱点、Pythonと比較した際にどちらが自分にあっているのかを判断できる問いなど、「R言語」を様々な角度から解説します。
また、データ分析そのものについては以下の記事をご参照くだ。
1.R言語(R)とは?
R言語はニュージーランドのオークランド大学でRoss Ihaka氏、 Robert Gentleman氏が1991年に開発した無料のソフトウェアです。
1-1.統計領域に特化したプログラミング言語である
R言語はデータ分析の中でも特に統計領域に特化したプログラミング言語です。近年のビッグデータ解析やデータ活用・分析の潮流で改めて注目されている言語です。また、グラフなどデータの可視化にも強い言語です。
1-2.オープンソースであり、誰でも無償で使える
R言語はオープンソースで誰もが無償で使用可能なソフトウェアです。これは、Python、C++、Java、Rubyなどと同様です。
私が大学生の頃、授業ではSPSSを使っていました。他の大学ではEviews、Matlabなどを使っているケースもあり研究室によって使うツールは様々です。しかし、SPSSやEviews、Matlabなどを個人用に使おうとなると数十万円〜で少しお値段が張り躊躇するというのが正直なところでしょう。もちろんそれらの有償ツールは機能豊富で柔軟なのですが、「無償で使える分析ソフトウェア」を探すきっかけにRをスタートした、という人も実際多いです。
1-3.大学だけではなく多くの企業の実務で利用されている
R言語は大学などアカデミック分野で活用のイメージをされることが多いですが、多くの企業で実務的に利用されています。データ活用・データ分析が基盤となっている以下のような多くの企業でも利用されています。
- Uber
- Airbnb
参考:『Companies,Officials and NGO using R』
1-4.オープンソースでありユーザーコミュニティによって支えられている
Rは拡張性の高いオープンソースです。ユーザーコミュニティで支えられており、R Development Core Team/CRAN(the Comprehensive R Archive Network)がユーザーコミュニティの中心になっています。
2.Rができること
R言語はデータ分析において非常にパワフルな言語でありツールです。Rで出来るデータ分析の例を幾つか挙げるだけでも例えば以下のようなものがあります。
データ分析的側面で言えば、以下のような領域で活躍します。
Rが出来ること
- 機械学習アルゴリズム
- 回帰分析
- 時系列分析
- 統計的推論
- データ可視化
▼Rを使ったデータ可視化の例
引用:『Animated bubble chart with R and gganimate』
Rが出来る統計やデータ可視化はひとつのデータ分析の側面ですが、R言語はどのようなビジネス領域・場面でも活躍してくれます。以下はR言語が出来るほんの一部ですが、例えば以下があるでしょう。
Rが寄与できる実務場面例
- 商品在庫を過去データに基づき予測する
- 金融のリスク算出を行う(アクチュアリーなど)
- 広告の効果検証
- デジタルマーケティングの施策決定
3.Rを使っている業界/領域
Rが活用されている業界や領域をリサーチすると、大学、研究・教育機関がまず先に来ています。
引用:『The impressive Growth of R』
R言語は統計解析を行うため、ヘルスケア業界や政府、コンサルティング業界で多く活用されているのも納得できますね。統計解析やそもそもデータの重要性が高い業界で多く使われています。
4.Rの強み/利点
幅広い分野で活用されているR言語ですが、その活用する上では利点や弱点を知っておくことが重要です。
4-1.オープンソースであり、誰もが使えるツール
R言語はオープンソースのプログラミング言語です。これはライセンスを購入したりする必要がなく誰もが使えるものであるということです。さらに、Rのパッケージのカスタマイズや新たなR言語の開発自体にも貢献できます。
4-2.データクレンジングにおける有用な基盤
R言語はデータクレンジングをスムーズにする基盤を提供しています。例えば、dplyrやreadrのようなパッケージはデータの欠落や形式が揃っていないデータを綺麗に加工してくれるのに有用です。
4-3.豊富な統計分野のパッケージ
R言語は豊富なパッケージを揃えています。R言語は統計分野に強い言語ですので、そのパッケージ群も豊富です。
前述のCRANには10,000ほどのパッケージがあり、その数は日々増えています。これらのパッケージにより様々な業界でR言語が活用できています。
Rは分類、回帰といった機械学習の実装機能や、ニューラルネットワーク開発といった特徴を持ち合わせており、機械学習のライブラリも豊富です。
4-4.容易に可視化/グラフ化が可能
Rはグラフ(チャート)を使った可視化も得意とします。人気のライブラリは以下があるでしょう。
- ggplot2
- plotly
これらを使うことで他の言語では表現出来ないインパクトのある可視化を実現できます。
以下の記事も可視化、データビジュアライゼーションのご参考にしていただけるはずです。
4-5.他の言語やツールとの高い互換性
RはC言語やC++、Java、Pythonなど多くのプログラミング言語や他ツールと連携しやすく非常に互換性の高いものです。他の言語だけではなくHadoopや多くのデータベース、システム、BIツールなどとも連携可能です。
当社でも活用しているExploratoryも、Rを基盤としたツールです。
4-6.どのOS(プラットフォーム)でも簡単にセットアップが出来る
R言語はプラットフォームに依存しない言語です。Windows、Linux、Macなどどのようなプラットフォームでも簡単にセットアップ、動かすことが出来ます。
4-7.表現力のあるレポート
ShinyやR Markdownなどのパッケージを使うことで、分析結果のレポーティングが非常に楽になります。
インタラクティブなWEBアプリを作成することも可能です。
4-8. 統計領域の共通言語
R言語は統計の共通言語でもあります。これは他の統計ツールを開発する過程でも、R言語が大きな支配力をもっている証左でもあるでしょう。
4-9.継続的な進化
R言語は常にその機能や仕様の面で進化しています。他の新たなテクノロジー同様、機能が追加されどんどん便利になっています。
4-10.Rはその習得コストと使い勝手のバランスが良い
データ分析には多くのツールがありますが、どのようなツールであれ新たな言語やツールを習得するには時間を投資していく必要があります。
下図はそのツールにかかる習得コストとビジネスへの有用性の関係図です。
引用:『6 Reasons To Learn R For Business』
縦軸は習得コストのしやすさ(1=難しい/10=簡単)横軸はそのツールのビジネスへの適合度(高度な分析の拡張性、インタラクティビティ、共有機能、WEB連携など。(1=低い/10=高い))を表しています。
右下がり(ネガティブ)になっているのは、「うまい話はない」という意味でもあります。より良いインサイトを得たいのであれば、適切なツールを習得/習熟する時間をかける必要がある、ということでもあります。
また、上記にあるようなデータ分析/可視化ツールに関しては以下の記事にも詳細をご紹介・解説しています。
5.Rの弱点
5-1.多様なパッケージが存在しており、活用には一定の知識が必要
Rのアルゴリズムは多種多様あり、散在しています。ですので、事前にパッケージの知識がないとアルゴリズムを実装するのは難しくなりがちです。“そもそもそのパッケージがあると知っていること、そしてその使い方も知っている状態”でないとデータ分析を進めるのは困難です。
また、Rはパッケージが豊富で、パッケージのマニュアルも充実していて素晴らしいのですがマニュアルが英語なので、英語が苦手な方の場合さらに少しハードルが高くなるかもしれません。
5-2.学習にあたってはデータ分析ツールの中では比較難易度の高い言語
R言語を学習し習得するのは、ExcelやBIツールなども含めた「データ分析ツール全体」で考えると、簡単とは言えません。何らかのプログラミング言語の経験がない場合はRを習得する道は大変な負荷になることも多いです。
5-3.他言語と比較した際の処理速度の遅さ
RパッケージやR言語は MatlabやPythonと比較すると処理速度は劣ります。Cはとても速く、Pythonの16倍、そしてRと比較すると270倍の速度です。
CやPythonと比較した際にどの程度になるか、こちらの記事が参考になるでしょう。
また、Rの特徴として、シングルコアで稼働することが挙げられます。マルチコアで稼働させる場合は知識が必要です。
6. R vs Python
データサイエンティストと呼ばれる人たちはRやPythonの両方もしくはどちらかをメインに使っていることが多いです。ここではその性質の違いに触れ、どちらを最初に学ぶべきかを決めるにあたる判断材料を提供します。
6-1.RとPythonのざっくりとした違い
R | Python | |
主な目的 | データ分析、統計 | データ分析、ソフトウェア開発 |
主なユーザー | 学術的研究・R&D分野の研究者、データ分析者 | プログラマ、開発者、エンジニア、データ分析者、AIエンジニア |
最近の人気 | 1.9%(前年比+1.1%) | 11.7%(前年比+1.1%) |
強み | 可視化 | Jupyter notebookでの共有 数学的な計算 可読性の高さ 処理速度 |
弱点 | ライブラリ間の依存関係 | Rほど統計ライブラリは存在しない |
6-2.RとPythonの人気の推移
以下のTIOBE indexのデータは興味深く、言語間の人気度の移り変わりは参考にできるものです。Pythonはもともとソフトウェア開発で使われていたものの昨今のデータ分析の文脈で人気が高くなったことがあるでしょう。
Pythonに関しては、以下の記事に、学習のスタートの仕方をステップでご紹介しています。
6-3.「RとPython、結局どちらがいいのか?」を判断する際の有用な問い
昨今のデータ活用の潮流もあり、「RとPythonどちらを(どちらから)学べば良いのか?」というご質問もよくいただきます。ここでは、個別的な条件を想定し、RかPythonを選択する一つの基礎材料となるものを提供できればと思っています。
Rは大学など学術研究分野で多く使われていますが、昨今はそこまで明確な住み分けはされておらず、Rをビジネス領域に、Pythonを学術分野で多く使う人も多いです。なので、このポイントはご参考程度で良いかもしれません。
7. Rを学び始める時のおすすめソース
ここではRの学習をこれから始める方のために、3つのポイントをお伝えします。
7-1.オンラインコース
予算の範囲で下記のようなウェブでの講座コースを取るのも選択肢の一つです。下記のようなオンラインコースは多くの大学でも採用されています。
7-2.おすすめ本
Rによるやさしい統計学
非常に読みやすく、基礎からスタートできる書籍です。
Rによる統計的学習入門
こちらは入門書ではありますが、初学者には実際難しいです。推測統計学を一通り終わった人であれば読み進められると思います。
また、英語版であれば無料で配布されていますのでこちらも合わせておすすめです。
8-3.その他データ分析に関するおすすめ本
こちらの記事にもデータ分析や可視化全般のおすすめを厳選して掲載しています。
8.まとめ
R言語はどのような場面でも使えるという意味で拡張性が高く守備範囲も広いツールです。
R言語を始めれば、データ分析や可視化の面白い世界へ足を踏み入れることが出来るはずです。何らかのプログラミング経験がなければ最初は大変かもしれませんが、どのようなことでも一朝一夕で身につかないのは同じです。
R言語をスタートさせたら、次はこちらの記事を参考に分析・可視化を試してみてください。
R言語を含むデータ分析や可視化についてご検討中であればデータビズラボへお問い合わせください。
データビズラボでは状況やニーズに合わせた様々なサポートをご提供いたします。
一緒に頑張りましょう!
Contributor:
この記事は当社インターン聖路加国際大学公衆衛生大学院Ph.D Phuong T. Nguyen(MD,MPH,DrPH candidate)と作成しました。
コメント