身近なデータの分析 日本人の暮らしに密着した"生活定点"のデータをQlikViewで分析してみよう

身近なデータの分析 日本人の暮らしに密着した”生活定点”のデータをQlikViewで分析してみよう

Pocket

博報堂生活総合研究所から、生活定点の2014年版が無償で一般公開されました。
生活定点は、博報堂のシンクタンクにあたる「博報堂生活総合研究所」が、1992年から一年おきに実施している調査で、日本人の生活や意識に関するアンケート結果を収集したデータです。
たとえば、「生活は豊かか」「趣味はなにか」「スマートフォンを持っているか」など、日本人の生活に密着したデータが約1,500項目含まれています。

さらに、今年は特設サイトも開設され、生活定点のさまざまなデータを、Web上で簡単に閲覧したり、グラフ化したりできます。
この特設サイトは非常に分かりやすいので、ぜひ一度見てみてください。

それでは生活定点のデータを、QlikViewに取り込んで分析してみましょう。



データの確認とデータロード


出典

【博報堂生活総合研究所「生活定点」調査】
帰属
集計表(時系列グラフ作成プログラムを含む)や調査票など「生活定点」に含まれる一切の情報にかかる著作権などの一切の権利は、株式会社博報堂に帰属します。


ファイルのダウンロード

生活定点の特設サイトから、日本語版のExcelファイルをダウンロードしてください。
生活定点1992-2014|博報堂生活総研
http://seikatsusoken.jp/teiten2014/
※再配布の権利について明言されていなかったため、当ブログにはファイルは置いていません。生活定点のサイトから直接ダウンロードしてください。

画面右下の[ダウンロードして使う]から[日本語版]をクリックして、ダウンロードできます。
seikatsu-teiten2014-101
「seikatsu_teiten_2014_jp.zip」というZipファイルがダウンロードできるはずですので、解凍してください。
以下のファイルが含まれています。
seikatsu-teiten2014-102

使用するデータの確認

「生活定点2014 集計表.xlsm」が今回使用するファイルです。
このファイル自体、Excelのマクロなどを組み込んだ一つのアプリケーションになっています。
seikatsu-teiten2014-103
3つ目のシートにあたる「Total」が今回使用するシートです。
「Total」には性別や年代を問わない合計値が格納されています。「Total」よりも右側のシートには、男女別、年代別などの値が格納されています。

各シートには、質問とそれに対する回答について、年ごとの回答率や、2年間,10年間,20年間で回答率がどう変化したのか、といったデータが格納されています。
seikatsu-teiten2014-104


データの取り込み

それではQlikViewにデータを取り込んでみましょう。
まずはファイルを新規に作成し、[ロードスクリプトの編集]画面を起動します。
seikatsu-teiten2014-201
今回ロードスクリプトは、あらかじめ作成済みのものを用意しておきました。
ロードスクリプトの最下行にカーソルをあわせて、以下のロードスクリプトを貼り付けてください。
生活定点2014:
CrossTable(年, 回答率, 7)
LOAD @1 as 項目番号, 
     @2 as 質問分野, 
     @3 as 質問項目, 
     @4 as 回答項目, 
     If(@19 = '-', Null(), If(Index(@19, '+') > 0, PurgeChar(@19, '+'), If(Index(@19, '-') > 0, PurgeChar(@19, '-') * -1, @19))) as "2年変化",
     If(@21 = '-', Null(), If(Index(@21, '+') > 0, PurgeChar(@21, '+'), If(Index(@21, '-') > 0, PurgeChar(@21, '-') * -1, @21))) as "10年変化",
     If(@24 = '-', Null(), If(Index(@24, '+') > 0, PurgeChar(@24, '+'), If(Index(@24, '-') > 0, PurgeChar(@24, '-') * -1, @24))) as "20年変化",
     If(@5 = '-', Null(), @5) as 1992, 
     If(@6 = '-', Null(), @6) as 1994, 
     If(@7 = '-', Null(), @7) as 1996, 
     If(@8 = '-', Null(), @8) as 1998, 
     If(@9 = '-', Null(), @9) as 2000, 
     If(@10 = '-', Null(), @10) as 2002, 
     If(@11 = '-', Null(), @11) as 2004, 
     If(@12 = '-', Null(), @12) as 2006, 
     If(@13 = '-', Null(), @13) as 2008, 
     If(@14 = '-', Null(), @14) as 2010, 
     If(@15 = '-', Null(), @15) as 2012, 
     If(@16 = '-', Null(), @16) as 2014
