BDAstyle

ビジネスデータ分析ツールの作成 with Excel

ヒストグラムの作成 with Excel2016新グラフ―旧来のアドインによる方法との比較をふまえて

アウトライン

Excelversion 2016からあたらしく導入された組み込みのグラフ「統計グラフ」のヒストグラム機能を使ってヒストグラムを作成する方法です(ヒストグラムって何?的な話が必要な場合はまずメインサイトの解説へどうぞ)。

またかかる方法と従来の方法(ただしアドインを使用する方法のみ)とでどのような違いがみられるか,特徴的な要素に関してざっくりと眺めてみたいと思います。


注)少なくとも2016年11月下旬ころより、ヒストグラムに書式設定を施すとファイルが保存できない現象が生じる可能性があることが、MSのコミュニティに報告されているようです。同様のエラーが出る場合は、リンク先に記載の対処を試すか、別の方法での作成をお勧めします(→Frequency関数)。

[ショートカット]

Step 0シチュエーションの設定

ここでの例示にあたってはリサーチサービス社の個人別売上実績データを利用するものとします。

初期データ

2016の組み込み新グラフによるヒストグラム

1.手順

Step 1データ範囲の選択

表中のヒストグラムにしたいデータ範囲を選択します。

ここでは“売上”の分布について確かめたいので,具体的には下図の彩色部分の選択が必要になります。なお,ラベル(見出し)部分の選択の有無に関しては,あとから凡例を挿入する予定があれば選択に含めます。

もっともこの新グラフは,資料等文書に挿入させるためのFigureとしての利用はおそらく想定してはいないようなので(後述),凡例も利用することは少ないかとは思いますが。

Step 2統計グラフ「ヒストグラム」

挿入タブ「グラフ」グループの統計グラフの挿入ボタンをクリックします。

そのまま「ヒストグラム」グループからヒストグラムボタンを選択します。

Step 3ヒストグラムの完成

グラフが出力されます。

階級幅を決定するアルゴリズムは,「スコットの選択」(オフィシャルページの記述:スコットの正規化基準ルール“Scott’s normal reference rule”)が利用されています。

cf. ビンの数と幅 「ヒストグラム」 -"Wikipedia"

2016のあたらしい機能でつくられた「ヒストグラム」

さてver.2016の新グラフの場合,横軸は数学記号で表示されます。これは変更不可,つまり任意の描き方72-90など]に変更することはできません。多様な背景のユーザーがいるエクセルでこの形式の階級表示しか選択できないのは,“他者に見せるための”Figureとしての活用より,“自分のみが”データの外観を面倒な操作なしにつかむためのツール …としての在り方に重きが置かれていると思わせるところです。

また特徴として,最初の(=第1の)階級のみ閉区間で,その他すべての階級は右閉半開区間での表示となっています。

横軸のラベルは数学式表記―閉区間と半開区間

具体的には,これらは柱の順に18以上36以下, 3654以下, 5472以下, 7290以下の階級幅を意味します。したがってストリクトに見れば最初の階級幅のみ不等間隔となることがわかります。

ここですこし話がそれますが,この新グラフは「最小値から階級をとりはじめる」というルールを採用しているようです(変更不可。つまり最初の階級の下境界に関して任意の設定はできません)。このルールがあるところに,“階級上限を含むカウント法”といったエクセルの度数まわりの仕様のようなものが絡んでこうした変則的な階級幅の取りかたを用いているものと推察されるところですが,たとえば100点満点のテストの分布を10本のビンではかる時などを好例として,かかる方法は実務まわりでもまま散見されるので,ここにいう不等間隔という点は,一般的な利用シーンにおいてはさほど気にする必要もないようには思います。

18≦x≦36,36<x≦54,54<x≦72,72<x≦90

2.設定

Step 1作業ウインドウの表示

ver.2016の新グラフは,各種の設定をほどこすことが可能です。ここでは固有機能(ヒストグラムの特徴を定義する設定)についてのみ見ていきます。

設定は,すべて作業ウインドウでおこないます。具体的には,作成したグラフの横項目軸を選択し,リボンの書式タブ「現在の選択範囲」グループの選択対象の書式設定ボタンをクリックします。

