LoginSignup
15
11

More than 5 years have passed since last update.

Google Data Studioでオープンデータを可視化してみた

Last updated at Posted at 2019-04-15

Google Data Studioとは

Googleが無償で提供するBIツールです。
BigQuery等と連携して、膨大なデータの分析と報告が可能です。

今回使用するオープンデータ

今回は新宿区が公開している新宿区民の意識調査を利用します。
新宿区民から2500名を無作為抽出して調査表を送付し、返送があったものを有効回答としています。
データ自体はエクセルのためcsv形式に変換するために若干の操作が必要ですが、
ローデータが手に入るため分析の練習には有用かと思います。
図1.png
新宿区民意識調査

オープンデータをBigQueryに入れる

ダウンロードしたデータは、エクセル形式で下記のようになっています。
下記をBigQueryに読み込めるように手を加えます。
図2.png
調査項目が大量にあるため、今回分析対象にしたい項目だけ残し他は削除します。
また、調査表を参照して質問内容を確認しながら、各項目のヘッド部分に名前を記載します。
それをCSV化したのがこちら。
図3.png
これをBigQueryに読み込みます。

BigQueryにデータを入れて抽出・集計する。

BigQueryにデータをいれる

BigQueryにデータをいれていきます。
データの入れ方は下記記事と殆ど同じです。
オープンデータをBigQueryに入れてみる

データを抽出する

今回は、新宿区民の年収と生活への満足度の関係をさぐっていきたいと思います。
抽出する列名と各回答の意味はこんな感じです。

列名 項目の意味
annual_income 世帯年収
satisfaction 生活への満足度
annual_incomeの回答 回答の詳細
1 200万円未満
2 200万円~300万円未満
3 300万円~500万円未満
4 500万円~700万円未満
5 700万円~1000万円未満
6 1000万円~1500万円未満
7 1500万円以上
8 わからない
satisfactionの回答 回答の詳細
1 たいへん満足している
2 満足している
3 やや不満である
4 たいへん不満である
5 どちらともいえない

クエリを実行する

今回は、世帯年収毎にグループ化しそれぞれの生活への満足度の回答を集計します。
また、それぞれの回答に対して「as~」で名前を付け、わかりやすくしていきます。
そして「is not null」 で年収質問への無回答者を省く対応も行います。
コードはこちらです。

SELECT 
  annual_income,
  count(satisfaction = 1 or null) as Extremely_Satisfied,
  count(satisfaction = 2 or null) as Satisfied,
  count(satisfaction = 3 or null) as Dissatisfied,
  count(satisfaction = 4 or null) as Extremely_Dissatisfied,
  count(satisfaction = 5 or null) as Neither
From
  `population-237107.Survey.survey_shinzyuku`
Where
  annual_income is not null  
Group by
  annual_income
order by annual_income asc

データを確認する

このようにデータが書き出されています。
こちらを可視化していきます。
図4.png

ビューとして保存

上記の結果を、GoogleDataStudioに接続して使用するため、ビューとして保存をします。
今回はSurvey1という名称とします。

図5.png

こちらで準備は完了です。
GoogleDataStudioにて可視化をしていきます。

GoogleDataStudioで可視化する

BigQueryと接続する

まず、下記GoogleDataStudioのページにアクセスし、新しいレポートの開始を選択します。
GoogleDataStudio
図6.png

画面右下の「新しいデータソースを作成」ボタンを押下し、
先ほど作成したデータを読み込んでいきます。

図7.png

先ほど保存したビューを選択肢、BigqQueryと接続します。
こちらで準備完了です。

図8.png

データを可視化する

BigQueryと接続を行うと、下記画面が出てきます。
今回は世帯年収毎の生活への満足度の割合を可視化していきたいと思うので、
annual_incomeのフィードはテキストタイプとして読み込みます。
図9.png

今回は、100%積み上げの縦棒グラフを用いて、世帯年収毎の各満足度の割合をひと目で見えるようにします。ディメンションにannual_income、指標に各満足度(satisfied,dissatisfied等)を入れ、グラフを作成します。
結果がこちらです。

図10.png

annual_incomeの回答 回答の詳細
1 200万円未満
2 200万円~300万円未満
3 300万円~500万円未満
4 500万円~700万円未満
5 700万円~1000万円未満
6 1000万円~1500万円未満
7 1500万円以上
8 わからない

上手く可視化ができました。
世帯年収700万円を超えると、生活に対して「大変不満」と答える人は殆どいなくなりますね。
逆に、世帯年収300万円未満でも生活に対して「満足」と答える人は半数以上いるようです。
一概に世帯年収が低いといっても、学生であれば「満足」と答え、家族が多いと「不満」が多くなるみたいな現象はありそうですね。新宿区民の意識調査の中にそのような項目も含まれているので、また見てみたいと思います。
またこのような調査に、「大変不満」と答えるほど生活に困っている人は調査表が送られてきても返送しない、みたな標本自体の偏りもありそうです。

Next

次はより複雑なデータの可視化や統計的な分析、
Pythonとの連携にも挑戦してみようと思います。

15
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11