6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

訪日外客数データで Power BI レポート作成(データ可視化 上級編)【改訂版】

Last updated at Posted at 2022-06-29

はじめに

日本政府観光局の訪日外客数データを使って Power BI Desktop でレポートを作成していく記事を3回(「データクレンジング 編」「データ可視化 基本編」「データ可視化 中級編」)に渡って書いてきました
3回で終わる予定だったのですが、国交省サイトから訪日外国人の日本国内流動データを見つけて、今まで作成したレポートと紐づけて見てみたい欲が出まして、続きの記事を作成することにしました

大変ありがたいことに、本シリーズをPower BI ワークショップや自習用コンテンツとして、たくさんの方にご利用頂いております
中級編以降のコンテンツ充実の声もあり、この度「データ可視化 中級編」「データ可視化 上級編」を大幅に見直してリニューアルしました✨
本記事は、「✨データ可視化 上級編【改訂版】✨」です

「データ可視化 中級編【改訂版】」までで作成したレポートをベースに、
訪日外国人流動データを紐づけてレポート作成していき、可視化したグラフ結果からインサイトを得ていくという実践的な流れになっています

image.png

使用データについて

今回新たに取りむデータはこちらです

・訪日外国人の国内流動データ(出展:国土交通省)
 訪日外国人はどこから入国して、日本のどこを訪れているのだろうか?を確認するために取り込むデータ
 2019 年と 2022 年の各国の 入国空海港→最初の訪問地、訪問地間、最後の訪問地→出国空海港 の人数を記録したデータを使いたいと思います

レポート作成の流れ

  1. 訪日外国人の国内流動データの取り込みとクレンジング
  2. 年テーブル作成とテーブルリレーション追加
  3. 訪日外国人の国内流動データの可視化
  4. 訪日外客数の増減に相関がありそうな要因を可視化

それでは、「データ可視化 中級編【改訂版】」で作成したpbix ファイルを使って、レポートを作成していきましょう!
ここから参加したい場合は、以下の GitHub から「データ可視化 中級編」の完成見本の「F-data_report_sample_3.5.pbix」を手元にダウンロードしてご利用下さい

1. 訪日外国人の国内流動データの取り込みとクレンジング

訪日外国人の国内流動データのデータソース

国土交通省が公開している「訪日外国人の国内流動データ」というオープンデータを使用します
公表用データベースの方が使いやすいのでこちらのファイルの 2019 年と 2022 年の 2 年分を取り込みたいと思います
(コロナ前後の比較をしてみたいため、この2年を使ってみることにしました)

image.png

訪日外国人の国内流動データの概要は、こちらに国交省さんがまとめてくれています

image.png

手順

① データを取得 > Web > URL で上記のサイトURLを指定
まずは、2019 年分から取り込む、Webサイトの 2019 年のデータリンクを右クリック > リンクのコピーして、URL 情報取得
https://www.mlit.go.jp/sogoseisaku/soukou/content/001389736.xlsx
image.png
② ナビゲーター画面で「国籍別・性別・年代別・全機関」を選択し、右側のビューでデータ内容を確認し、「データの変換」を選択
image.png
③ Power Query で 2019 年分のデータクレンジング
(4回目なので操作の詳細説明少々省きます。わからなくなってしまった方は GitHub の完成形「F-data_report_sample_4.pbix」を参考にして下さい)
・プロパティで [2019_国籍別・性別・年代別・全機関] に名前変更
・上位の2 行削除
・各項目がコードと名称が別列で分かれているので、
 2列を選択して右クリック > 列のマージ > コロンで結合する(先頭に数字が入っている方が並べ替えやすいので)
・国籍は [国マスタ] とのリレーション考慮して、コードは含めない、項目名を [国名] に名前変更
・[目的地][出発地]も、名称についてはコードとマージしない
image.png

