データ表の形式 (クロス集計形式・列指向形式)

データ表の形式 (クロス集計形式・列指向形式)

データ表を保存しておく形式

2020年は国勢調査実施年

 2020年は4年に一度のオリンピック・パラリンピックが東京で開催されるとうことで大いに盛り上がるのだろうと思います。我々データマンにとって2020年は5年に一度の国勢調査実施年!前回の調査は2015年、西暦末尾が5と0の年に調査が実施されるわけです。実際に盛り上がるのは国勢調査の集計結果が公表される2022年ですが・・・

 調査から集計結果公表までのリードタイムが長いためデータの鮮度としては疑問符がつくものの、人口や世帯数が1年や2年のあいだに急変するようなこと考えづらく、少なくとも公表から5年間は有効な基礎データとして活用しもてまったく問題はないと思います。しかも、日本全国津々浦々にいたるデータをドーンと公表してくれるからデータ収集にかかる手間暇を省力化でて本当にありがたいです。もしも国勢調査結果の結果公表がないと、各自治体のホームページからデータを収集しなければならないことを考えるとゾッとします。

データの保存について

 国勢調査データが5年間有効であるなら5年間は保管しておく必要があります。利用頻度が低ければ、必要なときに必要な統計を「政府統計の窓口 e-Stat」からダウンロードすればよいのだろうと思います。一方で、頻繁に利用するような場合はあらかじめ個人のパソコンへダウンロードしておいたほうがよいでしょう。さらに、企業内の複数人が頻繁に利用するような場合は、サーバーへダウンロードしておいて用途に応じて必要とするデータの部分へ接続するといった方法が効率的です。

 ちなみに「政府統計の窓口 e-Stat」の一部データにはAPI機能があります。データベースの専門知識があれば活用できるのでしょうが、テクニックがないと手が届きません。「DB」からダウンロードする方法もありますが、保存形式はCSVです。従って、一般的にはエクセルかCSVファイルをダウンロードして利用することになります。

 では、パソコンとかサーバーへどのような表形式でデータを保存しておくのがベストなのでしょうか?もちろん、データ利用者にとって「扱いやすい」ことがベストな状態ですが、「政府統計の窓口 e-Stat」が公開しているデータ表にはさまざまな形式があります。また、国勢調査は5年に一度とはいえ新しいデータが追加されます。そのほか行政データには年次・月次・速報のように国勢調査よりも頻繁に新しいデータが公表されるものが多くあります。そうなると、保存しているデータへ新規データを追加するときのことも考えておく必要があります。

大別すると2形式ある

 画像は「政府統計の窓口 e-Stat」の「DB」から「ダウンロード」を選択すると表示される画面。クロス集計形式と列指向形式の特徴がズバリ書いてあるので引用します。
<クロス集計表形式>
 Matrix形式、横持ちといいわれる形式です。行・列に設定したセルへ数値が入っています。「画面に表示している表に近いかたちでダウンロードすることができます。」このように記載されているとおり、データ表として視覚的に見やすいことがメリットです。「ダウンロードに時間がかかる場合があります。」これがデメリットです。
<列指向形式>
 List形式、縦持ちといわれる形式です。「ツールに取り込むときに適しています。」のとおり、BIツールから接続するときに最適な形式です。「クロス集計表形式に比べ速くダウンロードすることができます。」デメリットは表を「見る」だけでは、各数値間の比較が難しいことです。

クロス集計形式

見やすい

<数値はダミーです>
 行の項目と列の項目がクロスしているセルへ入っている値がデータです。北海道(行3)の総計-総人口(列B)は1,800人だということがわかります。
 一目で北海道の総計-総人口は青森県の2倍である、すぐにわかります。このように数値の比較において表として「見やすい」ことがクロス集計形式の特徴です。
 年代別の人口構成批表を追加作成しました。
 65歳以上が全人口に占める割合は北海道よりも青森県の方が高い。一目瞭然、計算式も簡単にできる。数値を見るための表としては優れものです。

