ふるさと納税の実績を自治体別に可視化してみた

タイトルの通りです。毎年年末が近付くに連れてCMなどでも活発化するふるさと納税。一時期、泉佐野市が高額返礼品で話題となりました。

泉佐野市、2カ月だけで全国1位 19年度ふるさと納税https://www.nikkei.com/article/DGXMZO62328390V00C20A8LKA000/

総務省のふるさと納税関連ページを覗くと、各自治体のふるさと納税の実態(受入額・受入件数)が一覧化されていました。今回はこれをマッピングすることで、全国的な傾向や地域的な特徴があるかを見てみたいと思います。

手順は次の通りです。

① 総務省のサイトからふるさと納税の実績データを取得
② 国土数値情報から市区町村の境界データを取得
③ QGIS上で②(白地図)と①(ふるさと納税のデータ)を組み合わせて可視化

ふるさと納税の実績データ

ふるさと納税は総務省が管理する寄付制度の1つです。ふるさと納税の細かい仕組みは触れませんが、要は「どこかの自治体に寄付をすると、その自治体からお礼の品が貰える。しかも寄付額の大半が翌年の住民税から減額される」という仕組みです(申請方法によっては所得税にも影響が及びますが、ざっくりはこんな感じです)。

このうち、”どの自治体に何件の寄付があったか”、”その寄付額はいくらか”については、総務省のHPで公開されています。

総務省ふるさと納税ポータルサイト
https://www.soumu.go.jp/main_sosiki/jichi_zeisei/czaisei/czaisei_seido/furusato/archive/

例えば2019年(平成31年・令和元年)のふるさと納税の実績は、上記URLのうち令和2年度ふるさと納税に関する現況調査についての項目に該当データが添付されてます(前年の実績を翌年調査するので、実績年と調査年は1年ずれています)。

このうち次の2つのファイルを使用します。

A:自治体のふるさと納税受入額及び受入件数(平成20年度~令和元年度)
 →自治体ごとのふるさと納税の受入総額・件数を記録。例えば、A市の人がB市にふるさと納税したとき、B市の受け取った金額はこちらに加算されていきます。

B:令和2年度課税における住民税控除額の実績等
 →自治体ごとの、ふるさと納税によって本来課税分が流出した総額を記録。例えば、A市の人がB氏にふるさと納税すると、A市が本来受け取るはずの税収が下がります。その額がこちらに算入されます。

受入額データの加工

自治体のふるさと納税受入額及び受入件数(平成20年度~令和元年度)のEXCELファイルをダウンロードします。中のデータを見ると次のような形になっていました。1~4行目に各列のタイトルが、5行目以降に各自治体の受入金額・件数が記載されています。このままでも様々な分析・解釈はできそうですが、今回はQGISで地図にマッピングすることで傾向を見たいと思います。そのためには少し加工が必要です。

ヘッダー行の編集

元のデータでは、1~4行目に各列のタイトルが並んでいます。実はこの形は非常に厄介です。QGISに限らず様々なツールでは、このようなタイトル行は1行で扱うことを好みます(データを扱う分野では、このような行のことを”ヘッダー行”、”ヘッダー”などと呼びます)

そのため、元のデータを次のように編集してみました。編集はExcel上で行っています。

ヘッダー(タイトル行)は1列でまとめるのがポイントです。上記の場合「都道府県」「市区町村」「2010年:件数」…と、元々4行に分かれていた情報を1行に集約して記載しました(ついでに元号よりも時系列的に扱いやすい西暦表記に書き換えています)。

地方公共団体コードの追加

ここまで来たら事前のデータ加工はあと一息です。上で作成したデータに、地方公共団体コードの列を追加します。地方公共団体コードとは、各自治体を識別するために国が定める、5桁の固有番号のことです。例えば東京都千代田区13101などと、全自治体ごとに決まった番号が決まっています(6桁で表記することもありますが、ここでは深入りせず5桁とだけ記載します。詳しくはWikipediaなどに記載があるので「地方公共団体コード」で調べてみてください)。

地方公共団体コードをなぜ追加するか?データを扱うとき名前で管理するより番号管理する方が色々と便利だからです。例えば名前管理の場合、同一地名(例:広島県府中市と東京都府中市)や漢字表記ゆれ(例:同じ自治体でも塩竈市・塩釜市とデータによって表記が違う)など扱いにくい場合があります。今回も後の扱いやすさを考慮し、地方公共団体コードを追加します。

さて、先ほどの総務省のホームページに戻ります。https://www.soumu.go.jp/main_sosiki/jichi_zeisei/czaisei/czaisei_seido/furusato/archive/
次の章でも扱う「令和2年度課税における住民税控除額の実績等」のExcelファイルをダウンロードします。なんと、ご丁寧に地方公共団体コードの一覧が掲載されています。これを活用します。

先ほどまで編集していたデータに、この全国地方公共団体コードのシートをコピーします。その後、先頭列(A列目)を新規作成し、都道府県名と市区町村名を結合します(例えば2行目の場合、「=C2&D2」のように入力し、それを全行にコピーします)

次に、ふるさと納税の受入データ側のシートに戻り、先頭列に地方公共団体コードを取り込んでいきます(2列目の場合、=LEFT(VLOOKUP(B2&C2,全国地方公共団体コード!A:B,2,FALSE),5) と打ち込み、それを全行にコピーします)。

これでふるさと納税の受入データの準備は完了です。データを保存しましょう。

CSV保存

QGISではExcelファイルを直接読み込めないため、ファイル形式をCSV形式に変換します。「名前を付けて保存」をする際に、ファイルの種類で”CSV(コンマ区切り)(*.csv)”を選択してから保存してください。