FROM
[生活定点2014 集計表.xlsm]
(ooxml, no labels, header is 4 lines, table is Total, filters(
Remove(Col, Pos(Top, 1))
));
seikatsu-teiten2014-202詳細は割愛しますが、このロードスクリプトでは以下のような処理をおこなっています。
  • -(全角マイナス)のみのデータは、データがないことをあらわすため、Null値に置き換える。
  • +-が全角になっているため、正しく数値として取り込まれるように置き換える。
  • 年ごとに列が分かれているため一列にまとめる。
    複数列に分かれたデータを一列にまとめる方法については、こちらの記事をご覧ください。
データを取り込んでみましょう。
[ロードスクリプトの編集]画面を[OK]ボタンで閉じてください。
[リロード]ボタンをクリックします。
seikatsu-teiten2014-203
ファイルを保存してください。
今回のロードスクリプトでは、取り込むファイルの指定を相対パスで(ファイル名のみ)指定しているため、Excelファイルとおなじ場所に保存してください。
seikatsu-teiten2014-204
seikatsu-teiten2014-205
データが取り込まれました。
[閉じる]ボタンをクリックしてください。
seikatsu-teiten2014-206


ユーザーインターフェースの作成

それではユーザーインターフェースを作成していきましょう。

リストボックスの作成

まず、リストボックスを作成します。
シートの余白を右クリックして[リストボックスの追加]を選択します。
seikatsu-teiten2014-301
ここでは「回答率」と「項目番号」以外の7項目を選択します。
[OK]ボタンをクリックしてください。
seikatsu-teiten2014-302
リストボックスが追加されました。
seikatsu-teiten2014-303
下図を参考に位置やサイズを調節してください。
seikatsu-teiten2014-304見やすいように調節していただければ、上図とまったくおなじレイアウトである必要はありません。ただし、このあとチャートを作成しますので、その分の余白は残すようにしてください。

なお、左上の「質問分野」のリストボックスでは、下図の設定を追加して、複数列(ここでは二列)で表示するようにしています。
リストボックスのプロパティを開き、[プレゼンテーション]タブで[1列]のチェックを外します。
seikatsu-teiten2014-305

折れ線グラフの作成

つづいてチャートを作成します。
ここでは、年ごとの変化が分かるように、折れ線グラフを作成します。

シートの余白を右クリックして[シートオブジェクトの追加]→[チャート]を選択します。
seikatsu-teiten2014-306
[折れ線グラフ]を選択し[次へ]ボタンをクリックします。
seikatsu-teiten2014-307
軸項目に「年」と「回答項目」を設定し、[次へ]ボタンをクリックします。
seikatsu-teiten2014-308
数式に「回答率」と入力し、[OK]ボタンをクリックします。
seikatsu-teiten2014-309
ここまでで、いったん結果を確認してみましょう。
[完了]ボタンをクリックします。
seikatsu-teiten2014-310
折れ線グラフができましたが、凡例に表示された「回答項目」の文字数が多すぎてグラフが見にくくなっています。
seikatsu-teiten2014-311
凡例の表示を変更して、見やすくしてみましょう。
折れ線グラフのプロパティを開き、[プレゼンテーション]タブを開きます。
画面右側の[設定]ボタンをクリックします。
seikatsu-teiten2014-312
[凡例の書式]画面で[フォント]ボタンをクリックします。
seikatsu-teiten2014-313
フォントのサイズを小さくします。
ここでは7ポイントにしていますが、7ポイントだとかなり小さいため、画面のサイズなどに応じて8ポイントなどにしていただいても構いません。
[OK]ボタンをクリックします。
seikatsu-teiten2014-314
「回答項目」の表示に文字数制限をかけます。
画面右上で「回答項目」を選択し、[凡例に表示する文字数]にチェックを入れた上で、右側の領域に「25」と入力します。
設定後、[OK]ボタンをクリックします。
seikatsu-teiten2014-315「回答項目」の表示が25文字までに制限され、あふれた部分は「…」で表示されるようになります。

かなり見やすくなりました。
seikatsu-teiten2014-316
以上でリストボックスとチャートは完成です。


データの分析

それでは、データを分析していきましょう。