列名の処理

 画像のように列名が行1・行2にわたっています。このまま「挿入」→「おすすめグラフ」で棒グラフを描画します。
 表にしたがい9個の横軸になります。エクセルは自動的に、行1【&】行2で列名を作成していることがわかります。BIツールのタブローもデータインタープリター機能を使用して行1【&】行2で列名を作成することが可能です。しかし、すべての分析ツールにエクセルやタブローのように行1【&】行2で列名を作成する機能があるとは限りません。このままでは行1を列名、行2以下をデータとして取り込んでしまう可能性があります。
 とはいえ、クロス集計形式を活用する場面を考えるとエクセルの表が圧倒的に多いように思います。&で文字列をくっつけて値はりつけすると文字列が多くなるデメリットがあります。列名を2行で保存するときは、上画像のようにセルの結合を解除して空欄が無い列名にしておくことをオススメします。

小計・合計

 データを保存しておくときに小計や合計は必要なのでしょうか?
 データとしては不要だろうと思います。小計・合計が必要な分析もあれば不要な分析もあります。分析者が必要に応じて小計・合計を計算すればよいのです。作業として、あるものを削除するよりも、無いものをつくりだす方が楽しいです。

クロス集計形式のデメリット

 クロス集計形式データへタブローから接続します。データの小計・合計は残しています。
 画像のようにディメンション数=1、メージャー数=9になります。さっそく、都道府県別に男性・女性の割合にどのような違いがあるのかを確認しましょう。ところが男性・女性の割合を示すメジャーがありません・・・
 まず、男性が人口に占める割合を計算してメジャーをつくります。次に女性が人口に占める割合を計算してメジャーをつくります。男性の15歳未満の割合を分析したければ「男性の15歳未満の÷総計男性の人口」というメジャーをつくります。次から次へとメジャーが増えてゆきます。
 計算式メジャーを作成するということは、元のデータ表に計算式が入った列をどんどん増やしている状況と同じです。それならエクセルのような表計算ソフトの方が優れています。
 つまり、BIツールを活用して分析するとなると、クロス集計形式とは別の形式でデータを保存しておく必要があるということになります。

列指向形式

束ねやすい

 列指向形式は項目列に値が対応します。画像のように列A(都道府県)【&】列B(性別)【&】列C(年齢)ごとに一意の値になります。北海道【&】男性【&】15歳未満人口=100(人)です。
 列指向形式は必要な行データだけを抜き出して束ねるときに有用性が高い形式です。
 エクセルには、列をフィルターする機能・列を並び替える機能がありません(手動ならできる)が、行をフィルター・並び替えすることができます。列指向形式は行をフィルター・並び替えて、行を束ねることで必要な値を得ることができる形式だとイメージしてもよいでしょう。
 左画像のように都道府県で束ねます。そして束ごとに人口列の値を合計すると都道府県別の総人口値を得ることができます。青森県が不要ならばフィルターで除外します。右画像のように年齢で並び替えて束ねることもできます。列Bで男性だけを選択すると男性のみを取り出して集計できます。
 行の束ね方と、束の要不要を指示することで必要な値をを得ることがでます。クロス集計形式よりも簡単に必要な値を見つけ出して集計することができるわけです。このことがデータをグラフ化するときに有利性を発揮します。

エクセルのグラフ

 列指向形式のデータ表から「おすすめグラフ」を作成します。エクセルはピボットグラフの作成を指示します。
 横軸がデータの束です。束ね方を変更すれば横軸を変更することができます。 
また、男性女性の構成比は、もともとのデータ表に値がありません。ピボットグラフならもともとのデータ表にない値をつくってくれます。クロス集計形式のときは、計算式を入れた列を追加する必要がありました。このようにデータをグラフ化するときには列指向形式が圧倒的に有利な形式です。

タブローから接続する

 メジャーが「人口」だけになります。クロス集計形式とは大違いです。男性女性構成比を算出する計算メジャーも不要です。

複数のシートをまとめる

クロス集計形式

 年・月別にブックやシートが分かれていることがよくあります。複数のブックやシートはまとめて保存します。
 クロス集計形式へ列を追加するかたちでまとまてみます。あらたなデータが公表されるたびに列が右へ右へと、毎年、毎月、増加します。列はフィルターや並び替えができないため、目的の値へたどり着くことがますます困難になります。
 年の列を追加して、新規データは下へくっつけます。

列指向形式

 列指向形式も同様に「年」の列を追加して下へくっつけます。