
国勢調査のデータは無償で公開されており、商圏分析や需要推計、行政計画の立案まで幅広い用途に使えます。ところが実際にダウンロードしてみると、ヘッダーが何行も重なっていたり、数値のはずのセルに記号が入っていたりして、そのままでは分析ツールに取り込めません。クレンジングでは、こうした公的統計特有の形式を分析可能な状態へ整えていきます。
つまずきの原因は、ファイル形式の古さだけではありません。少人数の地域で値が「X」と秘匿されていたり、市区町村合併で地域コードが年次ごとに変わっていたりと、統計制度そのものに由来する落とし穴が随所にあります。この仕様を知らずに集計すると、経年比較の数字が合わない事態に直面するのが実情です。
本記事では、国勢調査データを分析可能な状態へ整える6つのSTEPを実務目線で解説します。表記の標準化や地域コードの扱い、秘匿値の処理、合併をまたぐ経年比較まで順に取り上げます。手元にダウンロード済みのファイルがある方は、実際の統計表と照らし合わせながら読み進めてください。
目次
国勢調査データのクレンジングとは:公的統計特有の前処理
国勢調査のデータは、集計と表章が完了した「完成品」として配布されます。そのため前処理の中身は、汚れた生データを洗う作業ではなく、人が読むために整えられた表を機械が計算できる形へ戻す作業です。ここでは提供形式と表の構造を確認したうえで、通常のクレンジングとの違いを整理していきます。
国勢調査データの提供形式と取得経路
国勢調査の集計結果は、総務省統計局がe-Stat(政府統計の総合窓口)で無償公開しています。取得経路は大きく3つです。統計表をExcelやCSVでダウンロードする方法、データベース形式の統計表から必要な項目だけを絞り込んで出力する方法、そしてAPIで直接取得する方法に分かれます。取得経路をどれにするかで、その後のクレンジング工数は数倍変わります。更新のたびに取り込む仕組みを作るならAPI、一度きりの分析ならCSVというように、運用の継続期間を基準に選ぶ方法が確実です。
ダウンロードしたCSVは、文字コードがShift_JISになっているケースが多数です。UTF-8を前提としたツールでそのまま開くと、日本語が文字化けします。pandasではencoding引数にcp932を指定し、Power Queryでは読み込み時の「ファイルの元のエンコード」を932に切り替えてください。APIを使う場合は、e-Statの利用登録を済ませてアプリケーションIDを発行する手順が入ります。発行は無料で、申請から利用開始までは長くても1営業日程度をみておけば足ります。
取得経路 | 加工の手間 | 自動化のしやすさ | 向いているケース |
|---|---|---|---|
Excel統計表 | 大きい | 低い | 表の全体像を目視で確認したいとき |
CSVダウンロード | 中程度 | 中程度 | 単発の分析で少数の統計表を扱うとき |
データベース形式 | 小さい | 中程度 | 必要な項目だけを絞って取り出したいとき |
e-Stat API | 小さい | 高い | 定期更新やダッシュボードへ組み込むとき |
集計表としての構造がもたらす扱いにくさ
配布される統計表は、印刷して人が読むことを前提に設計されています。1枚のシートに表題、注記、単位、複数行にまたがるヘッダー、データ本体が同居しており、1行1レコードの機械可読なテーブルとは構造が異なるのです。実務では、上部の説明行を5行から10行ほど削り、結合セルを解除してヘッダーを1行へ統合する作業から着手します。ヘッダー統合の際は、上位の区分名と下位の区分名を全角スペースではなくアンダースコアで連結すると、後工程の列名指定が楽になります。
行方向にも階層が入り込む点は見落とされがちです。総数の下に男女別が並び、さらにその下へ年齢階級別が続く入れ子構造になっているにもかかわらず、階層を示す列が別途用意されていない表が数多く存在します。Power Queryのフィル機能で上位区分を下方向へ埋め、階層の深さを表す列を新しく作ってください。この処理を省くと、総数行と内訳行が混在したまま合算され、人口が実際のおよそ2倍になる事故につながります。
一般的なデータクレンジングとの違い
一般的な業務データのクレンジングは、重複レコードの排除、表記ゆれの統一、欠損値の補完が中心になります。国勢調査データの場合、重複や誤入力はほとんど発生しない代わりに、値そのものの意味を読み解く作業が大きな比重を占めるのです。セルに入っている記号を数値ではなく表章上の符号として解釈できるかどうかが、精度の分かれ目になります。該当数が少ない区分を伏せるために置かれた秘匿値を、単なる空欄や0と同一視すると、集計結果は静かに壊れます。
観点 | 一般的な業務データ | 国勢調査データ |
|---|---|---|
欠損の意味 | 入力漏れやシステム不備 | 秘匿・不詳・該当なしで意味が異なる |
重複の発生源 | 名寄せ前の顧客レコード | 総数行と内訳行の二重計上 |
結合キー | 顧客IDや取引ID | 地域コードや町丁字コード |
補完の可否 | 平均値などでの補完も許容される | 補完の方法と範囲を明示する必要がある |
利用ルール | 社内規程に従う | 出典表記と二次加工の明示が必要 |
もう一つの違いは、補完の自由度です。業務データであれば平均値や中央値で埋める判断も許容されますが、公的統計では原データに存在しない値を分析者が作り出す行為そのものが、結果の解釈を難しくします。分析者が値を作れば、その値は元の統計と切り離された独自の推計になるのです。補完する場合は、補完した旨と方法を必ず記録し、補完前の値を別列で保持してください。基本的な考え方はデータクレンジング全般と共通していますので、前処理の全体像をあわせて確認しておくと理解が早まります。
データクレンジングとは?意味と代表手法を解説!
国勢調査データのクレンジングで解決できる課題
クレンジングは目的ではなく手段です。ここでは、前処理を設計段階から作り込むことで解ける課題を4つの観点で整理します。社内で工数を確保する際の説明材料としてもお使いください。
分析ツールに取り込める形式へ変換できる
TableauやPower BIといったBIツールは、1行1レコードの縦持ちデータを前提に設計されています。一方の統計表は、年齢階級や男女が列方向に展開された横持ちの形をとっているため、そのまま接続すると列数だけが増えて集計軸を作れません。変換の実体は、区分を表す列を残しつつ、数値が入った列群を「項目名」と「値」の2列へ畳み込む処理です。Power Queryの「列のピボット解除」、pandasのmelt関数、Tableau Prepの「ピボット」ステップのいずれでも同じ結果を得られます。
変換前に、値以外の列を確定させておくと作業が安定します。地域コード、地域名、調査年、集計単位の4列を先に固定し、それ以外をすべて値列として畳み込む方針が扱いやすいです。この4列さえ決めておけば、統計表が変わっても同じ処理を流用できます。工数の目安は統計表1枚あたり30分から2時間程度で、10枚を扱う案件なら1人日から2人日を見込んでください。変換処理の考え方はデータプレパレーションの領域と重なりますので、ツール選定の前に全体像を押さえておくと選びやすくなります。
データプレパレーションとは?ETLとの違いから成功ポイントまで徹底解説
自社データとの結合精度が高まる
自社の店舗マスタや顧客住所と国勢調査データを突き合わせる場面では、住所文字列そのものをキーにした結合が失敗しがちです。「1丁目1番1号」と「一丁目1-1」が別物として扱われ、結合率が7割程度まで落ち込む例も珍しくありません。住所の表記は入力者によって揺れるため、文字列の一致だけを頼りにする設計はもろいのです。住所ではなく地域コードを結合キーに据えることが、精度を確保する唯一の近道です。自社側の住所をあらかじめコードへ変換しておけば、表記ゆれの影響を受けずに接続できます。
住所からコードへの変換に使うのが、アドレスマッチングと呼ばれる処理です。東京大学空間情報科学研究センターが公開するアドレスマッチングサービスや市販のジオコーディングツールを使えば、住所文字列から緯度経度と地域コードを一括で付与できます。マッチング率は95%以上を目標に設定し、下回った場合はビル名や部屋番号が住所欄に混入していないかを確認してください。結合設計の考え方はデータ統合の実務と共通する部分が多く、社内の他データを扱う際にも応用できます。
データ統合とは?統合の目的や初心者向けの進め方を解説
エリア間比較・経年比較の信頼性を確保できる
地域Aと地域Bの高齢化率を比べるとき、分母の定義がそろっていなければ数字は比較できません。不詳を分母に含めた地域と除いた地域が混在するだけで、比率は1ポイントから3ポイント程度ずれます。この程度の差でも、地域の順位付けは容易に入れ替わるのです。比較を前提とする分析では、分母の定義を先に文書化し、すべての地域へ同じ定義を適用する運用が前提です。定義を決めずに集計を進めると、後から差分の原因を特定できなくなります。
経年比較では、調査年ごとの区分変更が壁になります。2015年と2020年で同じ名称の統計表を使っていても、集計の定義が更新されている場合があるのです。年齢階級の区切りや世帯類型の定義が調査年で変わっている場合、同じ名称の項目でも中身が一致していないのです。名称だけを頼りに結合すると、定義の違いに気づかないまま推移グラフを作ってしまいます。点検は目視でも構いませんが、確認した内容は必ず記録として残す運用にします。数字を並べる前に、次の3点を必ず点検してください。
- 対象となる調査年の間に市区町村の合併や境界変更が発生していないか
- 年齢階級や世帯類型の区分定義が変更されていないか
- 不詳の集計方法や補完の有無が調査年で異なっていないか
点検の観点はデータ品質の評価項目とも重なります。評価軸を社内で共通化しておけば、国勢調査以外の外部データを扱う際にも同じチェックを流用できます。点検結果はスプレッドシートへ調査年別で記録し、比較可能と判断した根拠まで残しておくと、レビュー時の説明が容易です。記録がないまま比較表を提出すると、数字の妥当性を問われた際に再検証からやり直すことになります。
データ品質とは?品質評価項目や品質を向上させるための実務的対策を解説
分析工程の手戻りと属人化を減らせる
前処理をExcelの手作業で進めると、担当者本人でも数週間後には手順を再現できなくなります。半年前に作ったファイルを開いて、どの列を削ったのか思い出せなくなるのです。列の削除やセルの置換は履歴として残らないため、成果物のファイルだけを見ても、どの値をどう加工したのかを追跡できないのです。更新のたびに同じ作業を繰り返す統計データでは、この属人化が毎回の工数として跳ね返ります。担当者が異動した時点で、分析そのものが止まってしまう事例も少なくありません。
解決策は、加工処理をコードまたはクエリとして保存することです。Power Queryであれば適用したステップが自動で記録され、pandasやRのスクリプトであればファイルごとバージョン管理できます。処理内容が文字として残るため、レビューや引き継ぎの対象にできる点も利点です。初回の実装には市区町村単位で3人日から5人日程度かかりますが、2回目以降の更新は1時間以内に短縮できるケースが大半です。投資回収の目安として、更新が3回以上見込まれる場合はスクリプト化を選んでください。
国勢調査データのクレンジングを進める6つのSTEP
ここからは、実際の作業手順を6つのSTEPに分けて解説します。順番には意味があり、標準化を終える前に名寄せへ進むと、後述する典型的な失敗を踏むことになってしまうでしょう。自社の状況に合わせて工数を見積もりながら読み進めてください。
STEP1 利用目的と必要な集計単位の確定
最初に決めるのは、どの集計単位でデータを持つかという点です。国勢調査は全国、都道府県、市区町村、町丁・字等、そして地域メッシュという複数の粒度で公表されており、粒度が細かくなるほど値が伏せられる区分は増えます。集計単位の選択は、分析の解像度と欠測の量をてんびんにかける意思決定です。商圏を半径500メートル単位で見たいのか、市区町村単位の傾向がつかめれば足りるのかを、分析目的から逆算して決めてください。
町丁・字等別の小地域集計を選ぶ場合は、値が伏せられる量を事前に見積もる必要があります。見積もりは実データを1つダウンロードし、伏せられた値の件数を数えるだけで十分です。世帯数が少ない区分では該当する値が公表されないため、詳細な属性ほど空白が目立つ結果になるのです。目安として、人口500人未満の町丁では属性別の内訳が伏せられやすく、分析対象から外すか近隣と統合する判断が求められます。迷った場合は、市区町村単位で試作してから小地域へ降りる二段構えが安全です。
集計単位 | 主な用途 | 値が伏せられる頻度 | 経年比較のしやすさ |
|---|---|---|---|
都道府県 | 全国傾向の把握 | ほぼ発生しない | 容易 |
市区町村 | 拠点配置や商圏の概観 | 少ない | 合併の影響を要確認 |
町丁・字等 | 徒歩圏の商圏分析 | 発生しやすい | 境界変更の影響が大きい |
地域メッシュ | 距離基準の圏域設計 | 発生しやすい | 比較的安定 |
STEP2 元データの構造把握とヘッダー・階層の整形
ダウンロードしたファイルは、加工に入る前に必ず一度そのまま開いて構造を確認します。確認すべきは、説明行の行数、ヘッダーが何行に分かれているか、結合セルの有無、注記が本文中に混ざっていないかの4点です。この確認を飛ばしてスクリプトを書き始めると、統計表ごとの微妙な差異に後から気づき、読み込み処理を何度も書き直すことになります。確認結果は表ごとにメモへ残し、読み込み処理の引数として外出ししておくと保守が楽になります。
整形の実作業は、上から順に不要行を削り、ヘッダーを1行へ統合し、階層列を新設するという流れです。Power Queryなら「上位の行の削除」「1行目をヘッダーとして使用」「フィル」「列のピボット解除」の順に適用すると、ほとんどの統計表を処理できます。pandasを使う場合は、read_excelのheader引数へ複数行を渡してMultiIndexで受け取り、列名を連結してから平坦化してください。整形後は行数と列数を記録し、元ファイルの表章行数と一致するかを都度確認します。
STEP3 表記の標準化:全角半角・数値型・文字コード
標準化では、全角と半角の混在、数値として扱えない文字、文字コードの3点を片づけます。地域名に含まれる「ケ」と「ヶ」、数字の全角と半角、カッコの種類の違いは、名寄せの成功率を直接下げる要因です。Excelの関数を使うならASC関数とJIS関数、pandasならunicodedataモジュールのNFKC正規化で一括変換できます。変換は地域名や項目名などの文字列列に限定し、数値列へ適用しないよう対象列を明示してください。
数値列には、カンマ区切りやスペースが混入していることがあります。全角スペースや改行が末尾に残っている例も見かけます。文字列として読み込まれた1,234という値をそのまま集計すると、合計が0になるか、エラーで処理が止まるかのどちらかです。カンマと空白を除去したうえで数値型へ変換し、変換に失敗した値は削除せず別列へ退避させます。退避させた値の一覧を見ると、次のSTEPで扱う表章上の符号がまとめて洗い出せるため、事前準備としても機能するのです。
STEP4 欠測・秘匿値・不詳の処理方針の決定
数値に変換できなかった値は、意味ごとに分類してから処理方針を決めます。分類は目視ではなく、値の一覧を機械的に抽出する形で行います。国勢調査で使われる符号は限られており、該当する数字がない場合、値が伏せられた場合、不詳の場合で、それぞれ扱いが変わるのです。符号を一律に0へ置き換える処理は、最も頻度が高く、最も影響の大きい誤りになります。分類の結果は符号ごとの件数として集計し、全体に占める割合を把握してから方針を決めてください。
方針は、分析の種類によって変わります。総数を見たいのか構成比を見たいのかを最初に確認します。総数の把握が目的なら伏せられた値を含む行を除外せず総数行を使い、内訳の構成比を見るなら該当区分を明示したうえで分母から外す判断が妥当です。どちらの方針でも、採用した定義を成果物の冒頭に明記します。件数の少ない地域を機械的に除外すると、地方部が丸ごと分析対象から抜け落ちる偏りが生まれます。除外した地域の一覧とその人口規模は、必ず成果物に添えて共有してください。
STEP5 地域コードによる名寄せと他データとの結合
標準化が済んだ段階で、初めて名寄せへ進みます。名寄せを先に行うと、表記ゆれの分だけ例外処理が増えてしまうのです。名寄せの軸になるのは地域コードで、市区町村までなら5桁、町丁・字等まで含めるなら11桁のコードを使うのが基本です。地域名を軸にした名寄せは、同名の市区町村や旧字体の混在によって必ず取りこぼしが出ます。府中市や伊達市のように、同じ名称の市が県をまたいで存在する例もあります。コードを主キー、地域名を確認用の属性という役割分担にしてください。
結合前には、両側のキーの桁数と型をそろえます。文字列型と数値型が混在していると、見た目が同じでも一致しません。片方が文字列で先頭に0が付き、もう片方が数値として0が落ちている状態は、結合率が突然0%になる典型的な原因です。結合後は、結合できなかったレコードを必ず一覧化し、件数と人口規模の両面から影響を評価してください。名寄せの基本的な考え方は顧客データの整備と共通していますので、社内に既存のルールがあれば流用できます。
名寄せとは?正確な顧客データ管理の方法と活用ポイントを徹底解説
STEP6 総数との突合による検証と加工履歴の記録
加工が終わったデータは、必ず元の統計表の総数と突き合わせます。市区町村ごとの人口を合計して都道府県の総数と一致するか、男女別の合計が総数と一致するかという単純な検算で、大半の加工ミスは検出できるのです。許容できる差はゼロが原則で、1人でもずれていれば処理のどこかに誤りがあると考えてください。値が伏せられた区分を含む集計では合計が総数に届かない場合があるため、差分の大きさと発生地域を記録しておきます。
検証と並んで欠かせないのが、加工履歴の記録です。記録は分析結果と同じ重みを持つ成果物です。元ファイル名と取得日、適用した処理の順序、判断が分かれた箇所とその根拠を、1つのドキュメントにまとめます。作業中のメモをそのまま清書する運用にすると、記録漏れが起きにくくなります。記録の粒度は、担当者以外が同じ結果を再現できるかどうかを基準に決めてください。再現できない加工は分析結果の信頼性を担保できないため、成果物としては未完成の状態です。
国勢調査データ特有の項目別クレンジングのポイント
ここからは、国勢調査データに固有の項目へ踏み込みます。どれも一度つまずくと原因の特定に時間がかかる箇所ですので、着手前に押さえておくと手戻りを防げるのです。扱いに迷ったときの判断基準もあわせて示します。
秘匿値・記号:数値として扱えない値の判別
値を伏せる処理は、集計対象となる世帯数や人数が少ない区分で、個人が特定されることを防ぐために行われます。町丁・字等別の集計や、詳細な属性別の内訳を見るときほど発生しやすく、小規模な地域では属性別の値がほぼすべて伏せられる場合もあるのです。判別の第一歩は、統計表に添えられた注記で符号の定義を確認することです。符号の意味は統計表によって異なる場合があるため、思い込みで処理を書かず、必ず原典にあたってください。
表章上の符号 | 意味 | 数値への変換 | 分母への算入 |
|---|---|---|---|
「-」(ハイフン) | 該当する数字がない | 0として扱う | 含める |
「X」 | 値が伏せられている | 欠測のまま保持する | 総数を使う場合のみ含める |
「…」(三点リーダ) | 不詳または調査していない | 欠測のまま保持する | 分析目的に応じて判断する |
「0」 | 実数として0である | そのまま利用する | 含める |
判別作業は、数値変換に失敗した値の一覧を作るところから始めます。pandasならto_numeric関数のerrors引数にcoerceを指定して変換し、欠測になった行の元の値を集計すると、含まれる符号と件数が一目で分かるのです。件数の多い符号から順に処理方針を決め、方針を記述したマッピング表をコード中の定数として持たせてください。マッピング表を分離しておくと、別の統計表を扱う際に定義の差分だけを修正すれば済みます。
不詳と不詳補完値:どちらを分母に含めるかの判断
不詳は、調査票の記入がなかったなどの理由で、区分を特定できなかった件数を指します。回答が得られなかった項目は、0でも欠損でもなく不詳という独立した区分へ集計されます。労働力状態や配偶関係のように、不詳が数%から10%程度を占める項目もあり、扱い方によって構成比が大きく動くのです。分母に含めれば各区分の比率は低めに出て、除外すれば高めに出るという関係を、まず関係者間で共有してください。どちらが正しいかではなく、どちらの定義で集計したかを明示できているかが問われます。
2020年の調査からは、不詳を按分して補った不詳補完値による集計も公表されています。補完値を使うと構成比の計算は簡単になりますが、原データとは異なる値である点を理解したうえで選ぶ必要があるのです。補完の前後で構成比が1ポイント前後動く項目もあります。社内資料や外部公表資料との整合を優先するなら原数値、時系列の傾向を滑らかに見たいなら補完値という使い分けが実務的です。どちらを採用したかは、グラフの脚注にも必ず記載してください。
総数行と内訳行:二重計上を防ぐ切り分け
統計表の多くは、総数行と内訳行が同じ列に並んで格納されています。列名だけを見ても、その行が合計なのか内訳なのかは判別できないのです。「総数」「男」「女」が縦に並ぶ形式のまま合計すると、人口が実際の2倍になるという、発見が遅れがちな誤りが生まれるのです。BIツールへ取り込んでからグラフの数字が大きすぎると気づく場合が多く、原因の切り分けに半日から1日を費やす例も見かけます。取り込み前に切り分けを終えておけば、この手戻りは丸ごと回避できます。
切り分けの方法は2通りです。1つは総数行に印を付けるフラグ列を追加する方法、もう1つは総数行だけを別テーブルへ分離する方法になります。どちらの方式でも、判定に使った条件はコード中へ明示的に残すべきです。BIツールで集計軸を切り替えながら見るなら分離、集計済みの値と内訳を同時に表示したいならフラグ列が扱いやすくなります。どちらを選ぶ場合でも、総数行の判定条件は区分名の完全一致ではなく、階層レベルを表す列で判定してください。
年齢階級・世帯類型:区分の粒度をそろえる
年齢階級は5歳刻みで公表される表と、より粗い区分でまとめられた表が併存します。自社データとの突合では、粗いほうの刻みに合わせる判断が基本になるのです。自社データが10歳刻みであれば、国勢調査側を10歳刻みへ集約する方向で粒度をそろえるのが原則です。細かい側を粗い側へ合わせる方向であれば情報の欠落は起きませんが、逆方向の按分は推計値を作る行為になります。按分を行う場合は、按分の根拠と手法を記録し、推計値であることを明示してください。
世帯類型は、区分の名称が同じでも定義が調査年で変わる場合があります。名称が同じであることを理由にそのまま比較へ進むと、解釈を誤ります。単独世帯や核家族世帯といった主要区分は比較的安定していますが、細分類は見直しの対象になりやすいのです。経年で比較する際は、公表資料の区分定義を調査年ごとに突き合わせ、一致する範囲でのみ比較する方針を立てます。定義が変わった区分は上位の区分へ集約してから比較すると、傾向の把握には十分な精度を確保できるのです。
地域コードと地名の名寄せ:小地域・市区町村合併への対応
地域コードと地名の扱いは、国勢調査データの前処理で最もつまずきやすい領域です。桁落ち、合併、表記ゆれ、境界データとの結合という4つの論点を順に整理します。いずれも、発生してから直すより設計段階で防ぐほうが、結果として工数を抑えられるのです。
全国地方公共団体コードの桁落ちを防ぐ
市区町村を識別するコードとして広く使われているのが、全国地方公共団体コードです。都道府県を表す2桁と市区町村を表す3桁の計5桁で構成され、末尾に検査用の1桁を加えた6桁で示される場合もあります。都道府県から市区町村までを一意に識別できるため、結合キーとして扱いやすい体系です。北海道や青森県のように先頭が0で始まるコードは、Excelで開いた瞬間に0が落ちて4桁になります。一度落ちた0は、桁数を数えて補えば復元できますが、そもそも落とさない読み込み方を選ぶほうが確実です。
防止策は読み込みの時点で決まります。CSVをExcelで開く場合は、ファイルをダブルクリックせず、データタブの「テキストまたはCSVから」を使い、列のデータ形式でテキストを指定してください。pandasならread_csv関数のdtype引数で地域コードを文字列型として指定し、Power Queryなら型変更ステップでテキストを明示します。読み込み後は、コードの桁数が全レコードで同じかを検算し、異なる行があれば処理の前段へ差し戻してください。
市区町村の合併・境界変更をまたぐ場合の組み替え
平成の大合併により、市町村の数はおよそ3,200から1,700台まで減少しました。合併があった地域では旧市町村のコードが廃止され新しいコードが付与されるため、2015年と2020年のデータを同じコードで結合しようとしても対応が取れないのです。経年比較を行う場合は、どちらかの時点の区域に合わせてデータを組み替える作業が発生します。公表されている市町村合併の履歴や都道府県別の変更一覧を突き合わせ、旧コードと新コードの対応表を作る流れになります。
組み替えの方向を決める基準は、分析の目的です。現在の行政区域で施策を検討するなら新しい区域へ合わせ、過去からの推移を長期で追うなら旧区域を維持する判断が自然になります。どちらへ寄せるかを決めたら、対応表の適用方向も固定するのが原則です。合併は複数の旧市町村が1つになるパターンが大半のため、新区域へ寄せる集約は単純な合算で処理できます。分割や境界変更が絡む場合は按分が必要になり、人口按分か面積按分かの選択を記録に残してください。
町丁・字等の表記ゆれ:丁目表記と大字の統一
町丁・字等のレベルまで降りると、表記ゆれの種類が一気に増えます。同じ町丁を指す表記が3種類も4種類も併存する状況は珍しくありません。漢数字と算用数字の混在、丁目の有無、大字や字といった接頭辞の付与、丸カッコで補記された旧町名など、パターンは統計表と自社データの双方に存在するのです。すべてを手作業で吸収しようとすると、対象が数千件規模になった時点で破綻します。正規化ルールを関数として定義し、両側へ同じ関数を適用する設計にしてください。
具体的なルールは、次の順序で適用すると衝突が起きにくくなります。
- NFKC正規化で全角の英数字と記号を半角へそろえる
- 丁目を表す漢数字を算用数字へ変換する
- 大字や字などの接頭辞を除去した列を別に作る
- 丸カッコとその内側の補記を除去した列を別に作る
元の表記は必ず残し、正規化後の列を結合キーとして使う二重管理が前提です。元表記、正規化後の表記、地域コードの3列をセットで保持する形が扱いやすくなります。元表記を捨ててしまうと、結合できなかった行を目視で確認する際に、どの地域を指していたのかを追えなくなります。正規化後もマッチしない行については、地域コード側から地名を引き当てる方向で個別に対応してください。件数の目安として、上記の正規化を適用すれば未マッチは全体の1%から3%程度まで下がります。
統計GIS境界データと結合する際のキー設計
地図上で可視化する場合は、統計GISとして公開されている境界データと属性データを結合します。境界データはShapefileやGeoJSONの形式で提供され、小地域単位のポリゴンには識別子となるコードが付与されているのです。このコードは市区町村コード5桁と町丁字コード6桁を連結した11桁で構成され、この値を主キーに据えるのが最も安定した設計になります。地名や緯度経度でのマッチングは、境界の微修正があった年に破綻するため避けてください。
結合時に注意したいのが、境界データと属性データの調査年をそろえる点です。境界データは調査年ごとに整備され、年をまたぐと町丁の数そのものが変わります。2020年の属性データを2015年の境界データへ結合すると、新設された町丁が地図上に現れず、人口の合計が合わなくなります。ダウンロード時に年次を記録し、ファイル名へ年次を含める運用にしておくと取り違えを防げるのです。結合後は、属性データ側で結合できなかったコードの一覧を出力し、件数が0であることを確認してください。
国勢調査データのクレンジングでよくある失敗パターン
ここでは、実務の現場で繰り返し目にする失敗を5つ取り上げます。いずれも作業中には気づきにくく、分析結果が出てから違和感として現れる種類の誤りです。該当していないかを、自社の手順と照らし合わせながら確認してください。
秘匿値をゼロとみなして集計してしまう
最も頻度が高い失敗が、伏せられた値を0として集計してしまうケースです。集計結果が数値として出てくるため、途中で気づく手がかりが残らないのです。値を伏せる処理は「値が存在しない」ではなく「値を公表していない」という意味なので、0への置換は実態の過小評価を生みます。小規模な町丁が多い地域ほど発生率が高いため、地方部の数値だけが一律に低く出る偏りが生じるのです。エリア間比較を目的とする分析では、この偏りが結論そのものを反転させます。
回避策は、数値変換の段階で符号を欠測として保持する処理を必ず挟むことです。欠測として保持しておけば、集計時に自動で除外されるツールがほとんどです。集計時には欠測を含む区分の件数を並記し、レポート上でも参考値である旨の注記を添えます。どうしても値を埋める必要がある場合は、上位区分の総数から他の区分の合計を引いた残差を上限として扱ってください。残差で埋めた値には推計であることを示すフラグを立て、元の値と区別できる状態を維持します。
調査年の異なるデータを単純比較してしまう
国勢調査は5年ごとの実施であるため、比較対象となる2時点の間に区分や区域の変更が入りやすくなります。5年という間隔は、区域や区分が動くには十分な長さです。同じ15歳未満人口という項目でも、地域の範囲が変わっていれば増減の解釈は成り立たないのです。増減率を計算する前に、対象地域のコードが両年で同一かを機械的に照合する処理を入れます。照合で差分が出た地域は、比較対象から外すか、組み替えを行ったうえで比較対象に戻してください。
調査そのものの変更点にも目を向ける必要があります。調査票の設問が変われば、同じ項目名でも集計対象が変わるのです。調査項目の追加や集計方法の見直しがあった年は、公表資料に注記が記載されているのです。比較表を作る前に対象年の結果概要へ目を通し、変更点の有無を確認する30分程度の作業を組み込んでください。この確認を習慣化すると、分析結果を説明する場面でなぜこの年だけ数字が動いたのかに即答できるようになります。
標準化より先に名寄せを実施してしまう
手順の前後を入れ替えると、作業量が数倍に膨らむ場面があります。名寄せは、キーの表記が完全にそろっていることを前提とした処理です。表記ゆれが残った状態で名寄せへ進むと、マッチしなかった行を1件ずつ確認しながら例外処理を積み増すことになるのです。例外処理はコードの可読性を下げ、別の統計表へ流用する際の障害にもなります。例外処理を書き始めたら、いったん手を止めて標準化へ戻ってください。標準化を先に終わらせておけば、例外処理の件数は数分の1に抑えられます。
順序を守るための工夫として、処理を関数やクエリの単位で分けておく方法が有効です。1つの長いスクリプトにまとめると、途中で順序を入れ替えたくなった際に手が出せなくなります。読み込み、標準化、名寄せ、集計、検証という5つの工程をそれぞれ独立した処理として書き、順番に呼び出す構成にします。工程を分けておくと、標準化のルールを追加した際に名寄せ以降を書き換えずに済むのです。新しい統計表を追加する場合も、読み込み処理だけを差し替えれば流用できます。
加工手順を残さず再現できなくなる
加工後のファイルだけが残り、どう作ったのかが分からない状態は、データそのものを失ったに等しい状況です。半年後に更新依頼が来た時点で、元データの取得からやり直すことになり、初回と同じ工数が再び発生します。取得元のページ構成が変わっていれば、同じファイルにたどり着くだけで数時間かかります。引き継ぎの場面では、後任が手順を推測しながら再構築するため、初回以上の時間がかかる例も見かけるのです。記録は成果物の一部として、最初から作業計画に組み込んでください。
記録すべき項目は、次の5点に整理できます。
- 取得元のURLと統計表の識別番号、取得日
- 適用した処理の順序と、使用したツールおよびそのバージョン
- 伏せられた値や不詳の扱いについて選んだ方針とその理由
- 名寄せに使ったキーと、対応表の出典
- 総数との突合結果と、許容した差分の内容
これらをスクリプトのコメントではなく、独立したドキュメントとして管理します。ドキュメントは表計算ソフト1枚で十分ですので、項目を固定したテンプレートが便利です。どの列がどこから来たのかを追跡する考え方はデータリネージの領域と重なりますので、社内に仕組みがあれば連携させると管理が楽になります。記録の更新を忘れないよう、成果物の提出チェックリストへ記録の更新確認を含めてください。運用が回り始めれば、記録の更新にかかる時間は1回あたり15分程度に収まるのです。
データリネージとは?データリネージの意味やメリット、重要性、主なツールなどを解説
出典表記と利用ルールの確認が漏れる
国勢調査の結果は幅広く利用できますが、出典の明記は求められています。出典には、調査名と調査年、参照した統計表の名称までを含めます。社内資料であっても、出典と調査年を明示しておかないと、数字の根拠を後から確認できなくなるのです。外部公表資料では、加工の有無まで含めて記載する運用が求められます。加工の内容は、集計単位の変更や按分の有無まで書くと親切です。記載例をテンプレート化し、グラフの脚注へ自動的に入る仕組みにしておくと漏れを防げます。
利用ルールは、公表元のサイトで最新の内容を確認してください。更新履歴のページを確認するだけでも、変更の有無は把握できます。政府統計の利用に関するルールは更新される場合があるため、過去のプロジェクトで作成したテンプレートをそのまま流用すると、記載内容が古くなっている可能性があります。確認にかかる時間は10分程度ですので、プロジェクトの開始時に必ず組み込む運用が現実的です。加工を行った場合は、加工した旨と加工者を併記する形が読み手にとって分かりやすくなります。
活用シーン別に見るクレンジング設計の考え方
同じ国勢調査データでも、使う目的が変わればクレンジングの設計も変わります。ここでは代表的な3つの場面を取り上げ、集計単位の選び方と処理方針の勘所を整理します。自社に近い場面から読み進めていただくと、設計の要点をつかみやすくなるはずです。
小売業:商圏分析における集計単位の選び方
商圏分析では、店舗からの距離と集計単位の粒度をそろえることが設計の起点になります。距離と粒度がずれていると、どれだけ丁寧に前処理をしても判断材料になりません。半径500メートルの徒歩商圏を見るのに市区町村単位の人口を使っても、判断に使える解像度は得られないのです。逆に、車で30分圏を対象とする大型店の分析へ町丁・字等の詳細区分を使うと、伏せられた値の多さに悩まされる割に精度は上がりません。距離と粒度の対応関係を、出店基準としてあらかじめ決めておく運用が実務的です。
目安として、次の対応で設計すると破綻しにくくなります。
- 徒歩5分から10分の商圏は、町丁・字等または250メートルメッシュ
- 自転車圏や小型スーパーの商圏は、町丁・字等または500メートルメッシュ
- 車で15分以上の商圏は市区町村単位を基本とし、必要に応じて1キロメートルメッシュ
メッシュ単位を選ぶと、行政界をまたぐ商圏でも距離基準で圏域を切り出せます。行政界で切ると、道路1本を挟んだ需要を取りこぼす場合があるのです。一方で、自社の売上データを町丁単位で持てない場合は、無理にメッシュへ合わせず市区町村単位で統一する判断も現実的です。小売業のデータ分析全体の進め方を押さえておくと、商圏分析以外への展開も検討しやすくなります。集計単位を後から変更すると再集計と再検証が発生するため、着手前に関係者間で合意を取っておいてください。
小売業のデータ分析で何がわかる?目的・やり方・費用をわかりやすく解説
自治体・公共分野:計画策定に向けた経年データの整備
総合計画や公共施設の再編計画では、20年から30年の長期にわたる人口推移を扱います。対象期間が長いほど、単純な数値の並びでは推移を語れなくなります。この期間には合併や境界変更が複数回含まれるため、比較可能な区域へそろえる組み替えが前処理の中心になるのです。組み替えの対応表は一度作れば長く使えるため、初回に時間をかける価値があります。作成にかかる工数の目安は対象自治体の数にもよりますが、県内全市町村を対象とする場合で5人日から10人日程度です。
庁内で共有する際は、加工済みデータと元データの両方を保管してください。元データを残しておかないと、加工の妥当性を後から検証できません。担当課ごとに独自の加工を行うと、同じ人口の数字が資料によって異なる事態を招きます。共通のデータセットとして整備し、更新の責任者を明確にする運用が有効です。データの所在と更新時期を庁内ポータルへ掲載すると、問い合わせも減らせます。自治体DXの取り組みの一環として位置づけると、予算や体制の確保も進めやすくなります。
自治体DXとは?推進ステップと、デジタル化を成功させる7つのポイント
BtoB企業:市場規模推計での按分処理の設計
市場規模の推計では、国勢調査の人口や世帯数を分母に据えて、自社が持つ顧客数や販売数量を按分する設計をとります。分母の取り方を変えると、推計規模が2倍以上動く場合もあります。按分の基準をどこに置くかで結果は大きく変わるため、基準の選択理由を先に文書化しておく必要があるのです。人口按分、世帯数按分、従業者数按分のいずれを使うかは、対象とする商材の購買主体で決めます。個人向けなら人口または世帯数、事業所向けなら事業所を対象とした統計と組み合わせる形が基本です。
按分処理では、丸め誤差の扱いを決めておくと後の検算が楽になります。丸めの方針は、按分の式と一緒にドキュメントへ残す運用にします。小数のまま保持して最後に丸める方式と、各段階で整数へ丸める方式では、合計が数十件単位でずれる場合があるのです。推計値であることを明示するため、桁数は有効数字2桁から3桁程度に抑えて提示してください。精緻な小数まで示すと、推計の前提を知らない読み手が実測値と誤解するおそれがあります。
まとめ:国勢調査データは前処理の設計が分析精度を左右する
国勢調査データの前処理は、統計表を機械可読な形へ戻し、符号の意味を解釈し、コードで名寄せするという3つの作業に集約されます。どれも派手さはありませんが、ここでの設計が分析結果の精度と再現性をそのまま決めるのです。最後に、着手前に確認しておきたい点を整理します。
取り組みの順序は、目的と集計単位の確定、構造把握と整形、表記の標準化、欠測方針の決定、名寄せと結合、検証と記録という流れが基本です。順序を守るだけで、失敗パターンの大半は回避できます。特に、標準化を名寄せより先に終えること、伏せられた値を0として扱わないこと、加工履歴を残すことの3点は、最初のプロジェクトから徹底してください。この3点を守れれば、2回目以降の更新工数は初回の2割から3割程度まで下がります。
自社のデータと組み合わせる場面では、地域コードを主キーに据える設計が出発点になります。住所文字列での結合に頼らない仕組みを最初に作っておけば、扱う統計データが増えても同じ枠組みで対応できるのです。まずは市区町村単位で小さく試し、必要になった時点で小地域へ降りる進め方をおすすめします。
「これから国勢調査をはじめとするデータ活用の取り組みを実施したいけれど、何から手をつけたらいいかわからない」「データ専門家の知見を取り入れたい」という方は、データ領域の実績豊富な弊社、データビズラボにお気軽にご相談ください。
貴社の課題や状況に合わせて、データの取り組みをご提案させていただきます。