データの分析1

まず動作確認もかねて、「質問分野」や「質問項目」をいくつか選択してみてください。
結果が折れ線グラフとして表示されます。
seikatsu-teiten2014-401seikatsu-teiten2014-402このまま”質問を選択して回答を見る”という流れで、分析を進めていってもいいのですが、これだけ数が多いと、どこから分析していくか迷ってしまいます。
こういった場合は、興味のある事柄でキーワード検索してみましょう。ここでは「回答項目」を”スポーツ”というキーワードで検索してみます。

「回答項目」のリストボックスで、右上の虫眼鏡ボタンをクリックしてください。
「*スポーツ*」と入力し、「スポーツ」というキーワードを含んでいるものを検索します。
seikatsu-teiten2014-403いくつかヒットしますので、そのまま[Enter]キーを押してください。
検索にヒットした値が選択されます。
seikatsu-teiten2014-404
「回答項目」の中に”スポーツ”というものがあります。これだけでは何のことか分からないので、クリックして選択してみましょう。
seikatsu-teiten2014-405
「質問項目」を見ると、”関心のある情報”の回答として、”スポーツ”という回答があったことが分かります。
seikatsu-teiten2014-406
では、ここで視点を切り替えて、”関心のある情報”の回答として、ほかにどのようなものがあるか、また”スポーツ”という回答が何位にあたるのか見てみましょう。

「質問項目」から”関心のある情報”を選択し、逆に「回答項目」から”スポーツ”を選択解除します。
seikatsu-teiten2014-407
2014年の結果で見ると、”食べ物・料理”が一位ですね。
回答率が53.0%ですので、”食べ物・料理に関心がある”と答えた人が53%いたということになります。
seikatsu-teiten2014-408ついで、経済動向・景気(46.1%)、健康・医療(42.6%)、政治(37.4%)とつづき、スポーツは35.5%で五位でした。

では、いったん戻りましょう。
[元に戻す]ボタンを三回クリックして、はじめの状態(スポーツを含んでいるものが選択された状態)に戻します。
seikatsu-teiten2014-409
先ほどは”関心のある情報”を見ましたので、ほかに何か面白そうな質問がないか見てみましょう。

“東京オリンピックに期待すること”という質問があります。
面白そうですので、これを選択してみましょう。
seikatsu-teiten2014-410
「回答項目」から”スポーツをする人が増えること”を選択解除します。
seikatsu-teiten2014-411
“東京オリンピックに期待すること”の結果が表示されました。
しかし、この質問は今回(2014年)のみ出された質問のようで、結果が一年分しかないため、意味のない折れ線グラフになってしまっています。
seikatsu-teiten2014-412これでは見にくいため、ストレートテーブルでも表示できるように、設定を追加しましょう。

折れ線グラフのプロパティを開き、[基本設定]タブを開きます。
画面右側の[クイック切替]で、[折れ線グラフ]と[ストレートテーブル]にチェックを入れます。
[OK]ボタンをクリックしてください。
seikatsu-teiten2014-413
折れ線グラフ右上の[クイック切替]ボタンをクリックして、ストレートテーブルに切り替えてください。
seikatsu-teiten2014-414
回答率の降順(大きい順)に並べ替えてみましょう。
「回答率」のラベル部分をダブルクリックすると、昇順(小さい順)に並べ替えられますので、さらにもう一回ダブルクリックして降順で並べ替えてください。
seikatsu-teiten2014-415“東京オリンピックに期待すること”の中でもっとも多かった回答は、”景気が良くなること”で、82%の方がこの回答をしていますね。

QlikViewではこのように、キーワード検索したり、質問から回答を絞り込んだり、逆に回答から質問を絞り込んだりと、自由に視点を切り替えて分析できます。


データの分析2

それでは、引き続き分析をしていきましょう。

東京オリンピックに関する質問で、景気の話が出てきましたので、ここからは景気について見てみましょう。
「回答項目」を”景気”というキーワードで検索してみます。
“経済動向・景気”という値がヒットしましたが、全部で二つしかヒットしないので、キーワードを変えてみます。
seikatsu-teiten2014-501
“経済”というキーワードで検索してみると、いくつかヒットしますので、そのまま[Enter]キーを押して選択してみましょう。
seikatsu-teiten2014-502seikatsu-teiten2014-503
一番上に”家族の力関係はお金(経済力)で決まると思う”という回答がありますね。
個人的に非常に気になったので、選択して結果を確認してみました。10.6%の方が”家族の力関係はお金(経済力)で決まると思う”と回答しているようです。
seikatsu-teiten2014-504
では戻りましょう。[元に戻す]ボタンをクリックしてください。

