📍 あなたが今見ているもの
論文中に 「固定効果モデル」 として登場する用語。
固定効果モデル とは:個体ごとの「観察できない固有の差」を吸収する変数を入れたパネルモデル。時間不変の交絡を完全に除去。
💡 30秒で分かる結論 定義 :個体ごとの「観察できない固有の差」を吸収する変数を入れたパネルモデル。時間不変の交絡を完全に除去。カテゴリ :パネル分析
🎨 直感で掴む — 固定効果モデル
固定効果 (Fixed Effects, FE) モデルは、 SSDSE-B-2026 の 都道府県ごとに自前のダミー変数 を 1 本ずつ追加するイメージです(最大 46 本)。 これにより「東京の出生率がもとから低い理由」のような 時間を通じて変わらない地域特性 を完全に吸収できます。 残った変動は 各都道府県内の年次変化 のみ — つまり「同じ都道府県内で年が進むと $x$ が変化したとき、 $y$ も変化したか」を見ています。
比喩で言うなら、 各人の身長を年齢の関数で表現するときに「身長の絶対値の差(個人差)」を一旦消して、 各人の身長の伸びだけで議論する のと同じ発想。 個体差という最大の交絡をエレガントに退治できるので、 観察研究で因果に最も近づける推定量の一つとして広く使われます。
🔬 数式を言葉で読み解く — 記号 → 意味
記号 意味 SSDSE-B-2026 解釈
$\alpha_i$ 個体固定効果(定数として扱う) 「東京は東京、 沖縄は沖縄」という時間不変の地域特性
$\bar{y}_i$ 個体 $i$ の被説明変数の時間平均 東京の出生率の年平均
$y_{it} - \bar{y}_i$ 個体内偏差(within 変動) 東京の今年の出生率と東京の平均との差
$\boldsymbol{\beta}$ 時間内(within)係数 「同じ都道府県内で $x$ が動くと $y$ がいくら動くか」
FE は時間不変な変数(地域固定の制度、 緯度、 海岸線など)の係数は推定できない(withinゼロになる)点に注意。 そういうときは RE か Mundlak 型を検討します。
📖 詳細な解説
この用語は、 統計データ解析・データサイエンスの世界で重要な概念の1つです。 ジャストインタイム型学習では、 必要なときに参照し、 関連概念と合わせて学ぶことで定着を図ります。
基本的な定義
この用語の基本的な意味、 数学的定義、 直感的理解について、 上記の3つの概念マップ を通じて、 関連する用語と一緒に把握しましょう。
使い時の判断基準
データの種類は何か(連続値 / カテゴリ / 順序)
サンプルサイズは十分か(n > 30 が目安)
仮定は満たされているか(正規性、 独立性等)
結果の解釈に必要な情報は揃っているか
Python による実装例
▼ コード解説(固定効果モデル(PanelOLS FE))
🎯 解説: linearmodels.PanelOLS(EntityEffects=True) で各県のダミー変数を全て含める。 時間不変の県特性をすべて吸収。
📥 入力例: EntityEffects=True
説明変数: X, 応答変数: y
📤 実行例: Within R² ≈ 0.45
個体ダミーの F 検定 → p<0.001
→ 固定効果あり
💬 読み方: FE は「同じ県の年内変化」のみで係数を推定。 県間の異質性は吸収されるため、 観測されない交絡に強い。
📋 コピー 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# SSDSE データの読み込み
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , encoding = 'cp932' )
# 基本統計
df . describe ()
df . info ()
# 可視化
df . hist ( bins = 30 , figsize = ( 15 , 10 ))
plt . show ()
📖 包括的解説 — この概念を完全マスター
📍 学習の3ステップ
定義を理解する :この概念は何か? 数式や条件を確認
具体例を見る :実データ(SSDSE 等)で計算してみる
応用する :自分のデータに適用、 結果を解釈
🔧 Python実装パターン
▼ コード解説(両方向 FE(個体 + 時間))
🎯 解説: EntityEffects=True かつ TimeEffects=True で双方向 FE。 全国共通ショックと県特性を同時に吸収。
📥 入力例: 両方向ダミーを追加
📤 実行例: Within R² ≈ 0.50
年度ダミー: 2020 のみ有意(コロナ)
💬 読み方: 双方向 FE は社会経済データの標準。 県差と時系列ショックの両方を吸収して、 純粋な共変動を抽出する。
📋 コピー 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 # 基本パターン
import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
# データ読み込み
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , encoding = 'cp932' )
# 基本統計量
df . describe ()
# 可視化
sns . pairplot ( df [[ '食料費' , '教育費' , '住居費' ]])
plt . show ()
📚 統計概念マップでの位置
このページの上にある3つの概念マップ (関係マップ、 包含マップ、 ツリーマップ)でこの概念の位置づけが視覚的に分かります。 関連手法を辿って学習を進めましょう。
🎯 SSDSE-B-2026 で挑戦
統計データ活用コンペティションのSSDSE-B-2026データは、 47都道府県の社会経済データ。 この概念を使って以下のような分析ができます:
地域別の特徴抽出
家計支出パターンの解析
人口動態と社会経済指標の関連
気候要因の影響評価
💡 よく使うコマンド集
機能
Python (pandas)
Python (scipy)
要約統計 df.describe() stats.describe()
平均 df.mean() np.mean()
標準偏差 df.std() np.std()
相関 df.corr() stats.pearsonr()
t検定 — stats.ttest_ind()
回帰 — stats.linregress()
分布フィッティング — stats.norm.fit()
🚧 一般的な落とし穴と対策
外れ値の影響 :散布図・ 箱ひげ図で確認、 ロバスト手法も検討
サンプルサイズ不足 :power analysis で事前に確認
仮定の違反 :正規性、 独立性、 等分散性をチェック
多重比較問題 :補正(Bonferroni、 FDR)を適用
p-hacking :事前登録(pre-registration)で防ぐ
因果と相関の混同 :観察データから因果結論を出さない
📊 結果報告の標準フォーマット
点推定 :得られた値
不確実性 :信頼区間または標準誤差
サンプルサイズ :n を明記
効果量 :実質的な意義
p値 :統計的有意性
仮定の確認 :診断プロット
🌐 関連分野での応用
マーケティング :A/Bテスト、 顧客分析
医療 :臨床試験、 疫学研究
金融 :リスク管理、 ポートフォリオ
製造 :品質管理、 工程最適化
公共政策 :効果評価、 計画立案
研究 :仮説検証、 探索的解析
🎓 さらに学ぶための文献
Wasserman "All of Statistics"
Hastie, Tibshirani & Friedman "The Elements of Statistical Learning"
Gelman & Hill "Data Analysis Using Regression"
VanderPlas "Python Data Science Handbook"
🔗 統計用語ネットワーク
この概念は、 他の多くの統計概念と密接に関連しています。 ジャストインタイム型学習では、 必要に応じて関連用語へジャンプしながら全体像を構築します。
主要な関連概念のグループ
グループ
主要概念
記述統計 平均、 中央値、 最頻値、 分散、 標準偏差、 共分散、 相関係数
可視化 ヒストグラム、 散布図、 箱ひげ図、 ヒートマップ
推測統計 標本平均、 標準誤差、 信頼区間、 p値、 有意水準
確率分布 正規分布、 t分布、 χ²分布、 F分布、 二項分布
仮説検定 t検定、 F検定、 χ²検定、 ノンパラ検定
回帰 単回帰、 重回帰、 OLS、 Ridge、 LASSO
分類 ロジスティック回帰、 決定木、 SVM、 k-NN
教師なし学習 クラスタリング、 PCA、 因子分析
時系列 ARIMA、 VAR、 指数平滑法、 自己相関
因果推論 DiD、 IV、 傾向スコア、 交絡変数
前処理 標準化、 正規化、 欠損値処理、 多重共線性対策
評価 R²、 残差、 CV、 RMSE、 効果量
学習順序の推奨
記述統計(平均、 分散、 標準偏差)
可視化(ヒストグラム、 散布図)
確率分布(正規分布)
推測統計(標準誤差、 信頼区間、 p値)
仮説検定(t検定、 χ²検定)
相関と回帰(単回帰、 重回帰)
多変量解析(PCA、 クラスタリング)
機械学習(決定木、 RF、 NN)
時系列・因果推論(応用)
📚 統計学習の総合ガイド
🎯 学習目標
このページの概念をマスターすることで、 以下のスキルが身につきます:
定義と公式を正確に理解
適切な使用場面を判断
Python で実装し、 結果を可視化
仮定の確認と診断
結果の解釈と報告
限界と注意点の理解
関連手法との使い分け
📊 SSDSE-B-2026 データの構造
このコンペの主要データセット(SSDSE-B-2026)の構造:
47都道府県 × 過去複数年(パネル形式)
112列の社会経済指標
人口、 出生、 死亡、 婚姻、 経済、 教育、 環境、 家計など多次元
政府統計を統合した信頼性の高いデータ
🔍 主要な変数群
カテゴリ
変数例
人口 総人口、 年齢別人口、 性別人口
人口動態 出生数、 死亡数、 合計特殊出生率、 婚姻数
気候 気温、 降水量、 降水日数
教育 幼小中高校数、 教員数、 生徒数、 大学進学率
経済 求職件数、 求人件数、 旅館数
医療 病院数、 診療所数、 歯科診療所
家計 消費支出、 食料費、 住居費、 教育費等の項目別
💡 ジャストインタイム型学習
このガイドは「必要なときに必要な知識 」を提供する設計:
論文中の用語をクリック → 該当の用語解説へジャンプ(ポップアップ)
概念マップで関連用語を辿る
包含マップで体系を把握
ツリーマップで全体を俯瞰
Python コードをコピーして実行
SSDSE データで実際に試す
🛠️ Python データサイエンス環境
▼ コード解説(LSDV(最小二乗ダミー変数法))
🎯 解説: pd.get_dummies で県ダミーを明示的に作成し、 通常の OLS で推定。 FE と数学的に等価だが計算負荷が高い。
📥 入力例: 県ダミー 46 個(基準県を除く)
📤 実行例: 係数は PanelOLS の FE と完全一致
ただし R² の解釈が異なる(Total R²)
💬 読み方: LSDV は教育用途や少数個体(47 県程度)で使える。 個体数が多い(1000 県)と計算負荷が爆発。
📋 コピー 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 # 必須ライブラリのインストール
pip install pandas numpy scipy statsmodels scikit - learn matplotlib seaborn
# 標準的なインポート
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score , mean_squared_error
# 日本語表示の設定(matplotlib)
plt . rcParams [ 'font.family' ] = 'Hiragino Sans'
plt . rcParams [ 'axes.unicode_minus' ] = False
# データ読み込み(SSDSE は cp932 エンコーディング)
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , encoding = 'cp932' )
print ( df . shape )
print ( df . head ())
print ( df . describe ())
🌟 効果的なEDAテンプレート
▼ コード解説(Within 変換(個体平均からの偏差))
🎯 解説: 各県の時系列平均を引いて Within 変換。 通常 OLS を Within データに適用すると FE と同じ結果。
📥 入力例: x_tilde = x_it - x_i_mean
y_tilde = y_it - y_i_mean
📤 実行例: Within 推定値 = LSDV 推定値
内部計算量を削減
💬 読み方: Within 変換は FE の本質。 「個体内変動」だけ抜き出して回帰すると、 個体差は自動的に消える。
📋 コピー 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 def quick_eda ( df , target = None ):
\" \"\" 探索的データ分析の基本テンプレート \"\"\"
print ( f "Shape: { df . shape } " )
print ( f " \\ nColumn types: \\ n { df . dtypes } " )
print ( f " \\ nMissing values: \\ n { df . isnull () . sum () } " )
print ( f " \\ nBasic stats: \\ n { df . describe () } " )
# 数値列の可視化
numeric_cols = df . select_dtypes ( include = [ np . number ]) . columns
df [ numeric_cols ] . hist ( bins = 20 , figsize = ( 15 , 10 ))
plt . tight_layout ()
plt . show ()
# 相関ヒートマップ
if len ( numeric_cols ) > 1 :
plt . figure ( figsize = ( 12 , 10 ))
sns . heatmap ( df [ numeric_cols ] . corr (), annot = True , fmt = '.2f' ,
cmap = 'RdBu_r' , center = 0 )
plt . show ()
# ターゲットがあれば散布図行列
if target and target in df . columns :
sns . pairplot ( df [ numeric_cols [: 5 ]], hue = target if df [ target ] . dtype == 'O' else None )
plt . show ()
📈 報告書テンプレート
分析結果を報告する際の標準的な構成:
背景・目的 :なぜこの分析が必要か
データ :出所、 サンプルサイズ、 期間
方法 :使用した統計手法、 仮定
結果 :図表、 統計量、 検定結果
解釈 :結果が何を意味するか
限界 :分析の制約
結論 :要点まとめ、 今後の課題
🗺️ 統計手法選択フローチャート
Q1: 何を知りたい?
記述したい → 平均、 分散、 ヒストグラム
比較したい → t検定、 ANOVA、 χ²検定
関係を見たい → 相関、 回帰
予測したい → 回帰、 機械学習
分類したい → ロジスティック回帰、 SVM、 RF
グループ分けしたい → クラスタリング
次元を減らしたい → PCA、 因子分析
因果関係を知りたい → RCT、 IV、 DiD、 PSM
Q2: データの種類は?
連続値 → t検定、 ANOVA、 線形回帰
カテゴリ → χ²検定、 ロジスティック回帰
順序 → ノンパラ検定、 順位回帰
カウント → ポアソン回帰、 負の二項回帰
時系列 → ARIMA、 VAR、 状態空間
パネル → 固定効果、 ランダム効果
Q3: サンプルサイズは?
n < 30 :ノンパラ、 ベイズ、 ブートストラップ
30 ≤ n < 200 :古典的検定、 単純な回帰
n ≥ 200 :複雑なモデル、 機械学習
n ≥ 10000 :深層学習も可能
Q4: 仮定は?
正規性 :満たす → パラメトリック / 満たさない → ノンパラ
独立性 :必須 / 違反 → クラスター調整、 時系列モデル
等分散性 :満たす → OLS / 違反 → WLS、 ロバスト
📏 効果量の参照表
p値だけでなく効果量も併記するのが現代統計の標準。 主要な指標と Cohen の解釈基準:
統計量
効果量
小
中
大
2群平均差 Cohen's d 0.2 0.5 0.8
相関 r 0.1 0.3 0.5
線形回帰 R² 0.02 0.13 0.26
ANOVA η² (eta²) 0.01 0.06 0.14
χ² Cramér's V 0.1 0.3 0.5
ロジスティック Odds Ratio 1.5 2.5 4.0
🔖 キーワード索引(深掘り版)
論文・記事に登場する用語のリンクで該当箇所へジャンプ:
🧮 SSDSE-B パネルデータでの固定効果モデル実値計算例
SSDSE-B-2026 は 47都道府県 × 複数年度(2018-2023)のパネルデータ。 これは固定効果モデルの典型的なテストケースです。 「人口あたり医療費」を「人口あたり病院数」で予測する例で実演します。
📊 ステップ1:データ準備(pandas でロング形式に)
▼ コード解説(階差(first difference))
🎯 解説: Δy = y_it - y_{i,t-1} で階差をとって回帰。 個体効果を消去する別の方法。
📥 入力例: df.groupby('都道府県').diff()
📤 実行例: サンプル数 235 → 188
Δ 高齢化率 vs Δ 死亡率
💬 読み方: 階差と Within は理論的に等価(T=2 のとき同一)。 系列相関がある場合は階差の方が安定。
📋 コピー import pandas as pd
import numpy as np
df = pd . read_csv ( 'data/raw/SSDSE-B-2026.csv' , encoding = 'cp932' , header = 1 )
# パネル化:都道府県 × 年度
panel = df [[ '年度' , '都道府県' , 'A1101' , 'I510120' ]] . copy ()
panel . columns = [ 'year' , 'pref' , 'pop' , 'hospitals' ]
print ( panel . shape , panel [ 'year' ] . unique ()) # (282, 4) [2018..2023]
📊 ステップ2:3つの推定法を比較
手法
推定式
病院数の係数(仮想例)
解釈
プールド OLS $y_{it}=\alpha+\beta x_{it}+\epsilon$ +0.85 *** 県固有性無視(過大評価のおそれ)
県FE(Within) $y_{it}=\alpha_i+\beta x_{it}+\epsilon$ +0.22 * 「同じ県の中で病院が増えると医療費がどう変わるか」
県+年FE(Two-way) $y_{it}=\alpha_i+\gamma_t+\beta x_{it}+\epsilon$ +0.18 * 時間共通ショック(コロナ等)も除去
💡 得られる洞察 :プールド OLS では「病院が多い県は医療費が高い」という県間の差 に引きずられて係数が大きく出ますが、 FE で県固有要因を除くと、 「同じ県の中で病院が増えても医療費は思ったほど増えない」という別の現実が見えます。
📊 ステップ3:クラスタ頑健標準誤差
パネル分析では「同じ県の年度間で誤差が相関」しているため、 通常の標準誤差は過小評価。 必ず cluster='pref' でクラスタ頑健標準誤差を使うこと。
⚠️ 固定効果モデルの落とし穴(深掘り版・7件)
① 時間不変変数の係数が推定できない
FE は個体内変動だけを使うため、 個体内で値が変わらない変数(性別、 出生年、 県のコード自体など)の係数は原理的に推定不能 。 推定しようとすると多重共線性で落ちます。 もし時間不変要因の効果を見たいなら、 Random Effects(変量効果)モデルや Hausman-Taylor 推定、 Mundlak の近似が必要。 FE はあくまで「時間内変動」専用の道具と心得る。
② 通常の標準誤差が過小評価される(クラスタ問題)
パネルデータでは同じ個体(都道府県等)の年度間誤差が相関しています。 これを無視すると、 標準誤差が真の値の半分以下 に推定され、 有意でないものを有意と誤判定する確率が高まる。 必ず クラスタ頑健標準誤差 (cluster_entity=True)を使う。 Stata では cluster(pref)、 R では plm の vcovHC、 Python は linearmodels の自動オプションを利用。
③ 「時間固定効果も入れるべきか」を考えない
個体FEだけだと、 「景気・コロナ・政策変更」など全国共通のショックが説明変数の影響と交絡することがある。 例えば 2020-2021年のコロナ期は全国一斉に医療費が変動した。 これを「病院数増加の効果」と誤認しないためには two-way FE(個体+年) を入れる。 ただし two-way FE は heterogeneous treatment effect の下で偏りを生むことが Goodman-Bacon (2021) で示されており、 因果推論では DiD の最新手法(Callaway-Sant'Anna 等)を検討する場面も。
④ Within変換でデータ点数を見誤る
FE は各個体の平均からの差で回帰するため、 自由度は単純にサンプル数ではなく NT − N − K (個体数 N、 期間 T、 説明変数 K)になります。 47県×6年=282 観測でも、 自由度は 282-47-K と大きく目減り。 ガジット派が「サンプル多いから安全」と過信するのは危険。 観測数と自由度を区別して計画する。
⑤ 外生性の仮定をチェックしない
FE は「個体固有の時間不変 交絡」を除去しますが、 「時間変動する交絡」は依然として残る。 たとえば「病院数増加 → 医療費増加」の推定で、 実は「県の景気変動が両方を動かしている」場合、 FE では救えない。 IV(操作変数)や DiD・PSM・合成統制法を併用する必要があります。 Hausman 検定で FE vs RE を比較するのも基本動作。
⑥ 個体間差を「説明できない誤差」として捨てる
FE は個体間の系統的な違い(例:東京vs鳥取の構造的違い)を全部 α_i に押し込む。 つまり「東京と鳥取で平均的に何が違うか」については一切答えない。 もしそれが研究目的なら、 FE は不適切。 Random Effects か HLM(階層線形モデル)が必要。 研究目的が「県内変動の効果」なのか「県間差の説明」なのかを最初に明確にする。
⑦ ダミー変数を直接入れると計算が遅い
47県のダミー変数を直接入れた OLS は、 サンプル数が増えると行列演算が非常に重くなる。 linearmodels の PanelOLS や R の fixest::feols は Within 変換を内部で使い、 ダミー行列を作らないので桁違いに速い 。 大規模パネル(数万個体×数十年)では必須テクニック。
🐍 Python 実装バリエーション
① linearmodels(最も標準的)
▼ コード解説(クラスター標準誤差(県別))
🎯 解説: cov_type='clustered', cluster_entity=True で県内系列相関を補正。 SE が 2-3 倍に拡大。
📥 入力例: 47 クラスタ
📤 実行例: 係数は同じ
SE が拡大 → t 値が小さく
💬 読み方: クラスター SE は FE の標準作法。 同一県の時間誤差は相関するため、 通常 SE では過小評価される。
📋 コピー from linearmodels.panel import PanelOLS
panel = panel . set_index ([ 'pref' , 'year' ])
mod = PanelOLS . from_formula ( 'y ~ 1 + x + EntityEffects + TimeEffects' ,
data = panel )
res = mod . fit ( cov_type = 'clustered' , cluster_entity = True )
print ( res . summary )
② statsmodels(OLS + 県ダミー)
少ない個体数なら、 ダミー変数を直接作って OLS で推定する古典的アプローチも有効。
▼ コード解説(F 検定(プール vs FE))
🎯 解説: ダミー変数群が全てゼロかを F 検定。 棄却されれば FE が必要。
📥 入力例: プール OLS と FE の RSS 比較
📤 実行例: F = 285.3, p<0.001
→ FE 採用
💬 読み方: F 検定で帰無仮説(プール OLS で十分)を棄却したら FE 必須。 ほとんどの社会データで FE が必要になる。
📋 コピー import statsmodels.formula.api as smf
# C(pref) で都道府県ダミー、 C(year) で年ダミーを作成
model = smf . ols ( 'y ~ x + C(pref) + C(year)' , data = panel ) . fit (
cov_type = 'cluster' , cov_kwds = { 'groups' : panel [ 'pref' ]})
print ( model . summary ())
③ scikit-learn 風(参考用、 厳密ではない)
scikit-learn には公式の固定効果クラスはありません。 代わりにダミー変数を OneHotEncoder で作り、 LinearRegression に通す方法があります。 ただし正規方程式に直結する形なので、 大規模パネルでは linearmodels が圧倒的に速い。
④ Within 変換を手動実装
▼ コード解説(固定効果の取得(県固有切片))
🎯 解説: model.estimated_effects で各県のダミー係数を取得。 全国平均からの逸脱を可視化。
📥 入力例: EntityEffects の推定値
📤 実行例: 沖縄: -2.1(低い死亡率)
秋田: +1.5(高い)
全国平均との差を可視化
💬 読み方: 固定効果の値は「県固有要因による上下シフト」。 BLUP と異なり確率変数ではなくパラメータ。
📋 コピー # 各県の年度平均を引いて Within 変換
df [ 'y_within' ] = df [ 'y' ] - df . groupby ( 'pref' )[ 'y' ] . transform ( 'mean' )
df [ 'x_within' ] = df [ 'x' ] - df . groupby ( 'pref' )[ 'x' ] . transform ( 'mean' )
import statsmodels.api as sm
print ( sm . OLS ( df [ 'y_within' ], df [ 'x_within' ]) . fit () . summary ())
これは linearmodels が内部で行っている処理と同じ。 自由度補正は手動で必要。
🗺️ 概念マップ — 3つの視点で体系を理解する
固定効果モデル がデータサイエンスの体系の中でどこに位置するか を、 3つの異なる視点で可視化します。 同じ情報でも見方を変えると気付きが変わります。
📍 体系階層のパス
🌐 体系階層に未登録
① 🔗 関係マップ — 「他の手法とどう繋がっているか」
中心の概念から放射状に、 前提・兄弟・発展形・応用先 などの関係性を矢印で結びます。 横の繋がり を見るのに最適。 ノードをドラッグ 、 ホイールでズーム 、 クリックで遷移 。
凡例: 現在の用語 上位カテゴリ 兄弟(並列) 前提 発展形 応用先 2階層先
② ⭕ 包含マップ — 「どのカテゴリに含まれているか」
大きな円が小さな円を包含 する Circle Packing 図。 「固定効果モデル」は緑色でハイライト 。
カテゴリ円をクリック :その内部にズームイン
白背景クリック :1階層戻る
用語円をクリック :詳細ページへ遷移
マウスホバー :階層パス表示
③ 🌳 ツリーマップ — 「面積で見るボリューム比較」
長方形を入れ子に分割した Treemap 図。 各分野の規模感 を面積で比較。 「固定効果モデル」は緑色でハイライト 。
カテゴリ矩形をクリック :その内部にドリルダウン
パンくず(上のリンク)クリック :その階層に戻る
用語矩形をクリック :詳細ページへ遷移
マウスホバー :階層パスと値を表示
🎯 3つのマップの使い分け
マップ
分かること
こんな時に見る
🔗 関係マップ 手法間の横の関係 (前提→発展→応用) 「次に何を学べばよい?」 学習順序の判断
⭕ 包含マップ 分類体系の入れ子構造 (上位⊃下位) 「この手法はどんなジャンルに属する?」
🌳 ツリーマップ 分野の規模比較 (面積=ボリューム) 「データサイエンス全体の俯瞰像」
💡 ジャストインタイム学習のヒント :3つの視点を行き来することで、 概念を多角的に 理解できます。 包含マップやツリーマップはズーム/ドリルダウン で大分類から細部まで探索できます。
📚 関連グループ教材 — 固定効果モデルを体系で理解する
固定効果モデル(fixed effects model)は、 パネルデータ解析の標準装備であり、 同時に「処置群 ・ 対照群」「DID」「二元固定効果」と地続きの教材体系の中央に位置します。
このページから飛べる主要グループ教材
SSDSE-B-2026 における固定効果学習の流れ(推奨)
パネルデータ として整形し、 between/within 分解で固定効果が拾う情報量を確認する。
変量効果モデル と比較し、 Hausman 検定 で外生性を判断する。
DID で「二元固定効果(個体+時間)」へ拡張する。
ロバスト統計 の応用としてクラスタロバスト標準誤差を導入する。
パネル因果分析 の応用例として政策効果推定に進む。
到達目標
固定効果が「個体間異質性」を吸収する代償として何を犠牲にするかを言語化できる。
SSDSE-B-2026 における「県固有の事情」をモデルで明示的に吸収する経験を積む。
個体・時間の二元固定効果と DID の同値性を理解できる。
🧮 SSDSE-B-2026 拡張ハンズオン — 固定効果モデルの実装
都道府県 × 年度のパネルで一人当たり県民所得を被説明変数とし、 高齢化率と完全失業率を説明変数として固定効果モデルを推定します。 OLS(プールド)・ LSDV・ within 変換の 3 通りで係数が一致することを実データで確かめましょう。
🎯 学習目的
LSDV(最小二乗ダミー変数法)と within 変換が同じ係数を返すことを SSDSE-B-2026 で確認する。
📥 入力
SSDSE-B-2026 の都道府県 × 年度パネル。 説明変数は Aging_rate ・ Unemployment_rate。
📤 出力
OLS / LSDV / within の係数表、 標準誤差、 R^2。
💬 解説
プールド OLS は県固有事情を見逃すため係数が歪む。 LSDV は県ダミーを 46 個入れる愚直法、 within は各列から県平均を引く高速法。 結果は同じになる(Frisch-Waugh-Lovell の定理)。
🐍 3 方式の比較
import pandas as pd
import numpy as np
import statsmodels.api as sm
from linearmodels.panel import PanelOLS
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8-sig')
df = df.set_index(['Prefecture', 'Year'])
y = df['Per_capita_income']
X = df[['Aging_rate', 'Unemployment_rate']]
# 1. プールド OLS(固定効果を入れない)
pooled = sm.OLS(y, sm.add_constant(X)).fit()
print('pooled :', pooled.params.values)
# 2. LSDV
D = pd.get_dummies(df.index.get_level_values(0), drop_first=True)
D.index = df.index
Xd = pd.concat([X, D], axis=1)
lsdv = sm.OLS(y, sm.add_constant(Xd)).fit()
print('LSDV :', lsdv.params[['Aging_rate', 'Unemployment_rate']].values)
# 3. within 変換
Xw = X - X.groupby(level=0).transform('mean')
yw = y - y.groupby(level=0).transform('mean')
within = sm.OLS(yw, Xw).fit()
print('within :', within.params.values)
# 4. linearmodels の PanelOLS(クラスタロバスト SE)
res = PanelOLS(y, X, entity_effects=True).fit(cov_type='clustered', cluster_entity=True)
print(res.params)
読み解きの観点
3 つの方式で Aging_rate 係数が(小数点誤差を除いて)同じ値になることを確認。
クラスタロバスト SE は通常の SE より大きくなるはず。 これを反映しない論文の有意性は信用しない。
固定効果を入れた瞬間に消える係数(時間不変な変数)がある。 これが固定効果モデルの最大の弱点。
追加の落とし穴
incidental parameters problem : T が小さく N が大きい場合、 個体固定効果の数が増えすぎて推定誤差が累積する。 SSDSE-B-2026 は N=47 と小さく T も短いことが多いので注意。
時間不変な政策ダミー : 県境界の改編など、 県固定効果と完全多重共線になる変数は推定できない。
動学パネル : 被説明変数のラグを右辺に入れると Nickell バイアスが出る。 GMM(Arellano-Bond 等)に移行が必要。
❓ よくある質問 — 固定効果モデルの実務 12 問
Q1. 固定効果と変量効果の選び方
Hausman 検定が原則だが、 ドメイン知識で「個体効果と説明変数に相関がある」と判断できれば固定効果一択。 SSDSE-B-2026 の都道府県分析では通常、 固定効果が安全。
Q2. 個体固定効果と時間固定効果の両方を入れるべきか
全国共通のショック(景気変動など)があるなら時間固定効果も必要。 二元固定効果(two-way FE)が標準。
Q3. 時間不変な説明変数は推定できるか
個体固定効果と完全多重共線になるので推定不可 。 これは固定効果モデルの最大の欠点。
Q4. 固定効果モデルでの R^2 の解釈
「within R^2」「between R^2」「overall R^2」を分けて報告する。 固定効果モデルでは within R^2 が主役。
Q5. クラスタロバスト SE はクラスタ数いくつから安全か
経験則で 30 クラスタ以上。 SSDSE-B-2026 の N=47 はギリギリ安全圏。 不安なら wild cluster bootstrap を併用。
Q6. 固定効果と差分の差は同じか
2 期間 ・ 2 群 DID は one-way FE と等価。 多期間 DID は二元固定効果と等価(ただし staggered adoption で問題が出る)。
Q7. 「県内変動」が小さい説明変数は使えるか
使えるが、 標準誤差が爆発する。 within 分散が小さい変数で因果推論しようとするのは無理がある。
Q8. ロバスト標準誤差 vs クラスタロバスト
パネルではクラスタロバスト が原則。 通常のロバスト SE は系列相関を無視する。
Q9. fixed effects の数値計算
LSDV はダミーが増えると行列計算が重い。 within 変換(demean)の方が効率的で、 結果は同じ。
Q10. 動学パネルでの固定効果
被説明変数のラグを右辺に入れると Nickell バイアス。 Arellano-Bond GMM で対処。
Q11. unbalanced パネルでの固定効果
linearmodels.PanelOLS や statsmodels の plm が自動対応。 ただし脱落理由が処置と相関するなら IPW が必要。
Q12. 固定効果モデルでの予測
新しい個体への予測には使えない(固定効果は推定済み個体の値)。 一般化したい場合は変量効果か階層モデルへ。
🚀 発展研究の方向性 — 固定効果モデルの最前線 6 題
staggered DID : 処置のタイミングが個体ごとに異なる場合、 二元固定効果は偏る。 Callaway-Sant'Anna ・ Sun-Abraham 推定量。
固定効果と機械学習 : Athey-Wager の Double ML で固定効果を残差化する。
合成統制法 : 1 つの処置単位に複数対照単位の重み付き平均を当てる。
panel matrix completion : 因子モデルでパネル欠損を補完しつつ処置効果推定。
異質処置効果 : 固定効果と HTE の組み合わせ。 Callaway-Sant'Anna の event study。
ネットワーク固定効果 : 個体間の相互作用を考慮する spatial panel。
📋 ケーススタディ — SSDSE-B-2026 で起こる固定効果分析 4 シナリオ
シナリオ A: 県固有の気候・地理を吸収する
農業就業者比率を被説明変数として、 「政策効果」を見たいときに、 県固有の気候や地理は時不変なので固定効果で完全に吸収 される。 これにより気候を別途モデル化する必要がなくなる。
シナリオ B: 全国共通の景気ショックを吸収する
リーマンショックやコロナのような全国共通の年次ショックは、 年固定効果 で吸収。 これにより「景気のせい」と「政策のせい」を分離できる。
シナリオ C: 県境界の改編
「平成の大合併」のような大規模合併があった年は個体ダミーの定義が壊れる。 SSDSE-B-2026 は都道府県単位なので合併の影響は限定的だが、 市区町村単位の分析では深刻。
シナリオ D: 異質処置効果のシグナル
「同じ政策を導入しても、 大都市県と地方県で効果が逆」というケース。 固定効果+ HTE モデル(処置 × 都市規模ダミー)で異質性を可視化する。
🌳 固定効果モデルの意思決定木 — 6 つの分岐
分岐 1: パネルデータか
はい → 固定効果モデルを検討。
いいえ(クロスセクション) → 通常の OLS でよい。
分岐 2: 個体効果と説明変数に相関はあるか
あり → 固定効果一択。 変量効果は不偏でない。
なし → 変量効果も使える。 Hausman 検定で確認。
分岐 3: 時間不変な説明変数があるか
あり、 かつそれが主役 → 固定効果では推定不能。 ハイブリッドモデルや Mundlak 装置を検討。
なし → 通常の固定効果で OK。
分岐 4: 全国共通のショックはあるか
あり → 二元固定効果(時間 + 個体)。
なし → 個体固定効果のみで OK。
分岐 5: 標準誤差の計算
クラスタロバスト SE を必ず使う。 SSDSE-B-2026 の N=47 ではギリギリ妥当だが、 wild cluster bootstrap も併用。
分岐 6: 因果推論につなぐか
はい → DID ・ 二元固定効果 ・ 合成統制法へ。
いいえ → 記述的 panel regression で完結。
📖 固定効果モデルの専門用語ミニ辞典 — 14 語
Fixed Effects Model (FE)
個体固有の時不変要素をダミー変数で吸収するモデル。
Random Effects Model (RE)
個体効果を確率変数として扱うモデル。 説明変数と無相関を仮定。
Hausman 検定
固定効果と変量効果のどちらが適切かを統計的に判定。
LSDV (Least Squares Dummy Variable)
個体ダミー変数を全部入れて OLS する愚直法。
Within 変換
各列から個体平均を引く前処理。 LSDV と同じ係数を返す。
Between 推定量
個体平均同士の回帰。 cross-section 的な情報を使う。
Two-Way Fixed Effects (TWFE)
個体固定効果 + 時間固定効果のモデル。 DID と等価。
Cluster Robust Standard Error
個体内系列相関を考慮した標準誤差。 パネルでは必須。
Nickell バイアス
動学パネル(被説明変数のラグを入れる)で生じるバイアス。 T が小さいと大きい。
Mundlak 装置
変量効果モデルで個体平均を説明変数に加えることで、 固定効果と等価にする技。
FWL の定理
Frisch-Waugh-Lovell。 「他の変数を残差化してから回帰する」と元の係数と同じになる。 within 変換の理論的根拠。
Incidental Parameters Problem
N が大きく T が小さいと、 個体パラメータ推定の誤差が累積する問題。
Wald 検定
固定効果モデルの個体ダミー群が全体として有意かを検定。
Pooled OLS
個体・時間構造を無視した OLS。 固定効果との比較の基準点。
🐍 拡張ハンズオン — SSDSE-B-2026 で TWFE と通常 OLS の比較
🎯 学習目的
同じデータに対して (1) プールド OLS、 (2) 個体固定効果、 (3) 二元固定効果 (TWFE) の 3 モデルを推定し、 係数の符号や大きさがどう変わるかを観察する。
📥 入力
SSDSE-B-2026 をパネル化(Prefecture × Year)したデータ。
📤 出力
3 モデルの係数表とクラスタロバスト標準誤差。
💬 解説
プールド OLS で正の係数が、 TWFE で負になる、 という現象(Simpson's paradox 的な逆転)は実データで頻繁に起こる。 これがパネル分析の真価。
🐍 比較スクリプト
import pandas as pd
from linearmodels.panel import PanelOLS, PooledOLS
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8-sig')
df = df.set_index(['Prefecture', 'Year'])
y = df['Per_capita_income']
X = df[['Aging_rate', 'Unemployment_rate']]
# 1. プールド OLS
pool = PooledOLS(y, X).fit(cov_type='clustered', cluster_entity=True)
print('Pooled:')
print(pool.params)
# 2. 個体固定効果
fe = PanelOLS(y, X, entity_effects=True).fit(cov_type='clustered', cluster_entity=True)
print('FE (entity):')
print(fe.params)
# 3. 二元固定効果 (TWFE)
twfe = PanelOLS(y, X, entity_effects=True, time_effects=True).fit(cov_type='clustered', cluster_entity=True)
print('TWFE:')
print(twfe.params)
読み解きの観点
プールド OLS では「県間の所得差」が支配的で、 失業率と所得の関係はクロスセクション的な姿 になる。
個体固定効果に切り替えると、 「同じ県の中で失業率が変動したときの所得変動」のみが残り、 多くの場合係数の大きさが激減する。
TWFE では全国共通の景気変動も除去され、 「県固有 ・ 時点固有要因を除いた純粋な関係」が見える。
🧭 固定効果モデルの実務 FAQ 補遺 — さらに 8 問
Q1. 固定効果モデルで個体数が時間ごとに変わる場合は
unbalanced panel として扱う。 linearmodels.PanelOLS は自動対応。 ただし脱落が処置と相関するなら IPW で補正。
Q2. 固定効果モデルでの相互作用項
「処置 × 時間」は DID と同義。 「処置 × 共変量」は HTE 分析。 どちらも固定効果モデルに組み込み可能。
Q3. 残差の自己相関は無視してよいか
無視すると標準誤差が過小評価される。 クラスタロバスト SE で対処するのが標準。
Q4. 固定効果モデルでの予測区間
新規個体の予測区間は通常出せない。 既存個体の将来予測は固定効果が利用可能。
Q5. R^2 が固定効果モデルで小さくなるのは正常か
「個体内の変動」だけを説明するのが within R^2 なので、 値が小さくなりやすい。 比較は同じ FE モデル間で行う。
Q6. 固定効果モデルと階層モデルの違い
固定効果は個体効果を「自由パラメータ」、 階層モデルは「確率変数」として扱う。 後者は予測に強い。
Q7. 固定効果モデルでサイズの小さい N は問題か
N が小さいとクラスタロバスト SE の漸近近似が崩れる。 wild cluster bootstrap が代替。
Q8. 固定効果モデルと機械学習
Athey-Wager の Double ML で、 機械学習を「残差化」のステップに使う。 固定効果はそのまま残せる。
✨ ベストプラクティス集 — 固定効果モデルの作法 12 箇条
パネルデータと分かった瞬間に「個体内変動」と「個体間変動」を分離して眺める。
between R^2 / within R^2 / overall R^2 の 3 つを必ず報告する。
クラスタロバスト SE を標準採用する。 通常の SE は系列相関を無視する。
時間固定効果は迷ったら入れる。 全国共通ショックを吸収できる。
Hausman 検定の結果だけで固定効果 vs 変量効果を選ばない。 ドメイン知識を優先。
動学パネルでは Nickell バイアスに留意し、 GMM を検討。
クラスタ数が 30 未満なら wild cluster bootstrap で SE を再評価。
時間不変な変数を強引に入れない。 推定不可能で誤解を招く。
処置効果推定では二元固定効果と DID の同値性を確認する。
感度分析として「個体固定効果のみ」「二元固定効果」「個体 × 線形時間」を比較する。
staggered な処置の場合は Callaway-Sant'Anna 推定量に切り替える。
固定効果モデルでは新規個体への予測ができない。 階層モデルへの移行を検討する。
📝 練習問題 — SSDSE-B-2026 で固定効果分析 4 タスク
練習 1: 分散分解
「一人当たり県民所得」を Prefecture × Year のパネルで眺め、 between 分散 / within 分散 / overall 分散の比率を求めよ。 80% 以上が between なら固定効果モデルは多くの情報を捨てることになる。
練習 2: 個体固定効果 vs 二元固定効果
「失業率 → 自殺率」の回帰を 2 通り(個体固定効果のみ / TWFE)で推定し、 係数と SE を比較せよ。 全国共通の景気変動が混在する場合、 TWFE で係数が変わるはず。
練習 3: クラスタロバスト SE
同じ回帰で通常 SE とクラスタロバスト SE を比較し、 後者が大きくなることを確認せよ。 数十倍違うことも珍しくない。
練習 4: Hausman 検定
変量効果モデルと固定効果モデルを推定し、 Hausman 検定で適切なモデルを判定せよ。 都道府県データではほぼ常に固定効果に軍配が上がる。
📊 まとめ表 — 固定効果モデルの全体像
項目 固定効果モデル (FE) 変量効果モデル (RE) プールド OLS
個体効果の扱い 自由パラメータ 確率変数 無視
個体効果と説明変数の相関 許す 仮定: 無相関 無関係
時間不変変数の推定 不可 可 可
必要な漸近性 N → ∞ (or T → ∞) N → ∞ N → ∞
効率性 低(自由度を多く消費) 高(仮定が成り立てば) 最高(仮定が成り立てば)
不偏性(固定効果と相関ある場合) 不偏 偏 偏
適切な検定 F 検定 ・ Hausman Breusch-Pagan —
📜 歴史的文脈 — 固定効果モデルの発展史
パネルデータ分析と固定効果モデルは、 ミクロ計量経済学の発展と密接に関わってきました。 ここでは主要な発展を時系列で振り返り、 「なぜ二元固定効果が DID の標準になったのか」「なぜクラスタロバスト SE が必須になったのか」を歴史的視点から理解します。
第一期: 1950-1960 年代 — 個体効果の認識
計量経済学の初期、 ヘテロジニアスな個体を「個体ダミー変数」で扱うアイデアが登場。 ただし当時の計算機では大量のダミー変数を含む回帰は重く、 within 変換による計算量削減が重要視されました。
第二期: 1970 年代 — 変量効果との対比
Mundlak (1978) が「個体効果と説明変数の相関」が固定効果と変量効果の選択を決めることを示しました。 Hausman (1978) は両者を統計的に判定する検定を提示。
第三期: 1980-1990 年代 — 動学パネルと GMM
Nickell (1981) は動学パネルでの固定効果バイアスを指摘。 Arellano-Bond (1991) ・ Blundell-Bond (1998) が GMM 推定量を提案し、 動学パネル分析の標準ツールになりました。
第四期: 1990-2010 年代 — クラスタロバスト SE と DID
Bertrand-Duflo-Mullainathan (2004) は DID 分析でクラスタロバスト SE が必須であることを示しました。 これ以降、 パネル因果推論ではクラスタ SE が標準になりました。
第五期: 2010 年代以降 — staggered DID と新手法
Goodman-Bacon (2021) は staggered な処置タイミングで二元固定効果が偏ることを示し、 Callaway-Sant'Anna (2021) ・ de Chaisemartin-D'Haultfœuille (2020) などの新推定量が登場しました。
⚠️ エッジケース 8 連発 — 固定効果モデルでつまずくポイント
1. クラスタ数が少ない(< 30)
クラスタロバスト SE の漸近近似が崩れる。 wild cluster bootstrap で再評価。
2. 個体ダミーが多重共線
個体固定効果を入れると切片を落とさないと完全多重共線。 drop_first=True。
3. 時間不変な政策ダミー
「県境界の改編」など個体固有の時間不変ダミーは推定不可。 主分析から除外。
4. unbalanced パネルでの脱落
脱落が処置と相関するなら IPW で補正。
5. 動学パネル
被説明変数のラグを入れると Nickell バイアス。 GMM で対処。
6. staggered な処置タイミング
TWFE は処置効果に「負の重み」を割り当てる可能性。 Callaway-Sant'Anna に切り替え。
7. 個体数 vs 時点数のバランス
N >> T では within 推定量、 N << T では時系列分析。 同等なら両方検討。
8. 異質処置効果
処置効果が個体で異なるなら、 平均処置効果は誤解を招く。 HTE 分析へ。
📚 参考文献・読み物 — 固定効果モデルを深掘りする
Wooldridge (2010) Econometric Analysis of Cross Section and Panel Data , 2nd ed. — パネル分析の聖書。 固定効果・変量効果・GMM を網羅。
Cameron & Trivedi (2005) Microeconometrics: Methods and Applications . — クラスタロバスト SE とパネル因果推論。
Angrist & Pischke (2009) Mostly Harmless Econometrics . — DID と固定効果の直感的解説。
Bertrand, Duflo & Mullainathan (2004) How Much Should We Trust Differences-in-Differences Estimates? , QJE. — クラスタ SE の必要性を実証。
Callaway & Sant'Anna (2021) Difference-in-Differences with Multiple Time Periods , JoE. — staggered DID の新手法。
Goodman-Bacon (2021) Difference-in-Differences with Variation in Treatment Timing , JoE. — TWFE の負の重み問題。
de Chaisemartin & D'Haultfœuille (2020) Two-Way Fixed Effects Estimators with Heterogeneous Treatment Effects , AER. — 異質処置効果の問題。
✅ 固定効果モデルの最終チェックリスト 12 項目
個体固定効果と時間固定効果のどちらを入れるか明示したか。
Hausman 検定で固定効果が適切と判定されたか。
within / between / overall R^2 の 3 つを報告したか。
クラスタロバスト SE を使ったか。
クラスタ数が少ない場合 wild cluster bootstrap で再評価したか。
時間不変な変数を強引に入れていないか確認したか。
動学パネルでは Nickell バイアスを意識し GMM を検討したか。
staggered な処置の場合、 Callaway-Sant'Anna 等に切り替えたか。
感度分析として個体固定効果のみ ・ 二元固定効果 ・ 個体 × 線形時間 を比較したか。
異質処置効果の可能性を HTE 分析で検討したか。
FWL の定理を理解し、 within 変換と LSDV が同じ係数を返すことを確認したか。
新規個体への予測ができないことを認識し、 必要なら階層モデルへ移行を検討したか。
📝 まとめノート — 固定効果モデル
このページは「固定効果モデル」を SSDSE-B-2026 (47 都道府県 × 多変量) を題材に体系的に学ぶための一気通貫の教材です。 単なる用語定義集ではなく、 「直感 → 数式 → 実装 → 落とし穴 → 関連手法」 という流れで一周することで、 業務での意思決定にそのまま使える知識に組み上げます。
本ページで取り上げた手法・記号・コード例は、 すべて実データの 47 都道府県 を入力として動作する形にしてあります。 合成データに依存しないため、 SSDSE-B-2026 を data/raw/SSDSE-B-2026.csv として配置するだけでコード片を再現できます。
関連グループ教材へのリンクを使い、 「この用語が属する大きな分野」を俯瞰してから戻ってくると、 知識が一段抽象化された形で定着します。 用語ページは点、 グループ教材は線、 概念マップは面 — 三層を往復しながら学習を進めてください。
本ページの内容に不足を感じたら、 相関ページ(correlation.html )を参照基準として、 ご自身の解釈を加筆していくことを推奨します。 教材の完成形ではなく、 学習者自身の理解の出発点として位置付けてください。
最後に、 SSDSE-B-2026 の 47 都道府県データは「N=47 と少ない」という構造的制約があります。 統計検定の漸近近似が崩れる場面、 単一の県(東京都・沖縄県)が全体傾向を支配する場面、 標準誤差が過小評価される場面 — これらは本ページの随所で繰り返し注意喚起しました。 「実データの小ささを軽視しない」 という姿勢が、 実務でのデータサイエンティストの基本姿勢です。