「軸の書式設定」ウインドウが表示されたら,「軸のオプション」カテゴリが表示されていることを確認します。表示されていない場合,軸のオプションボタンをクリックして下図のような状態にしておきます。

(作業ウインドウ)ヒストグラムの設定項目いろいろ

Step 2bin幅の変更

※ 以下「ごみ箱」は本記事最終更新時 時点のビルド(16.0.6366.2056)では「ビン」に変更されています。適宜読み換えてください。

「ごみ箱」グループの設定項目は<自動>, <ごみ箱の幅>, <ごみ箱の数>から任意に排他的な指定ができます。なおここでの設定項目のひとつ「分類項目別」については,筆者には良好な使い勝手をまったく推察できる頭がないので,触れないものとします。

ところで項目の名称としては「ごみ箱」で ? な感じもしますが,ここは階級に関する設定です。オフィシャルのヘルプでは無理に訳されることなく,自然に「ビン」と表示されています(Preview版のスクリーンショットでしょうか?)。

では具体的に第1として,「ごみ箱の幅」つまり階級幅・区間幅を任意の値に直接指定することが可能です。ためしにこれを10と指定してみると…

設定項目「ごみ箱(ビン, 階級, 区間)の幅」

グラフの階級幅が自動的にこの値に変更されることを確認できます。

区間の幅→10になった

Step 3binの数の変更

2に,「ごみ箱の数」つまり階級の数・区間の数を任意の値に直接指定することも可能です。ためしにこれを5と指定してみると…

設定項目「ごみ箱(ビン, 階級, 区間)の数」

グラフの階級の数が自動的にこの値でつくりなおされることを確認できます。

区間の数→5になった

なお,この設定値は目安としてのものではなく,そのものズバリの値として扱われます。過程に測定単位の整数倍で丸めるなどの処理を咬ませず,レンジ(範囲:最大値-最小値)を「ごみ箱の数」で除した値をそのまま階級幅に適用してきますので,除算の結果によっては下図のグラフのラベルのような,ちょっとした躊躇を生むようなアウトプットを得る可能性もあります。はて,これはちょっと…ということで,

区間の数設定のバッドケース

「表示形式」から丸めちゃえばいいんじゃね?


…「なるほどそうかも!」と勇んで手を加えてみると…

一見,上手くいったように見えるのですが,注意して見てみると,ここだけ階級が不等間隔になったらしいことに気づかされます。

「それでも…中身のツジツマさえ合っててくれれば,ま,気にしない気にしない」…と思いたいところですが,実際の表から51<x≦61に該当する人を抜き出してみると…

となり,度数(7人)がグラフ上のそれ(8人)と一致しません。そこで,階級をすべて等間隔とする前提を据えた上で,先のグラフに示された階級の取り方でヒストグラムを再度作りなおしてみます。結果……実際のところは,元の設定による分布(左図)とは若干異なる,下・右図のような分布ができあがります(統計処理システム「R」でつくったもの)。……と,まぁここまで引っ張っておいて実際のところはあらためて大げさに言及できるようなポイントでもないのですが,「表示形式」による丸めは,“見た目” に関しての調整機能にすぎず,データのツジツマにかかわる部分に手を付けるものではありません。

すなわち,新グラフにおいて「表示形式」に手を加えることは,“グラフから読み取れる情報をもとに元データを処理すれば,だれがやっても同じ結果を導くことができる” といった再現性を失うおそれをはらみます。転じて,丸めによる階級値の “定義の違い” は,作成者以外の他者が元データを利用できない場合に,加重平均や標準偏差といったパラメータを計算する際の “結果の違い” となって現れます(※これについては一様な是非を言うものではありません)。

ヒストグラムの横軸の性質は,エクセルの機能上でいう棒グラフのそれよりも,散布図のそれに近くなります。散布図の横軸の目盛の値そのものを丸める必要にふだんまず迫られることがないように,記述統計におけるデータの示すところの “忠実さ” を担保するなら,ヒストグラム機能に関する「表示形式」を使った丸めにも少し慎重であった方がいいかもしれません。その意味では,ビンの数を指定する際には,「ビンの幅」への関心も同等のものが必要となってくるように感じれらます。