折れ線グラフをよく見てみると、”経済的繁栄”(緑色の線です)は、ここ20年で大きく減少しているようです。
左側のリストボックスに目を移すと、「20年変化」の中に「-15.6」という値がありますので、おそらくこれが”経済的繁栄”の値だと思われます。
seikatsu-teiten2014-505
選択して確認してみましょう。
seikatsu-teiten2014-506やはり、そうでした。
質問項目を見ると”日本の誇れること”という質問のようです。
“日本の誇れること”として”経済的繁栄”を挙げる方が、ここ20年で15%以上減少しているようです。

“日本の誇れること”には、ほかに何があるのか気になってきましたので、詳細を確認してみましょう。
「質問項目」から”日本の誇れること”を選択します。
さらに、「質問項目」を右クリックして[他項目の選択のクリア]を選択します。
seikatsu-teiten2014-507
“日本の誇れること”の結果が確認できました。
seikatsu-teiten2014-508
あらためて画面左側の「20年変化」に目を移すと、15%以上減少しているものが二つあります。
一つは先ほどの”経済的繁栄”だと思いますが、もう一つは何でしょうか。
選択して確認してみましょう。
seikatsu-teiten2014-509“高い教育水準”でした。

ここまで減少している方の結果を見てきましたので、増加している方の結果も見てみましょう。
「20年変化」のリストボックスを、下方向にスクロールします。
15%以上増加しているものが三つありますので選択してみます。なにが出てくるでしょうか。
seikatsu-teiten2014-510
“国民の義理堅さ”、”国民の人情味”、”質の高いサービス”の三つが出てきました。
seikatsu-teiten2014-511ここまで分析してきて、値が大きく変化しているものという視点で分析すると面白そうです。
“日本の誇れること”の分析はここまでにして、こんどはすべての質問項目の中で、値が大きく変化しているものを確認してみましょう。

[クリア]ボタンを押して、選択を解除してください。
「20年変化」で、20%以上減少しているものを選択してみます。
seikatsu-teiten2014-512お歳暮やお中元を、毎年欠かさず贈る方は減っているようですね。
また、毎月、決まった額の貯金をしている方も減っているようです。

「20年変化」で、20%以上増加しているものを選択してみます。
seikatsu-teiten2014-513上図のような結果がでてきました。
回答を見てみると、”クレジットカードを使うことに抵抗はない”、”女性の上司のもとで働くことに抵抗はない”と、”~に抵抗はない”という言い回しの回答が二つ出てきています。
このことから、ほかにも同じようなデータがあるのではないかと予想してみます。

「回答項目」で”抵抗”というキーワードで検索してみると、やはり、”~に抵抗はない”という回答がいくつもあるようです。
seikatsu-teiten2014-514
[Enter]キーを押して選択してみます。
seikatsu-teiten2014-515クレジットカードやインターネット、外国人などに対する意識の変化が見えてきます。
ここからさらに掘り下げて、分析していくこともできると思いますが、今回はここまでで終了とします。

「2年変化」や「10年変化」の結果で絞り込んでみたり、逆に20年間でまったく変化のないものを見てみるのも面白いと思います。
ぜひいろいろと分析してみてください。


最後に…

今回は生活定点のデータをQlikViewで分析してみましたが、特設サイトやExcelのアプリケーションが非常によくできていたため、この記事ではなるべく、QlikViewの特長を活かした分析をするように配慮しました。

生活定点のようなアンケートのデータを分析する場合、通常は質問を選択して、その回答を見るという手順になると思います。
しかし、QlikViewは “ユーザーが自由にデータを行き来できること” を重視したツールです。
そのため本編では、質問から回答を絞り込むだけでなく、回答から質問を絞り込んだり、キーワード検索で、複数の質問にまたがる回答を選択したりしました。

データを自由に行き来することで、今回のように、スポーツの話題から、オリンピックの話題、景気の話題と波及していき、最終的に”日本の誇れること”に繋がるかもしれませんし、”女性の上司のもとで働くことに抵抗はない”という結論に辿り着くかもしれません。
これはすこし飛躍した例かもしれませんが、”問いから解答を得て、その解答からまた新たな問いを得る” QlikViewの「データ・ディスカバリ」という考え方を示したつもりです。

