始めに
昨今、データ分析組織の話題を耳にすることが多くなりました。また、機械学習やデータ分析人材の採用に積極的な企業のデータ活用事例を見る機会も増えてきました。
一方で、社内にデータ分析のできる人材がおらず、「データの専門組織を作りたいがうまくいかない」という声も多く聞きます。企業のデータ活用の進展度合いはこのように二分されてしまっているのが現状ではないかと思います。
私はデータマーケティングなどを手掛けるヴァリューズという会社に所属しています。大きな組織変革の真っただ中に入社したこともあり、分析チームの人員拡大や体制構築を経験しました。具体的には、オープンソースの統計解析言語「R」を共通言語としたり、それを軸に分析ツールの開発や教育プログラムの整備を進めたりするなど、分析チームの基礎作りを推進しました。
分析チームを作っていくに当たり、1つの言語を「スキルセットの土台にした」という話はあまり耳にしません。「なぜこういった選択をしたのか」「どのように進めていったのか」「どういったメリットがあったのか」――。分析組織の組成に悩む方々へ向けて、当社の事例を紹介したいと思います。
Rを導入以前の分析チームの状況と辛さ
多岐にわたる使用ツールの乱立による非効率
入社当時の分析チームでは各々が好きな分析ツールや解析言語を使っていました。「Rか、Pythonか」という話ではなく、ビジネスインテリジェンス(BI)ツールを使っていたり、表計算ソフトを使っていたり、エンジニア出身者はPHPを使っていたりと千差万別な状況でした。
この状況では知識やノウハウがチーム内で共有されないという問題がありました。他の人が書いたコードの理解は難しく、相互のアドバイスも限定的になります。チーム全体で助け合えることが少ない状況でした。各々が分析作業を効率化していましたが、お互いに使うツールが異なるので、その恩恵もチーム全体で享受できません。新しいことにチャレンジしていきたい立ち上げ期の組織にとっては致命的でした。
タスクと使用ツールの不一致による非効率
また、PHPで簡単なデータの加工処理を書いたり、ExcelやBIツールで複雑な加工をしたりと、タスクと各ツールが合っていない状況でした。データの分析にはそれに適したツールがあります。実際にあるツールでは数時間かかっていたものが、Rなどのデータ分析に適したツールを使うと数十分で終わるということも少なくありません。それ以外にも、データ分析には同じ結果をいつでも再現できることや定期的に同じ処理を繰り返す場合が多く、Excelなどのマウス操作が中心のツールは適しているとは言えません。
このような背景からチームのスキルセットそのものからデータ分析組織に適したものへと変えていく必要性を感じ、Rの共通言語化を進めるに至りました。
なぜRを選んだのか
データ分析に適した言語を本格的に導入しようと考えると、RかPythonかという悩みが出てきます。当社はデータ分析のアウトプットがマーケティング領域のレポートであることが多く、アドホックのデータハンドリングのしやすさと、プログラミング未経験者にとっての習得のしやすさの2点でRを選択しました。
Rには「tidyverse」と呼ばれるデータハンドリングと可視化のために設計されたパッケージ群があり、これらを使うことでデータハンドリングのほとんどのタスクを数行のコードで記述できます。また、tidyverseのパッケージ群を使えばデータを処理する順番で上から下にコードを書いていけばよく、プログラミング初心者でもコードを書きやすい、読みやすいという特徴があります。
Rを組織に浸透させるには(プログラミング未経験者にも使えるのか)
Rを共通言語にしていきたいという意見は上層部からもすぐ賛同を得られました。しかし、組織作りで最も大変なところは、実際、人に動いてもらうところにあると思います。特に、もともとExcelやBIツールで分析の大半を行っていたような、プログラミングの未経験者にRを浸透させることができるかどうかが肝になります。
前述のようにRは初学者にやさしい言語です。幾つかの工夫で当社では3~4カ月程度でRを使えるというレベルにまで上達しています。
Rの教育体制
まずはRを使ってデータハンドリングが不自由なくできるレベルを目指し、研修を行い、知識をインプットすることから始めます。Rでは同じ操作をするのに複数のやり方が存在するため、適切な方法を選択できるようすることが肝心です。具体的には、先ほど紹介したtidyverseと呼ばれるパッケージ群に含まれる「dplyr」「tidyr」「stringr」「glue」「lubridate」というRパッケージの使い方を習得します。これらが使えれば大抵のデータハンドリングはできるようになります。
しかし、座学での研修をやっただけではRを習得できません。研修後はRを使える人がメンターとなり、すぐに質問したり、フィードバックしたりできる環境を整えます。重要なのは、実務でRを使うハードルを下げることです。「Excelでやった方が早い」と思うと、そちらに流れてしまうものです。
その点を意識して教育を続けたところ、当社ではプログラミング未経験者でも3~4カ月程度でRを使ったデータハンドリングができるようになっています。Rユーザーは当初2人程度でしたが、1人が3人程度のメンターを務め、徐々にRユーザーを増やしていきました。データハンドリングさえできれば、後は個人の知識レベルによって高度な分析に進むことができます。