・[訪日外国人流動量(人)] 系の列も、項目名を [訪日外国人流動量(人)_Q1] のように名前変更
・項目名が整ったら、上位の2 行を削除
・カスタム列の追加で [年] カスタム式には = 2019 と入れて、[年] 列を作成し、先頭に移動
・数値項目は10進数に型変換
・[国名]列を右クリック > 値の置換で、オーストラリア ⇒ 豪州に変更(国マスタに合わせるため)
・[目的地]列を右クリック > 値の置換で、道内不明、道北、道南、道央、道東 を 北海道に変更(都道府県別に可視化したいため)
image.png

④ 2019 年のデータクレンジングステップを複製して、他の年のデータ作成
・「クエリ」ペインから [2019_国籍別・性別・年代別・全機関] を選択して右クリック > 複製し、
 プロパティで [2022_国籍別・性別・年代別・全機関] に名前変更
・「適用したステップ」の一番上の「ソース」の右の歯車マークをクリックし、URL を 2022 年のファイルの URL に変更
image.png

・「適用したステップ」の「追加されたカスタム」の右の歯車マークをクリックし、[年] 列の値を 2022 に変更
image.png

⑤ 2019 と 2022 のデータを縦結合して新しいテーブル [訪日外国人_流動データ] を作成
・[2019_国籍別・性別・年代別・全機関] を選択し、クエリの追加 > クエリを新規クエリとして追加
・「2つのテーブル」を選択し、2022 のテーブルを選択する
・プロパティで [訪日外国人_流動データ] に名前変更
image.png

⑥ 2019, 2022 のテーブルはレポート読み込み対象から外し、データ反映
・各テーブルを右クリック > 「読み込みを有効にする」をチェックオフ
・「閉じて適用」を選択
image.png

2. 年テーブル作成とテーブルリレーション追加

年テーブル作成

[訪日外国人_流動データ] が [年] 単位の集計のため、[年月カレンダー] と多対多のリレーションとなってしまうため、[年テーブル] を作成する
・フィールドから[年月カレンダー]を選択した状態で、テーブルツール > 新しいテーブル
・数式バーに以下入力

DAX
年テーブル = DISTINCT('年月カレンダー'[])

image.png

年月カレンダーに年と四半期を追加

・データ > [年月カレンダー] を選択し、数式バーに以下に変更

DAX
年月カレンダー = 
ADDCOLUMNS (
    DISTINCT('訪日外客数'[年月]),
    "年", YEAR([年月]),
    "四半期", "Q" & FORMAT(QUARTER([年月]), "0")
)

image.png

[訪日外国人_流動データ]と各種マスタテーブルとリレーション追加

① [年月カレンダー] と [年テーブル] を [年] でリレーション追加
 [年月カレンダー] の [年] を選択して、 [年テーブル] の [年] に向かってドラック&ドロップ
② [年テーブル] と [訪日外国人_流動データ] を [年] でリレーション追加
 クロスフィルターの方向を双方向に変更
③ [国マスタ] と [訪日外国人_流動データ] を [国名] でリレーション追加
image.png

3. 訪日外国人の国内流動データの可視化

冒頭のデータ概要サイトを確認したところ、訪日外国人の国内流動データは、
国毎に 入国空海港→最初の訪問地、訪問地間、最後の訪問地→出国空海港 の人数をそれぞれ集計しており、同一人物が複数回カウントされるデータであることを注意して可視化していきましょう

3-1. 2022 年の訪日外客数と訪日外国人流動データの入国人数の確認

まずは、[訪日外客数] の [人数] と [訪日外国人_流動データ] の 入国人数が概ね合っているかどうかを確認してみましょう

① 既存のページを複製し、[訪日外客人_流動(入国港)人数確認] ページを作成、[年月]スライサーを削除し、[年テーブル]の[年]スライサーを新規追加
(スライサーを複数ページで同期している場合、
 ここを[年]スライサーに変更すると他ページも変更されてしまうので、新規作成すること)
② ビジュアル:テーブル、列に以下を選択
・[年テーブル] の [年]
・[国マスタ] の [地域] [国名]
・[訪日外客数] の [人数]
・[訪日外国人_流動データ] の [訪日外国人流動量(人)_年間]
③ フィルター > このページでのフィルターに以下条件追加
・[訪日外国人_流動データ] の [出発地_種別] = "02:入国港"
 ※入国空海港→最初の訪問地のみの流動人数を集計したいため
