#Google Data Studioとは
Googleが無償で提供するBIツールです。
BigQuery等と連携して、膨大なデータの分析と報告が可能です。
#今回使用するオープンデータ
今回は新宿区が公開している新宿区民の意識調査を利用します。
新宿区民から2500名を無作為抽出して調査表を送付し、返送があったものを有効回答としています。
データ自体はエクセルのためcsv形式に変換するために若干の操作が必要ですが、
ローデータが手に入るため分析の練習には有用かと思います。
新宿区民意識調査
#オープンデータをBigQueryに入れる
ダウンロードしたデータは、エクセル形式で下記のようになっています。
下記をBigQueryに読み込めるように手を加えます。
調査項目が大量にあるため、今回分析対象にしたい項目だけ残し他は削除します。
また、調査表を参照して質問内容を確認しながら、各項目のヘッド部分に名前を記載します。
それをCSV化したのがこちら。
これを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
##データを確認する
このようにデータが書き出されています。
こちらを可視化していきます。
##ビューとして保存
上記の結果を、GoogleDataStudioに接続して使用するため、ビューとして保存をします。
今回はSurvey1という名称とします。
こちらで準備は完了です。
GoogleDataStudioにて可視化をしていきます。
#GoogleDataStudioで可視化する
##BigQueryと接続する
まず、下記GoogleDataStudioのページにアクセスし、新しいレポートの開始を選択します。
GoogleDataStudio
画面右下の「新しいデータソースを作成」ボタンを押下し、
先ほど作成したデータを読み込んでいきます。
先ほど保存したビューを選択肢、BigqQueryと接続します。
こちらで準備完了です。
##データを可視化する
BigQueryと接続を行うと、下記画面が出てきます。
今回は世帯年収毎の生活への満足度の割合を可視化していきたいと思うので、
annual_incomeのフィードはテキストタイプとして読み込みます。
今回は、100%積み上げの縦棒グラフを用いて、世帯年収毎の各満足度の割合をひと目で見えるようにします。ディメンションにannual_income、指標に各満足度(satisfied,dissatisfied等)を入れ、グラフを作成します。
結果がこちらです。
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との連携にも挑戦してみようと思います。