Step 4境界値以下・境界値超でのまとめ

さて,第3には,ごみ箱に関する<オーバーフロー>, <アンダーフロー>が指定できます。これは以下の諸点を勘案すると,不等間隔でヒストグラムを描くための機能ではなく,文字通り一定の境界値を設けてのフロー分,すなわちヒストグラムの左方ないし右方,またはその両方でセグメントを切り分け,ユーザーの何らの意図において必要な当該度数を(グラフの整合性は無視して)カウントすることを念頭に置く設定であろうと(筆者には)推察されるところです。

設定項目「ごみ箱のオーバーフロー」「ごみ箱のアンダーフロー」

たとえば57の度数をまとめてカウントしたいとして,オーバーフロー>に直接57と入力すると…

下図のようなグラフにかたちをかえます。このとき,残りの階級の幅は再度自動的に調整されます。

グラフ的には,本来は必要な 相対面積による描画(不等間隔な階級幅を組み入れる場合の度数の調整)がおこなわれません。

オーバーフロー→57に設定した場合

なお値を指定せずに<オーバーフロー>または<アンダーフロー>のチェックのみ入れると,前者はx bar(平均)+3σ(標準偏差),後者はx bar-3σを境界としてヒストグラムが再描画されます。正規分布にしたがうようなデータを扱う場合,外れ値となる観測度数がどの程度になるのかさっと確認してみたい場合には有用な機能といえるので,これら設定は値を指定しない使い方のほうが主となるかもしれません。

旧来の純正アドインとの比較

Step 12016新グラフ・分析ツール・ストアアドインの各特徴

ver.2016の新グラフによるヒストグラムの特徴がある程度見えてきたところで,旧来からのアドインによる方法,すなわち

とともに,ヒストグラムの描画をつかさどるいくつかの骨格的要素に関して一覧を作成すると,下表のような感じになるかと思います(筆者によるもの。主観的判定も含みます)。

2016新グラフ (ver.16.0.4229.1024) アドイン 「分析ツール」 ストアアドイン “Histogram” (ver.4.0)
度数分布表 作成されない 作成される 作成されない
再計算(再描画) ×
bin設定 幅アルゴリズム Scott※1 平方根※2※7 独自形式※3
最初の階級 最小値を階級下限に適用 最小値を階級上限に適用※7 -
任意の幅の指定 ×※8 ×
任意の数の指定 ×※8
「以上未満」でのカウント × ×※9 ×
不等間隔な階級幅 △※4 ×※10 ×
横軸設定 境界値表示 × ×※11
ラベルの表記 最初の階級のみ閉区間, その他は半開区間 階級上限※12 境界
縦軸設定 相対度数の適用 × ×※12
最初のbinとの間隙※5 × × ×
付加要素 累積相対度数線の挿入 × ○※6 ×
垂線の挿入 × ×※13 ×
正規分布曲線の挿入 × ×※14 ×

“生存領域” にちがい

Step 2雑感

以下,上の比較をふまえての筆者の雑感です。

ひとつに,新グラフは従来の主要な3つの手法(アドイン, Frequency, Countif系)に包括・発展的にとってかわることを狙ったものでないことは何となく伝わります(もっとも工学・数学分野などでのプロユースなど開発側にとっても端から想定されるものでないでしょうから当然と言えば当然ですが)。とりわけ今バージョンの新グラフには,これまでの手法で弱かった部分,すなわち応答性というかレスポンシヴな部分を補うことを担うものとしての役割を強く感じるところです。

わずらわしいパラメータを設ける必要のないダイレクトな反応は,好適な階級数を探るシミュレーションなど作図前のプリアプローチや,層別にデータを次々と観察していきたいときなどには“使えそうな”感があります。

反面,細部に至るカスタマイズの自由さが必要な場合――たとえば評価者に照らしたプレゼン資料を作成する際や,補足的な判断要素を複合させたい場合などには,度数分布表ありきの旧来のアプローチの方が適しています。使い分けのできる選択肢が増えた,という意味ではver.2016ユーザーなら眠らせておく理由がない機能のひとつではあると思います。

作成にあたり参考にしたWebサイト

その他の参照