④ [年] スライサーを 2022 年に絞る

image.png

多少数字は前後しているが概ね数値は近くて、この見方で良さそうですね

可視化する前にデータをしっかり確認する
今回のデータは以下のような特徴があり、データを理解せずに可視化をしてインサイトを得ようとするとミスリードしてしまうので注意!
・単純に集計するとダブルカウントになってしまう
・[訪日外国人流動量(人)]は四半期毎に項目があるが、Q1~Q4は場所によって入っていたりいなかったりするため、[訪日外国人流動量(人)_年間] を使う

3-2. 訪日外客数の入国から目的地への流量

データの流量や組合せを見たい場合は、
ビジュアル:Sankey Chart や Pie Charts Tree (両方ともカスタムビジュアル追加で利用可能)で可視化するとよいでしょう

今回は、Pie Charts Tree を使います
Sankey だとスタートとゴールを1つずつしか項目設定できないので、今回のように[国名] [出発地] [目的地] 等複数ポイントがある場合はPie Charts Treeの方が融通が利きます
また、流量の降順に上から並ぶのでわかりやすいのも使い勝手がよいです

① カスタムビジュアル: Pie Charts Tree の追加
視覚化 > ビジュアルから[・・・]を選択 > その他のビジュアルの取得 を選択、
Power BI ビジュアルページで 「Pie Chart」とビジュアル検索し、Pie Charts Tree を選択して「追加する」を選択
image.png
② [訪日外客人_流動(入国港)人数確認] ページを複製し、 [訪日外客人_流動(入国港⇒目的地)] ページを作成し、テーブルビジュアルを削除
ページでのフィルターで [訪日外国人_流動データ] の [出発地_種別] = "02:入国港" を設定
③ 視覚化 > Pie Charts Tree ビジュアルを追加し、
Categories にスタートや通過ポイント、ゴールを順番にイベント発生順に設定(ここでは [出発地_名称] [目的地_名称] を設定)、
Value には流量となる [訪日外国人流動量(人)_年間] を設定
④ [年] スライサーを 2019 年に絞る、その後 2022 年でも見てみる
2019年
image.png

2022年
image.png

可視化からの考察
✔ 2019年の訪日外国人の入国は、成田空港が1位 (28%)、続いて関西空港 (27%)、羽田空港 (13%)、福岡空港 (7%) 、新千歳空港 (5%) だったが、
2022は、成田空港が1位 (36%)、続いて羽田 (18%)、関空 (18%)、福岡 (9%)、新千歳 (2%)
✔ つまり、コロナ後は、関東からの入国率が41%⇒54%と13%増加、関空は10%減少、福岡は2%上昇
⇒これは訪日外国人の意思なのか?フライト便数がそうなっているからなのか?
✔ 成田、羽田から入国する訪日外国人の目的地は圧倒的に東京、関東圏

3-3. 目的地別の訪日外国人の国と入国港の流量

同ページに、[出発地_名称] [目的地_名称] のスライサーを追加して、目的地に対してどの国の人がどの空海港から入国してくるか確認してみましょう
① [出発地] [目的地] のスライサーを追加
② Pie Charts Tree のビジュアルを選択し、Categories に[国名]を追加
③ [目的地_名称] スライサーを各都道府県に変えて、どの国の人がどの空海港から入国してくるか確認してみる
例えば、目的地を"鹿児島"にしてみたら、2022 年はベトナムが半数を占めている
image.png

2019 年を見てみると、香港、韓国、台湾と近隣アジア勢が大半で、ベトナムはほとんどいない
image.png

可視化からの考察
✔ 2022年は、ベトナムからの目的地:鹿児島の訪日外黒人が急増
✔ 入国港は、不明海空港が76%
⇒2022年に ベトナム⇒鹿児島の直行便があったのだろうか??

3-4. 都道府県別の訪問人数と各国構成比

鹿児島以外の都道府県もどの国からどのくらい訪問されているか見てみたくなりますね
今度は地図にプロットしてみましょう

