BDAstyle

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

ヒストグラムの作成 with Excel 4/4[ver.2016新グラフ ―旧来のアドインによる方法との比較をふまえて]

アウトライン

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

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

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

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

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

DL

手順

Step 1データ範囲の選択

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

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

ヒストグラム エクセル 2016

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

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

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

ヒストグラム エクセル 2016

Step 3ヒストグラムの完成

グラフが出力されます。

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

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

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

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

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

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

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

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

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

設定

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

ver.2016の新グラフは,各種の設定を加えることが可能です。ここでは固有機能(ヒストグラムを描画するにあたっての重要な要素)についてのみ見ていきます。

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

ヒストグラム エクセル 2016

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

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

Step 2bin幅の変更

※ 以下「ビン」は,ビルド16.0.6366.2056より前に,「ごみ箱」という名称が利用されていた時期があります。より以前のビルドを利用する環境では,名称を適宜読み換えてください。

「ビン」グループの設定項目は<自動>, <ビンの幅>, <ビンの数>から任意に排他的な指定ができます。なお,ここでの設定項目のひとつ,「分類項目別」について,筆者には良好な使い勝手をまったく推察することができません。他のツールに比して優位な点が不明なため,ここでは扱わないものとします。

さて,この「ビン」では階級に関するいくつかの設定をおこなうことができます。

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

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

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

区間の幅→10になった

Step 3binの数の変更

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

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

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

区間の数→5になった

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

区間の数設定:アンチパターン

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

区間の数設定:アンチパターン


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

ヒストグラム エクセル 2016

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

ヒストグラム エクセル 2016

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

ヒストグラム エクセル 2016

となり,度数(7人)がグラフ上のそれ(8人)と一致しません。そこで,階級をすべて等間隔とする前提を据えた上で,先のグラフに示された階級の取り方でヒストグラムを再度作りなおしてみたいと思います。

結果……実際のところは,元の設定による分布(左図)とは若干異なる,下・右図のような分布を得ることができます(統計処理システム「R」でつくったもの)。……と,まぁここまで引っ張っておいて実際のところはあらためて大げさに言及できるようなポイントでもないのですが,「表示形式」による丸めは,“見た目” に関しての調整機能にすぎず,データのツジツマにかかわる部分に手を付けるものではありません。

ヒストグラム エクセル 2016

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

ヒストグラムの横軸の性質は,エクセルの機能上でいう棒グラフのそれよりも,散布図のそれに近くなります。散布図の目盛の値そのものを丸めてしまう行為に対しては,ふつう,多くの人が自然と違和感を感じるところかと思いますが,一見棒グラフのようにも見えるヒストグラムに対しては,不思議とそうした違和感も薄れがちです。

つまり記述統計におけるデータの示すところの “忠実さ” を担保するなら,ヒストグラム機能に関する「表示形式」を使った丸めにも慎重であった方がよさ気です。その意味では,この新機能でビンの数を指定する方法を常用するなら,面倒を避けるうえでも「ビンの幅」が指し示す値がいくらになっているかを都度注意していく必要があるかと考えます。

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

さて,第3に,ビンに関する<オーバーフロー>, <アンダーフロー>の指定ができます。

これは,文字通り一定の境界値を設けてのフロー分,すなわちヒストグラムの左方ないし右方,またはその両方でセグメントを切り分け,ユーザーの何らの意図において必要なカウントを(グラフの整合性は無視して)目的とした機能のように(筆者には)推察されます。

設定項目「ビンのオーバーフロー」「ビンのアンダーフロー」

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

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

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

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

なお値を指定せずに<オーバーフロー>または<アンダーフロー>のチェックのみを入れると,前者はxbar+3σ(平均+3標準偏差),後者はxbar-3σ(平均-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
柱と軸との分離※5 × × ×
付加要素 累積相対度数線の挿入 × ○※6 ×
垂線の挿入 × ×※13 ×
正規分布曲線の挿入 × ×※14 ×
  • ※1 ただし切り上げでなく四捨五入
  • ※2 ただしレンジ÷(切り捨て[平方根(n)])
  • ※3 最初の階級の下限と最後の階級の上限を切りのいい値で固定[自動計算]して,ユーザーが指定したbin数をもとに階級幅を決定
  • ※4 ±3σまたは任意の境界を設けてのカウントのみ○,相対面積での描画は×
  • ※5 特に階級値を表示する場合など,縦軸の0が最初の階級幅の一部と誤読されるのを防ぐ処置。あるいは,読みやすさを高めるための処置
  • ※6 軸の交点を始点としない簡易型
  • ※7 目的の方法で作成した「データ区間」を指定することで他の方法も実質的には適用可
  • ※8 「データ区間」の指定により任意の方法で可能
  • ※9 微小値を減じて「データ区間」を作成することで可能
  • ※10 カウントのみ○,相対面積での描画は×
  • ※11 たとえば,ダミーデータを使う方法(リンク先はこのサイトの別ページ)で実現可
  • ※12 度数分布表の当該箇所を書き換えて変更可能
  • ※13 たとえば,散布図を使って描画する方法(リンク先はこのサイトの別ページ)で実現可
  • ※14 たとえば,折れ線グラフ または 散布図を使って重ねる方法(リンク先はこのサイトの別ページ)で実現可

性格に照らした使い分けが必要

Step 2雑感

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

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

ユーザーにわずらわしい準備を要求することなくダイレクトにアウトプットを返してくれる点については,好適な階級数を探るシミュレーションなど作図前のプリアプローチや,層別にデータを次々と観察していきたいときなど,十分に“ハマってくれそうな”感があります。

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

作成にあたり参考にしたWebページ

Next

その他の参照