図表とデータは一致してる?政府CSVの“図表再現性テスト”を提案するよ

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜
- これ見てくださいよ:省庁が「図(第1-1-4図)」として出してる横にCSVがあることが増えた
- でも図とCSVが本当に一致してるかは意外と検証されてない!エンジニア的に言うと再現性テストが足りないんですよ
- 提案:公開ワークフローに「図表再現性テスト」を入れて、数値と図の元データが一致することを自動化しよう
結論
政府・自治体が公開する図表に対して、発表時点でCSVや機械可読データと数値の一致性を自動検証する仕組みを導入すべき。要するに、"図はただの絵じゃなくてデータの宣誓書"にするということです。
レポート本文
背景と事例
最近、内閣府の統計資料にCSVが並んでます(例: https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv や d1-1-42.csv)。Digital庁や各省でもhospital.csvのような機械可読ファイルが公開されてます。これ、すごく良い流れなんですけど、気をつけたいのは「図(PDF/HTML)とCSVの同期」です。
これ見てくださいよ:図のキャプションや注記に載る合計値・寄与度が、CSVから集計すると微妙にズレることがある。要するに、図は手作業で作られてCSVは別工程で出た、という運用ミスが発生しがちなんです。
技術的にチェックする方法(考え方)
- エンジニア的に言うと、まずencodingとBOMを正しく扱うこと!pandasだとutf-8-sigでBOM除去、またはchardetでエンコ検出。
- PDFならtabula/camelot、HTMLならDOMから直接数値を取る。要するに"図を機械で読む"処理を入れる。
- CSVから同じ集計(合計、月次、寄与度)を計算して図の数値と比較。絶対差 or 相対差で閾値(例えば0.5%)を定める。
- デプロイ前にテストがFailしたら公開を止める。簡単なGitHub ActionsでOK。
サンプルコード(概念例、実行は現場で)
import pandas as pd
from decimal import Decimal
def load_csv(path):
try:
return pd.read_csv(path, encoding='utf-8-sig')
except Exception:
return pd.read_csv(path, encoding='cp932')
集計例: 新車販売の合計を比較
df = load_csv('d1-1-4.csv')
前処理: 列名正規化、数値化など
expected_value は図のキャプションから抽出した値
def within_tolerance(a, b, rel_tol=0.005):
return abs(Decimal(a) - Decimal(b)) <= abs(Decimal(b) * Decimal(rel_tol))
CI(概念)
# GitHub Actions pseudo
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run figure-data-check
run: python scripts/figure_data_check.py
実装上の注意点
- 文字コードとBOM:CSVに FEFFのようなBOMが付くと壊れることがある。utf-8-sigで対処。
- 単位と丸め:図は四捨五入で表示されるから比較は"許容誤差"を設定すること。
- メタデータの欠如:図に使った「元データの行番号」や「生成SQL」があれば再現性がグッと上がる。
政策とアカウンタビリティの観点
政策の進捗や予算の説明に図が使われる場面は多い。図とデータが一致しないと、数字の信頼性が落ちて政策への信頼にも影響する。要するに、技術の仕組みで説明責任を担保する場面なんです。
技術的改善提案(すぐできること)
- 図ごとにmetadata.jsonを添付(fields: source_csv, query_hash, generated_at, rounding)
- 公開パイプラインに再現性テストを入れる(図作成ジョブの最後にテスト)
- 図のHTML埋め込み時に元データのURLをdata-*属性で記載
- 省庁共通の「図表テスト」ライブラリをOSS化して共有
まとめ
図は政策を伝える強力な手段だけど、ちゃんと元データと繋げないと説明力が落ちる。エンジニア的に言うと、"図表再現性テスト"は小さな投資で大きく信頼を高められるんですよ!
おかむーから一言
コードで再現できる政策は強いです。Techで説明責任を立て直して、もっと健全な公共政策を作っていきましょう!
情報ソース
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://notice.go.jp/docs/status_nicter.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-42.csv
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://www.digital.go.jp/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://www.kantei.go.jp/
- https://dashboard.e-stat.go.jp/
- https://www.kantei.go.jp/jp/kakugikettei/index.html
- https://www.digital.go.jp/resources/japandashboard
- https://www.kantei.go.jp/jp/naikaku/index.html
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。