① [訪日外客人_流動(入国港⇒目的地)] ページを複製し、 [訪日外客人_流動(目的地)] ページを作成し、Pie Charts Tree のビジュアルを削除
② フィルター > このページでのフィルター で、
・[出発地_種別] のフィルター条件を外し「すべて選択」に戻す
・[訪日外国人_流動データ] の [目的地_種別] = "01:訪問地" の条件を追加
 ※入国空海港→最初の訪問地だけでなく、訪問地間の流動人数も集計対象にしたいため
image.png
③ 視覚化 > マップ ビジュアルを追加し、以下設定
・場所:[訪日外国人_流動データ] の [目的地]
・凡例:[訪日外国人_流動データ] の [国名]
・バブルサイズ: [訪日外国人流動量(人)_年間]
image.png

マップだけだとわかりにくいので、マトリックスも追加
① マップビジュアルを Ctrl+C ⇒ Ctrl+V で複製
② 視覚化 > ビジュアルをマトリックスに変更し、以下設定
・行:[訪日外国人_流動データ] の [目的地]
・列:[訪日外国人_流動データ] の [国名]
・値: [訪日外国人流動量(人)_年間] (統計のパーセント)
④ ビジュアルの書式設定 > セル要素 > 背景色にチェック
⑤ ビジュアルの合計ヘッダをクリックして降順に並び替え
image.png
image.png

年を2019、2022と変えたり、地域にフィルターしたりして、可視化確認

可視化からの考察
✔ 訪問都道府県ランキングは、
2019年は、1位:東京、2位:大阪、3位:京都、4位:北海道、5位:沖縄で、最下位は、高知、福井、島根
2022年は、1位:東京、2位:大阪、3位:京都、4位:福岡、5位:北海道で、最下位は、島根、高知
福岡が上昇し、沖縄、北海道が下がっている
✔ 近隣アジアに絞ってみてみると、韓国は西日本への訪問割合が多く、2022年は福岡、大分の割合が急増
⇒仮説:2019年と2022年の訪問都道府県変化は、国際線発着便数と相関がありそうなので確認してみたいところ

4. 訪日外客数の増減に相関がありそうな要因を可視化

データ間の相関がみたい場合は、
ビジュアル:散布図、主要なインフルエンサー、相関プロット(カスタムビジュアル)で可視化するとよいでしょう

ただし、[人口比] や [為替昨対比] [訪日外客数昨対比] のようなメジャー項目は、そのときのフィルターや軸によって毎回再計算されるため、相関系のビジュアルではそのまま使用できません
相関系ビジュアルを使う前に事前にキー項目で集計したテーブルにしておく必要があります
これを Power BI Desktop 上で簡易的に実施する方法は、国別月別の集計テーブルに可視化して、そのデータをエクスポートして再度データを取り込むことです

4-1. 国別月別の集計テーブル作成とエクスポート

① ページを新規作成
② 視覚化 > テーブル を選択し、列に以下を選択
・[国マスタ] の [地域] [国名]
・[各国情報] の [通貨] [距離]
・[年月カレンダー] の [年月] [四半期] [月]
・[訪日外客数] の [人数] [昨対比_訪日外客数] [人口比]
・[外国為替ヒストリカルデータ] の [通貨為替レート_円] [前年為替変動率]
③ フィルター > このビジュアルでのフィルターで、[地域] が (空白) ではないでフィルターし、地域と国名が空白行を削除する
③ テーブルビジュアルの右上の [・・・] を選択 > データのエクスポート で任意のCSVファイル名で出力
image.png

④ データを取得 > テキスト/CSV > 先ほどエクスポートしたファイルを選択 > データの変換を選択
image.png
⑤ Power Query エディターにて、プロパティで[集計データ]に名前変更し、以下データ成形
・[昨対比] [人口比] [為替昨対比] のデータ側を % から 10進数 に変換
・[人数] のフィルターで null 行削除
image.png

⑥ 閉じて適用
⑦ [集計データ] と [年月カレンダー] [国マスタ] にリレーション追加