いずれにしましても、生活定点のデータは非常に面白いデータですので、ぜひいろいろと分析してみてください。
お疲れさまでした。


補足説明


複数シートのデータを取り込む、サンプルロードスクリプト

今回は「Total」のシートのみ使用しましたが、ほかのシートのデータもまとめて取り込むサンプルのロードスクリプトを掲載しておきます。
繰り返し処理のFOR文を使用して、複数シートのデータを取り込んでいます。
また、INLINE LOADを使用して、Excelのシート名と日本語のタイトルを紐付けています。
Sheets:
LOAD * INLINE [
    SheetName, Title
    Total, 全体
    Male, 男性
    Female, 女性
    "Male 20's", 男性20代
    "Male 30's", 男性30代
    "Male 40's", 男性40代
    "Male 50's", 男性50代
    "Male 60's", 男性60代
    "Female 20's", 女性20代
    "Female 30's", 女性30代
    "Female 40's", 女性40代
    "Female 50's", 女性50代
    "Female 60's", 女性60代
    Tokyo, 首都圏
    Hanshin, 阪神圏
    Tokyo_M, 首都圏・男性
    Hanshin_M, 阪神圏・男性
    Tokyo_F, 首都圏・女性
    Hanshin_F, 阪神圏・女性
];

For i = 0 to 18
LET SheetName = Peek('SheetName', $(i), 'Sheets');
LET Title = Peek('Title', $(i), 'Sheets');

生活定点2014:
CrossTable(年, 回答率, 9)
LOAD '$(Title)' as 対象,
     @1 as 項目番号, 
     @2 as 質問分野, 
     @3 as 質問項目, 
     @4 as 回答項目, 
     If(@17 = '-', Null(), If(Index(@17, '+') > 0, PurgeChar(@17, '+'), If(Index(@17, '-') > 0, PurgeChar(@17, '-') * -1, @17))) as "全体との差",
     If(@19 = '-', Null(), If(Index(@19, '+') > 0, PurgeChar(@19, '+'), If(Index(@19, '-') > 0, PurgeChar(@19, '-') * -1, @19))) as "2年変化",
     If(@21 = '-', Null(), If(Index(@21, '+') > 0, PurgeChar(@21, '+'), If(Index(@21, '-') > 0, PurgeChar(@21, '-') * -1, @21))) as "10年変化",
     If(@24 = '-', Null(), If(Index(@24, '+') > 0, PurgeChar(@24, '+'), If(Index(@24, '-') > 0, PurgeChar(@24, '-') * -1, @24))) as "20年変化",
     If(@5 = '-', Null(), @5) as 1992, 
     If(@6 = '-', Null(), @6) as 1994, 
     If(@7 = '-', Null(), @7) as 1996, 
     If(@8 = '-', Null(), @8) as 1998, 
     If(@9 = '-', Null(), @9) as 2000, 
     If(@10 = '-', Null(), @10) as 2002, 
     If(@11 = '-', Null(), @11) as 2004, 
     If(@12 = '-', Null(), @12) as 2006, 
     If(@13 = '-', Null(), @13) as 2008, 
     If(@14 = '-', Null(), @14) as 2010, 
     If(@15 = '-', Null(), @15) as 2012, 
     If(@16 = '-', Null(), @16) as 2014
FROM
[生活定点2014 集計表.xlsm]
(ooxml, no labels, header is 4 lines, table is "$(SheetName)", filters(
Remove(Col, Pos(Top, 1))))
WHERE(not IsNull(@1));

NEXT

DROP Table Sheets;
このロードスクリプトを実行すると、本編で使用したデータに加えて「対象」と「全体との差」の項目が作成されます。
「対象」が質問の対象をあらわし、男女別、年代別などで絞り込めます。
seikatsu-teiten2014-516



博報堂のニュースリリース

22年間にわたる生活者観測データを一般公開、博報堂生活総研「生活定点2014」 | 博報堂 HAKUHODO Inc.
http://www.hakuhodo.co.jp/archives/newsrelease/19005

生活定点 特設サイト

生活定点1992-2014|博報堂生活総研
http://seikatsusoken.jp/teiten2014/