新刊のお知らせ
2016年12月17日に、この連載をベースにした新刊『エンジニアが生き残るためのテクノロジーの授業』が発売されました!
ITとビジネスの関係、コンピュータ、ネットワーク、プログラミング、データベース、セキュリティ、人工知能など、本連載で解説した内容も含め、エンジニアなら誰もが知っておくべきテーマを一冊で学ぶことができます。
統計学は難しい?
学生の頃に順列や組み合わせ、確率などを学んで「統計」に対して苦手意識を持った人も多いかもしれません。また、回帰分析や主成分分析など、多変量解析になると、複雑な数式が登場して計算が面倒な印象があります。
しかし、考え方はシンプルで「たくさんのデータを要約して情報を把握すること」といえます。私たちの身の回りにはデータがあふれており、短時間で情報を理解するためには要約する手法が有効で、あらゆる業務に応用できます。また、最近は分析に必要なツールも多く登場しているので、手作業で計算する場面は少なくなっています。
もちろん、分析の手法を間違えると誤った主張になってしまう可能性もありますし、解釈を間違えると統計のウソに騙される場合もあります。最低限の知識を持ち、正しくデータを活用できることはビジネスマンの必須知識だといえます。
「統計学」というと難しいイメージがありますが、多くの場合は「基本統計量」を使えば十分だと思います。基本統計量とは、平均、合計、分散、標準偏差、中央値、最大値、最小値といった値のことです。
集計や分析でもSQLを活用する
基本統計量を取得する関数
上記のような基本統計量を求める場合、簡単なのはExcelのデータ分析ツールで「基本統計量」を選ぶ方法でしょう(図1、2、3/Excelの「データ」タブに表示されていない場合は、「ファイル」の「オプション」メニューから「アドイン」で「分析ツール」を選び、「設定」ボタンを押してアドインを追加してください)。
データベースで基本統計量を計算
前回はデータベースの基本的な仕組みについて解説しました。指定されたグループ全体から1つの結果を得るような関数もSQLには用意されています。一例として、平均や合計を求めるには、以下のようなSQL文を実行するだけです。ここでは、商品の情報が入ったテーブルから単価の列を集計しています。
SELECT AVG(price) FROM product
SELECT SUM(price) FROM product
分散、標準偏差、中央値、最大値、最小値についても、Oracleではそれぞれ関数が用意されているので同じように実行できます。
SELECT VARIANCE(price) FROM product
SELECT STDDEV(price) FROM product
SELECT MEDIAN(price) FROM product
SELECT MAX(price) FROM product
SELECT MIN(price) FROM product
このように基本的な統計データを求める処理は、単純なSQL文で実行できます。しかも、ビジネスパーソンが仕事で使う分析処理は、中学校レベルの数学で使われる単純な処理で十分なことが多いはずです。
少し複雑な処理はコードで
少し複雑な処理であってもSQLで実行できます。例えば最頻値を求める関数はOracleには用意されていませんが、以下のようなSQLで実行できます。
SELECT price FROM product GROUP BY price HAVING COUNT(*) >= ALL ( SELECT COUNT(*) FROM product GROUP BY price)
DBMSによっては、標準SQLには含まれていない関数を用意しているものもあり、SQLだけでも十分な分析が可能になっています。