最近、プログラム言語 R をリーンシックスシグマで使うようになりました。ビッグデータ時代を迎え、以前から統計用のプログラミング言語を習得してみたいと思っていたので、 思い切って R 言語を試しに使ってみることにしました。
リーンシックスシグマで統計処理と言えば Minitab が主流です。グリーンベルトやブラックベルトのトレーニングでも Minitab が使われていますし、リーンシックスシグマを使う企業では Minitab のフローティング・ライセンスを持ち、社員だれでも Minitab が使える環境が整っているところもあるようです。リーンシックスシグマについて書かれた本も、統計の箇所は Minitab を使って説明しているものが多いようです。
僕もいつもは Minitab を使っていますし、Minitab で十分事足りています。しかし統計学を学べば学ぶほど、統計専門のプログラム言語、例えば SAS や SPSS、そして R に興味を持つようになりました(最近は Python も統計用のプログラム言語として認識されているようです)。そこで仕事のペースが落ちて時間に余裕のできる 12 月、懸案事項だった統計用プログラム言語に手を出してみることにしました。
プログラム言語の選択
まずはプログラム言語の選択から始めました。SAS や SPSS は非常に高価なソフトウェアなので、個人レベルのプログラム学習にはそぐわないことから、まず選択肢から外しました。Matlab はそれほど値段は高くはありませんが、それでも小遣いで買える金額ではないので、これも選択肢から外しました。残るは R か Python です。両方ともオープンソースなので無料で使えます。
統計の世界で二つのプログラム言語の利用率の推移を調べたところ、多数派だった R の利用率がどんどん下がってきており、一方で少数派だった Python がどんどん数字を伸ばしていました。またインターネット上では「R か Python どちらが良いか」という議論がたくさん見受けられました。
その議論を僕なりにまとめてみると、汎用プログラム言語の Phython が数字を伸ばしている理由として、
- もともと統計を扱う専門者(統計家)は R を使っていた(SAS や SPSS を除いて)
- しかしビッグデータの時代を迎え、統計家でない一般のプログラマや、統計学を専攻にしていない一般のコンピュータ専攻学生が、ビッグデータの分野に入ってきた
- 統計家でない一般のプログラマ達は、自分達が馴染んでいる汎用プログラム言語を使う傾向が強い
- そこで汎用プログラム言語の Python が統計ライブラリを充実させ、統計処理も十分行えるようになった
- 結果として、利用率で言えば R が数字を落とし、Python が数字を上げた
実際、莫大なデータを取り扱うにはメモリの関係から R よりも Python の方が有利なようです。
しかし僕は R を選びました。理由は単純です。① Python はこれまでにも使ったことがあり新しく学ぶ面白みが薄い、② R は統計用プログラム言語なのでなんとなくかっこいい、③自分も自称統計家となりたい、それだけです。
最初のプログラム仕様
R を始める上で、最初のゴール(仕様)を決めました。それは
- SharePoint 上にチーム全員がアクセスできるデータベース(フォーム・ライブラリ)を作る
- チーム員は SharePoint 上のデータベースをいつでも更新できる
- クエリーを使って SharePoint 上のデータベースにアクセスし、定期的にデータをダウンロードする
- R をつかってデータを処理し、グラフや分析結果をレポートとして自動生成する
- 定期的に自動生成したレポートをマネージャーに報告する
この定期的(定型的)な処理とレポートの自動生成ができるところが R の強みです。これは Minitab ではなかなかできないことです。レポートの自動生成処理に必要なツールとして以下のものを使いました。
- R プログラム言語
- RStudio
- R Markdown
すべて無料のツールです。
R が使われる理由
実際に R を使ってみて、なぜ R が広く統計の世界で使われているのかがなんとなく分かってきました。R が使われる理由は以下の様なものではないでしょうか。
- 無料(オープンソース)のソフトウェアである
- 豊富な統計処理機能やグラフ機能が備わっている
- 豊富なドキュメント、書籍がそろっている
- 定型的な処理、レポートの作成が簡単に行える
- 解析方法が記録できる
- 大きなコミュニティーからのサポートが受けられる
- いろいろなプラットフォーム上で使える
今回 R を試しに使ってみて、R はリーンシックスシグマの世界でも充分使えそうだと実感しました。