4-2. 訪日外客数の主要なインフルエンサーの可視化

主要なインフルエンサーについては、以下ドキュメント参照

① 「為替レートと訪日外客数」ページを複製して、「主要なインフルエンサー」ページを作成し、上部のスライサー以外のビジュアルは削除
② 視覚化 > 主要なインフルエンサー のビジュアル追加、以下項目セット
・分析:[集計データ] の [人数]
・説明:[集計データ] の他項目 ※通貨と通貨為替レートは除外

主要なインフルエンサー:人数の増加に影響を与えるもの
image.png

上位のセグメント:人数が少ない集団
image.png

可視化からの考察
✔ 主要なインフルエンサーによると、訪日外客数の多い条件は以下である
 ・地域:近隣アジア
 ・国名:中国、韓国、米国、香港
 ・距離: 2786km 以下
 ・人口比は0.749%以上の国
✔ これまでの各ビジュアルでの可視化から得られた内容と同等だが、何から見て良いかわからないときには最初にこのビジュアルでデータの当たりをつけるという使い方もよさそう

4-3. 訪日外客数の昨対比と為替昨対比の相関関係を可視化

2つの項目の相関関係を可視化するには、
ビジュアル:散布図を使って可視化したり、メジャーで相関係数を作成したりするとよいでしょう

相関関係を可視化するための散布図の使い方は、このサイトがわかりやすく説明されています

散布図で相関関係を可視化

① 「主要なインフルエンサー」ページを複製して、「昨対比と為替昨対比の相関関係」ページを作成し、上部のスライサー以外のビジュアルは削除
② 2020年以降はコロナの影響で大きく乱れているため、[年月] スライサーで比較的データが揃って安定している 2013 年 ~ 2019 年にフィルター
③ 国別月別の粒度で [訪日外客数の昨対比] と [為替昨対比] を相関を確認したいため、[国名] と [年月] を連結してキー項目を作成
・フィールドから[集計データ]を選択して右クリック > 新しい列 を選択
・数式バーに以下入力

DAX
国名_年月 = '集計データ'[国名] & "_" & '集計データ'[年月]

image.png
④ 視覚化 > 散布図 のビジュアル追加、以下を選択
・値:[集計データ] の [国名_年月]
・X軸:[集計データ] の [昨対比]
・Y軸:[集計データ] の [為替昨対比]
⑤「分析」を選択し、「傾向線」にチェック入れて、「傾向線」を表示
image.png

相関係数を確認

① メジャーで相関係数を作成
・フィールドから[集計データ]を選択して右クリック > 新しいクイックメジャー を選択
・計算:相関係数 を選択、以下を選択
 ・カテゴリ:[集計データ] の [国名_年月]
 ・メジャーX:[集計データ] の [昨対比]
 ・メジャーY:[集計データ] の [為替昨対比]
・数式バーの式を確認
image.png
③ 視覚化 > カード のビジュアル追加、フィールドに先ほど作成した相関係数の項目をセット
④ フィルター > このページでのフィルターで、[昨対比] と [為替昨対比] に「空白ではない」のフィルターを追加
 ※ 空白(欠損)が含まれていると相関係数が正しく計算されないため
image.png
⑤ 国毎の相関係数を一覧確認するため、視覚化 > テーブル のビジュアル追加、列に [国名] [相関係数] をセット
image.png

可視化からの考察
✔ [昨対比]と[為替昨対比]の相関は、全体的には相関があるとは言えないが、香港、ロシア、台湾等、近隣アジアはやや相関あり
 ⇒仮説:目的が観光の訪日外客数が多い場合は、多少相関はあるかもしれない

さいごに

「訪日外客数データで Power BI レポート作成」シリーズを4回に渡って記事にしてきました
オープンデータを組合せて可視化するだけでも、色々なインサイトが得られて可視化しがいがありましたね
複数のデータを組合わせたり、様々なビジュアルを使って色々な角度から可視化する上でのポイントや注意点を体験頂き、皆様の日々の業務のお役に少しでも立てたなら幸いです

6
2
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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?