2016.08.01 Mon |
まだExcelで消耗してるの?
【まだExcelで消耗してるの?】
みなさんはデータ解析を行うときどのソフトで解析しますか?
そもそも、ソフトなんか使っていない、電卓があれば十分。
という方もいらっしゃるかもしれません。
確かにデータサイズが小さくて、手計算できるものであれば、それでいいのかもしれません。
でも、電卓主体だと、繰り返し作業が面倒と感じたこあとはないですか?
たくさん計算した結果、どこかで打ち間違えて、とんでもない数になってしまったことはないですか?
繰り返し作業や、結果の確認を容易にするためには、何かソフトウェアを使った方がよいです。
多くの方は、数値データならExcelを使われているかと思います。
列の値を自動で合計値や平均値をとってくれたり、簡単な数式書いて、それを各行にも一気に適用したり、
シート別に分けていろいろ作った後、シートごとに値を参照することもできて便利ですよね。
確かに、小規模のお金や人数の集計には、Excelは便利です。
もう一度言いますと、“集計”には便利です。
Excelでできるのは、集計とその結果の可視化です。
しかし、少しデータの量が大きくなると残念ながらそもそもExcelでは開くことすらできません。
数万行のデータになってくると直面する問題です。
また、仮に、開けたとして、
Excelでできることは、基本的に集計と基本的な可視化であり、高度な解析はできません。
たとえば、売り上げデータや、顧客データから、今後の売り上げを上げるような解決策を出力したいとき、Excelではあまりにも無力です。
たとえば顧客管理をしたいとき、その方々それぞれに適したサービスを提供するには、まず顧客分類をしなければいけません。
そのためには階層クラスタリングや非階層クラスタリングを行いますが、その機能もExcelには、備わっていません。
では、どれくらいExcelが無力であるか、実際に例をお見せしていきましょう。
まず使うデータですが、、、、、、
Excelのどのデータを使うかというと、、、、
Excelには、サンプルデータが入っていないことに気づきます。。。
Rにはサンプルデータがデフォルトで100個以上、
Pythonの機械学習ライブラリscikitlearnにも多くデータは格納されています。
その点Excelはよろしくないです。
なので外からデータを何かとってきて使います。。。。
サンプルデータがないと、仮に、いろんな可視化手法・解析手法があっても試せません。
Excelには解析方法はあまりないものの、可視化手法はそれなりにあるので非常に残念です。
各種解析に適したいい感じのデータを作るのは、以外にも中級・上級者でも結構難しいことで、初級者には無理でしょう。
なので、本当はしっかりサンプルデータは用意すべきなのです。
今回は、Rに入っているirisデータセットをExcelに取り込んでおきました。
これをExcelで解析してみようと思います。
Excelのデフォルトの設定のままだとどうしようもないので、
Excelにアドインを入れて機能を拡張します。
(使用しているのは2013年版Excelです)
初めに、左上のファイルを選択します。
次に左下のオプションを選択します。
次に左のアドイン、右の上から3番目の分析ツールを選択、右下のOKを選択。
これで、拡張の設定完了です。
次にデータのタブをクリックして、右上のデータ分析をクリックしましょう。
これを見てもらえればわかりますが、
統計の応用である、因子分析・主成分分析・クラスタリングなど入っていないのが分かると思います。
回帰分析も重回帰しかできません。
教師あり学習の“分類”もありません。
時系列情報解析に関しては、
なぜか、指数平滑化、移動平均、フーリエ解析だけが中途半端な形で存在します。
出力結果の使い方に専門知識を要するので、実際にこれらの手法を使える人はかなり少ないと思います。
時系列データ解析で一番有名なARモデルや、MAモデル、ARMAモデル、ARIMAモデルはありません。
ベイズ関連もありません。
ビルゲイツは10年ほど前、21世紀はベイズテクノロジーの時代といっていたのに、全くベイズの要素入っていないのは残念です。
データ分析の手法はざっと50種類くらいありますが、、、
Excelで実装されているのは、その中の一つ、重回帰分析だけです。
つまりExcelは拡張しても、この程度ということです。
重回帰分析に関しても、一番重要な回帰診断の機能が付いていません。
Excelで重回帰分析を行うには、ざっと、あたりを付けるくらいなら使える、といったところですね。。。
Excelで問題なのは、重回帰のところだけではありません。
何よりもありえないのが、ヘルプ機能です。
Rを使っている人からしたら、わからないことがあったら参照するヘルプ機能は生命線です。
しかし、Excelはそのヘルプ機能が極めて貧弱です。
たとえば、回帰分析についてだったら、以下がすべてです。
これでは、何も解決しません。
使い方も、実際の使用例も説明していません。
では、実際にExcelで回帰分析(重回帰)を行うことで、Excelのヘルプではいかに情報不足かをご説明しましょう。
まず先ほどの画面で”回帰分析”を選択します。
そうすると次の画面が出てきます。どこに何を入れていいか、あのヘルプではわかりませんね。
細かい説明は省きますが、結論を言うと以下のように入力します。
(入力Y範囲に目的変数(売り上げなど予測したいものを一列)、入力X範囲に説明変数(広告費や店員の数など、売り上げ予想に役立ちそうなもの)
※今回は売り上げデータではないですが目的変数と説明変数の例として。)
これでOKすると以下のような画面が出てきます。
この左の上から3つ目の表のtの値が、各説明変数の重要度を表しており、右の散布図は今回のデータに対して行った回帰分析という手法の選択が正しかったのか、判断する参考となります。
Excelのヘルプでは、データの入力設定から結果の解釈まで何も書いてないですね。。
そもそもの機能として回帰診断機能がついていないのが、ありえないのですが、いろいろ問題があるのがお分かりいただけたかと思います。
この重回帰分析は、多変量解析・機械学習において最も基本的なものです。
算数でいえば足し算引き算に相当します。それでこの出来です。
Excelはデータ解析のツールではないです。。。
実はHADなど優秀なアドインがあるので、それを使うと、もっといろいろできるのですが、それ使う人は、Rを使ってしまうでしょう。
使っている人数が少なく、バグが発見されるためのユーザコミュニティができていないからです。
まとめますと、デフォルトの機能+デフォルトのアドインだと、これくらいが限界です。
基本的にExcelでやることは、数を並べ替えたり、足し算・引き算・掛け算・割り算をやることなのですね。
たとえば株価予想をしたくてもExcelのデフォルトの機能でできません。
(自分で時系列データの数式を書くことが出来ればできますが、それが出来る人は、R使った方がいいことにすぐ気づくでしょう。たくさんのモデルを作って診断してということをやるのに、非常に長い時間がかかるためです。)
アンケート結果の分析をしたくても、Excelでは、テキスト解析はできません。
画像解析したくても、Excelは画像を取り扱うことが出来ません。
みなさんは、Excelという制約の中で、低い天井の世界で生きているということをぜひとも知っていただきたいと思います。
Excelはデータ分析には向いていないのです。
実は頑張ればできなくはないのですが、世の中的には、RまたはPythonを用います。
長らく多くの人がRを使っていましたが、他分野でも広く使われているPythonが、最近すさまじい追い上げを見せています。
もしも英語に不自由ないのなら今からならPythonから入ればよいと思います。CourseraやEdXなど海外の大学online講義(MOOC)のデータサイエンスの講義で学べばよいでしょう。
ただ日本語ですと、まだまだPythonでデータ解析を学ぶより、Rで学んだ方が、圧倒的に効率が良いです。書籍が圧倒的に充実しているのと、先人たちが作り上げた、数千のパッケージを無料で利用することが出来ます。
今後Rの環境設定から、導入まで、いろいろ書いていこうと思います。
鈴木瑞人
東京大学大学院 新領域創成科学研究科 メディカル情報生命専攻 博士課程1年
一般社団法人Bizjapan