すると、先ほど編集したデータがCSVファイル(拡張子 .csv)として保存されたはずです。

納税控除データの加工

今度は控除データを扱います。総務省のサイトから「令和2年度課税における住民税控除額の実績等」のEXCELファイルをダウンロードします。やり方は先ほどと同様です。

ヘッダー行の編集

先ほど同様にヘッダ行を編集します。また今回のデータには不要列も多いため、列も厳選しました。

地方公共団体コードの追加

やり方は先ほどの受入額データと同様のため割愛します。

CSV保存

先ほど同様に保存します。

市区町村界データの準備

続いて、市区町村界データを準備します。この市区町村界データ、イメージとしては白地図を用意すると思ってください。既にふるさと納税のデータは準備できていますが、市区町村別にマッピングするためには下地となる地図データが必要です。

国土数値情報(行政区域データ)のダウンロード

以前もお世話になった国土数値情報(国土交通省のデータ公開サイトです)から、市区町村の境界データをダウンロードします。今回使用するデータは次のデータです。

  • 行政区域(ポリゴン)データ

都道府県ごとに分かれたデータと全国が1ファイルにまとまったデータの2種類がありますが、今回は後者の全国分のデータをダウンロードしましょう。

ダウンロードしました。

ZIPファイルを展開するとShapefileが入っています。

行政区域データのQGIS可視化

QGISに取り込むと次のようになります。

国土数値情報:行政区域(ポリゴン)データを表示

ここで1つ注意点があります。国土数値情報の行政区域ポリゴンは、政令指定都市のポリゴンが行政区ごとに分かれています。例えば相模原市の場合、「相模原市」という1ポリゴンは存在せず「相模原市緑区」「相模原市中央区」「相模原市南区」の3ポリゴンに分かれています。

ふるさと納税のデータは市区町村ごとに整備されているため、このポリゴンを「相模原市」という1ポリゴンに結合(マージ)する必要があります。その方法は少し長くなるので、別にまとめました。下記の作業を行った後に、次の作業工程に進みます。

ふるさと納税データの可視化!

ここまでの作業で、ふるさと納税のデータ(総務省の公開データ)と可視化するための下地の白地図(国土数値情報の行政区域データ)が準備できました。この2つのデータをQGIS上で結合して、可視化を試みます。

ふるさと納税データのQGIS取り込み

QGISに先ほど準備したふるさと納税のCSVファイルを取り込みます。ドラッグ&ドロップで取り込むと、下図のように左下のレイヤ一覧の表示欄にCSVファイルが表示されます。

行政区域データとふるさと納税データの紐付け

ふるさと納税のデータをただ取り込んだだけでは、位置情報を持っていないためQGIS上で(地図上で)可視化することはできません。先ほど取り込んだ行政区分データにふるさと納税の情報を紐付けます。まず、行政区分データのレイヤのプロパティを開きます。

レイヤプロパティの中にある「結合」を選択してください。

ポップアップで「ベクタ結合の追加」の画面が出てきます。次のように各項目を埋め、OKを押してください。

ふるさと納税受入データの「地方公共団体コード」と、このレイヤ(行政区分データ)の「N03_007」をキーに、2つのデータを紐付けようね…という指示をしています。「N03_007」は行政区分データの地方公共団体コードが記載されている列です。

レイヤプロパティのポップアップもOKを押して閉じると、データの結合が完了しているはずです。見た目だけでは結合が出来たか分からないため、データの中身が変わっていることを確認します。インフォメーションボタン(下図の i と矢印のアイコン)を選択し、どこか適当な自治体をタップします。すると、下図の右欄のように、行政区域データに受入データが紐付いていることが確認できます。

紐付けデータのデザイン変更

最後にレイヤプロパティから受入データの情報(受入額など)をもとに色表現を工夫してみます。デザイン変更は下の記事の「色の変更」を参照ください。

なお、今回取り込んだ受入データの情報について、取り込みの過程で金額が数字ではなく文字として認識されてしまいました(例えば”19,134”という文字列で認識されている場合、真ん中のカンマが邪魔をして、色表現を期待通り定義できなくなりました)。そのため、カラムの設定欄に次のように入力することで回避しました(”受入データ_2019年:金額”の部分はお手元のデータの列名に合わせて書き換えてください)

to_int(replace("受入データ_2019年:金額",',',''))
文字列中のカンマをreplace関数で削除し、それをto_int関数で整数値と読み替えさせました。例えば”19,134″の文字列があったとき、最初の関数で”19134″に置換、次の関数で19134の数字に変換しています。

そして受入額順に可視化!

全国の自治体を受入が多い順位並べ、各グループ同数になるように上位から5段階に分けた場合の図です。様々な切り口で可視化できそうです。

同じ手順で流出額も可視化できます。ぜひ様々な切り口で可視化してみてください。

注意点

最後に注意点が2点あります。

ふるさと納税は、市区町村だけでなく都道府県に対して”納税”することもできます。ただ、今回は市区町村への”納税”分のみを可視化した形になります。ふるさと納税の全傾向を可視化した訳ではないので、その点は注意が必要です。都道府県の地図データを取り込むことで、都道府県版の傾向把握も可能ですが…本記事で扱うのはここまでとしたいと思います。

また、今回は簡易的に傾向を見るため、流出分について「ワンストップサービス」による流出分のみを可視化しています。ワンストップサービスが何かは本ブログの主旨から逸れるため割愛しますが、あくまで流出分は簡易的な算出ルールに基づいた結果ということはご留意頂ければと思います。