論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
審査員奨励賞(大学生・一般の部) 2022年度

幸福度の年代別決定要因の比較

⏱️ 推定読了時間: 約20分
2022年度(令和4年度)統計データ分析コンペティション 三原龍・内野宏紀・小島慈子・八木真大朗(青山学院大学経済学部経済学科) 内閣府「満足度・生活の質に関する調査」・SSDSE-社会生活・SSDSE-基本素材 ほか(本ページ実再現はSSDSE-B) Adaptive Lasso(罰則付回帰)・クロスバリデーション・1000回試行の非ゼロ回数
🔬 Adaptive Lasso🔬 LASSO🔬 クロスバリデーション🔬 変数選択🏷 財政・行政🏷 メンタルヘルス🏷 医療・健康
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

この教材は原論文と同じデータを読み込み、同じ手順で計算し直しています。画面に出る数値と図は、あなたのブラウザがその場で計算した結果です。

原論文が使ったデータ満足度・生活の質に関する調査・SSDSE-社会生活・SSDSE-基本素材・e-Stat
分析単位:都道府県
中核手法:回帰分析・Lasso・Adaptive Lasso・クロスバリデーション
この教材が使うデータ
原論文(PDF)幸福度の年代別決定要因の比較
審査員奨励賞/三原 龍、内野 宏紀、小島 慈子、八木 真大朗(青山学院大学経済学部)
✅ この教材でできること
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
突合監査の結果、主要データと中核手法はいずれも原論文と一致しています。

▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2022_U5_13_shorei.py(291 行)そのものです。

📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. 使用データと再現可能性の整理
  3. 分析の流れ:多すぎる変数 → Adaptive Lasso → 非ゼロ回数
  4. 図1:24歳以下の決定要因 非ゼロ回数(報告値)
  5. 図2:スポーツ項目の年代別 非ゼロ回数(報告値)
  6. 図3:60歳以降の決定要因 非ゼロ回数(報告値)
  7. 図4:表1の説明変数トップ3の都道府県別実再現
  8. 結果の解釈(5つの読み解き)
  9. まとめと今後の課題
  10. データ・コードのDL
  11. ⚠️ よくある誤解
  12. 📖 用語集
  13. 📐 手法ガイド
  14. 🚀 発展の可能性
  15. 🎯 自分でやってみよう
  16. 🤔 Q&A
  17. 🐍 ブラウザで動かす

🎯 この記事を読むと何ができるようになるか

📥 データの準備(再現コードを動かす前に)

このページで実再現できるのは図4(表1の説明変数トップ3の都道府県別ランキング)だけです。コードの編集は不要です。(原論文の中心である「幸福度」は内閣府「満足度・生活の質に関する調査」の個票データ〔東京大学 SSJ データアーカイブ提供〕であり SSDSE に列が無いため、Adaptive Lasso の非ゼロ回数〔図1〜図3〕は原論文の報告値を転記して可視化します。)

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県別・基礎データ、社会・人口統計体系)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2022_U5_13_shorei.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2022_U5_13_shorei.py
図は html/figures/ に自動保存されます。幸福度が SSDSE に無いため非ゼロ回数はスクリプト内に原論文の報告値を転記して可視化し、表1の説明変数トップ3のみ SSDSE-B から実再現します。
研究のテーマと目的

「幸福とは一体何か」。一般には所得が幸福度に大きく関わると思われがちだが、Easterlin(1974) が示した「幸福のパラドックス」——所得が一定水準を超えると所得の伸びと幸福度の伸びが明確な相関を持たなくなる——のように、所得と幸福度に明確な相関がないことが知られている。では、真に幸福度と結びつくものは何か。著者らは、若年層の自殺率の高さ(令和三年自殺対策白書で15〜34歳の死因第一位が自殺)といった問題意識から、幸福度の決定要因を年代別に特定することを目指した。

本研究の被説明変数は、内閣府「満足度・生活の質に関する調査」の生活満足度を都道府県ごとに平均した「幸福度」である。年代は調査に従い〜24歳/25〜34歳/35〜44歳/45〜59歳/60歳〜の5区分。SSDSE と e-Stat から集めた大量の説明変数を投入し、Adaptive Lasso幸福度に効く変数だけを自動選択する。所得だけでは説明できない幸福の中身を、年代ごとに描き出そうとしたのが本研究である。

5区分
年代(〜24/25-34/35-44/45-59/60〜)
183項目
e-Statから追加した説明変数(+SSDSE)
1000回
Adaptive Lasso の試行回数
100回以上
決定要因とみなす非ゼロ回数のしきい値
研究の問い 都道府県別の幸福度は何によって決まるのか。所得が効かないとすれば、年代ごとにどんな要因が幸福度を左右し、それは加齢とともにどう変化するのか。
分析のキモ:多すぎる変数を Adaptive Lasso で絞る 幸福度に効きそうな変数は数百個。ふつうの回帰では過学習して意味をなさない。そこで不要な変数の係数をゼロに潰すAdaptive Lassoを、クロスバリデーション1000回試行の非ゼロ回数で頑健に使う。年代ごとに「安定して選ばれる変数」を数えるのが見どころ。

大学生・一般の部 内閣府 満足度調査+SSDSE+e-Stat Adaptive Lasso クロスバリデーション 1000回試行・非ゼロ回数

使用データと再現可能性の整理

被説明変数の幸福度は、内閣府が2019・2020年度に行った「満足度・生活の質に関する調査」の生活満足度を、都道府県ごとに平均した値である(個票は東京大学社会科学研究所 SSJ データアーカイブから提供)。説明変数はSSDSE-社会生活・SSDSE-基本素材に加え、e-Stat の「行政」「労働・経済」「教育・勉学」「医療・福祉」「家族・生活」5分野から183項目を追加している。

主なデータと出典(原論文 3章)

役割変数出典本ページでの扱い
被説明変数幸福度(生活満足度の都道府県平均・年代別)内閣府「満足度・生活の質に関する調査」2019-2020(SSJデータアーカイブ)報告値の可視化
説明変数生活時間・スポーツ・趣味娯楽の行動者率 ほかSSDSE-社会生活(社会生活基本調査)報告値の可視化
説明変数被服費割合・短期大学数・着工新設貸家比率 ほかSSDSE-基本素材(SSDSE-B)一部を実再現(図4)
説明変数行政・労働・教育・医療・家族の183項目e-Stat報告値の可視化
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):被説明変数の幸福度は内閣府調査の個票SSDSE に列が無い。したがって Adaptive Lasso の非ゼロ回数(=各年代の決定要因)は再計算できない。図1(表1)・図2(スポーツ項目・表1〜5)・図3(表5)は原論文の各表の非ゼロ回数を桁そのまま転記して可視化する。
  • 実再現できる部分:原論文が説明変数に使った項目のうち、SSDSE-B に収録されている3つ——被服及び履物費割合(L322105/L3221)・短期大学数(E6101/A1101)・着工新設貸家比率(H2603/H2600)——は実データで計算できる。これらは表1(24歳以下)で非ゼロ回数の上位となった変数であり、その都道府県別分布を SSDSE-B-2026 で実再現する(図4)。ただし2023年の値であり、幸福度が SSDSE に無いため決定要因の抽出そのもの(非ゼロ回数)は再現できない点を図注に明記する。
  • 新しい数値の捏造はしない:報告値と再計算値はラベルで分離する。GDP・県内総生産・高齢化率などは本研究の分析に用いず、SSDSE-B に無い列は使わない。

分析の流れ:多すぎる変数 → Adaptive Lasso → 非ゼロ回数

分析の流れ
変数を集める
SSDSE+e-Stat
183項目ほか
Lasso→Adaptive Lasso
偽陽性を抑える
重み付き罰則
λをCVで決定
試行ごとに
λは揺れる
1000回試行
非ゼロ回数を
数える
決定要因を決定
非ゼロ回数
100回以上を採用

① Lasso で変数を自動選択する

Lasso は残差二乗和に係数の絶対値の和(ℓ1罰則)を足して最小化する。効く変数は非ゼロ、効かない変数は係数がちょうど0になり自動的に落ちる。正則化パラメーターλが大きいほど多くの係数が0になる。

Σ(yᵢ − β₀ − β₁x₁ − … − βₖxₖ)² + λ Σ|βⱼ|

② 偽陽性を抑える Adaptive Lasso

通常の Lasso は本来0であるべき変数を非ゼロにしてしまう偽陽性の傾向がある。そこで罰則項に変数ごとの重み wⱼ をかけた Adaptive Lasso を使う。重みは Lasso 推定量の逆数(wⱼ=1/|βⱼ^Lasso|)で、すでに効いていそうな変数は罰則を軽く、そうでない変数は重くする。

Σ(yᵢ − β₀ − Σβⱼxⱼ)² + λ Σ wⱼ|βⱼ| (wⱼ = 1 / |βⱼ^Lasso|)

③ λ をクロスバリデーションで決める

λ は自動では決まらないので、クロスバリデーションで選ぶ。ただし選ばれる λ は分析のたびにランダムに揺れる。

④ 1000回試行して非ゼロ回数を数える

λ の揺れによる偏りを防ぐため1000回試行し、各説明変数が非ゼロと出た回数を数える。非ゼロ回数が100回以上の変数を、その年代の幸福度の決定要因とする(R の glmnet パッケージを使用)。

係数の大きさではなく「選ばれやすさ」を見る 本研究の目的は年代間の決定要因の比較なので、係数の大小ではなく非ゼロ回数(1000回中何回選ばれたか)で「その年代で安定して効く変数か」を判断する。これが年代比較を頑健にする工夫である。
1
図1:24歳以下の決定要因 非ゼロ回数(報告値)

まず最も若い年代から。幸福度が SSDSE に無いため、原論文 表1 の非ゼロ回数を転記して可視化する(再計算ではない)。あわせてスクリプトは表1〜表5すべての報告値を書き出している。

やってみよう原論文 表1〜表5 の非ゼロ回数を転記する(図1では表1を可視化)
  • ① このブロックの目的:各年代の決定要因(非ゼロ回数)を桁そのままに書き出す。幸福度が SSDSE に無いため再計算ではなく報告値の転記。非ゼロ回数は「1000回試行のうち Adaptive Lasso で係数が非ゼロと出た回数」で、100回以上が決定要因。
  • ② 前後のつながり:年代比較の出発点。ここで24歳以下の非ゼロ回数が最大でも250回と低いことを押さえると、後の高齢層(1000回級)との対比(=収束)が際立つ。
▼ 実行結果(原論文の報告値)
=== [1] 表1〜表5 幸福度の決定要因 非ゼロ回数(原論文の報告値・再計算ではない)===
【〜24歳】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  被服及び履物費割合(二人以上の世帯)                         250
  短期大学数(人口10万人あたり)                           250
  着工新設貸家比率                                   211
  介護関係の学習者率                                  195
  剣道                                         195

【25〜34歳】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  ボウリング                                      989
  身の回りの用事                                    982
  学業                                         963
  森林面積割合                                     919
  障害者を対象とした活動                                429
  一般病院の1日平均外来患者数(人口10万人あたり)                  429
  火災出火件数(人口10万人あたり)                          351
  不登校による中学校長期欠席生徒比率                          218

【35〜44歳】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  認定こども園数(0.5歳人口10万人当たり)                     998
  婚姻率(人口千人当たり)                               984
  ゴルフ(練習場を含む)                                975
  年平均気温                                      850
  体育館数(人口100万人あたり)                           810
  消費者物価指数対前年変化率                              100

【45〜59歳】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  国際協力に関係した活動                                998
  自然増加率                                      998
  健康や医療に関係した活動                               993
  核家族世帯割合                                    948
  消費者物価指数対前年変化率                              941
  スポーツ                                       698
  大学数(人口10万人あたり)                             589
  バスケットボール                                   465
  卓球                                         252
  道路交通法違反検挙件数(人口1000人あたり)                    105

【60歳以降】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  ごみ1人1日当たりの排出量                             1000
  ゲートボール                                    1000
  各種学校数                                     1000
  通院者率                                       999
  商工費割合(都道府県財政)                              983
  常設映画館数                                     848
  平均余命(0歳・女)                                 802
  社会福祉費割合(都道府県財政)                            796
  快晴日数                                       794
  年少人口指数                                     323

各年代の最大非ゼロ回数(若年ほど小さく、高齢ほど1000に収束):
  〜24歳     最大   250 回
  25〜34歳   最大   989 回
  35〜44歳   最大   998 回
  45〜59歳   最大   998 回
  60歳以降    最大  1000 回
  • ④ 実行結果の読み取り:① 24歳以下の上位は被服及び履物費割合(250)・短期大学数(250)・着工新設貸家比率(211)など、一人暮らしを始める頃の生活・衣服・住まいに紐づく項目。② 非ゼロ回数は最大250回と低く、要因が個人ごとにばらけて一定の項目に収束していない。③ この年代では剣道(195)が唯一のスポーツ項目。すべて原論文の報告値である。
24歳以下の幸福度決定要因 非ゼロ回数(報告値の可視化)
図1:24歳以下の幸福度決定要因(非ゼロ回数)。報告値の可視化(再計算ではない)(原論文 表1)。赤い破線は決定要因の採用しきい値100回。非ゼロ回数は最大250回と低く、要因が分散している。数値はすべて原論文の報告値。
📊 この図の読み方
棒の長さ
1000回の試行のうち、その変数が非ゼロ(幸福度に効くと判定)と出た回数。長いほど「安定して効く」。
破線(100回)
これを超えた変数を決定要因として採用する。24歳以下は5項目が該当。
低い回数の意味
最大でも250回で、後述の高齢層(1000回級)と比べ小さい。若年層は要因が個人ごとにばらける(=収束していない)ことを示す。
2
図2:スポーツ項目の年代別 非ゼロ回数(報告値)

本研究の最も目を引く発見。どの年代の表にもスポーツ関連の項目が決定要因として現れる。各年代を代表するスポーツ項目の非ゼロ回数を、原論文 表1〜表5 から転記して並べる。

やってみよう原論文 表1〜表5 からスポーツ項目の非ゼロ回数を抜き出して並べる
  • ① このブロックの目的:各年代で決定要因となったスポーツ項目(剣道・ボウリング・ゴルフ・スポーツ/バスケットボール/卓球・ゲートボール)の非ゼロ回数を転記する。再計算ではなく報告値の転記。
  • ② 前後のつながり:図1で見た「年代ごとに要因が違う」中で、唯一すべての年代を貫く共通項がスポーツであることを示す山場。所得・労働が一切現れないことと対をなす発見。
▼ 実行結果(原論文の報告値)
=== [2] 全年代に現れるスポーツ項目の非ゼロ回数(原論文の報告値・解釈①)===
  年代        スポーツ項目             非ゼロ回数
  〜24歳      剣道                   195
  25〜34歳    ボウリング                989
  35〜44歳    ゴルフ                  975
  45〜59歳    スポーツ                 698
  45〜59歳    バスケットボール             465
  45〜59歳    卓球                   252
  60歳以降     ゲートボール              1000

→ どの年代にもスポーツ関連の項目が決定要因として現れる(所得・労働は現れない)。
  • ④ 実行結果の読み取り:剣道(195・〜24歳)→ボウリング(989・25-34歳)→ゴルフ(975・35-44歳)→スポーツ/バスケ/卓球(45-59歳)→ゲートボール(1000・60歳〜)と、年代ごとに種目は違えど必ずスポーツが決定要因に。② 一方で「所得」「労働」の項目はどの年代にも現れない。③ 運動の爽快感や身体的疲労が幸福度に効くと著者は解釈する。数値はすべて原論文の報告値。
スポーツ項目の年代別 非ゼロ回数(報告値の可視化)
図2:各年代に現れるスポーツ項目の非ゼロ回数。報告値の可視化(再計算ではない)(原論文 表1〜表5・解釈①)。色は年代。どの年代にもスポーツが決定要因として現れる一方、所得・労働は現れない。数値はすべて原論文の報告値。
📊 この図の読み方
横軸(種目と年代)
各年代を代表するスポーツ項目。24歳以下の剣道は部活、35-44歳のゴルフは接待、60歳以降のゲートボールは高齢者向け、と著者は解釈する。
棒の高さ
非ゼロ回数。25-34歳のボウリングや60歳以降のゲートボールは1000回近く、その年代で極めて安定して効いている。
所得・労働の不在
この図に現れる要因はスポーツ・娯楽で、所得や労働は含まれない。「所得は幸福度に効かない」という主張(解釈②)の根拠。
3
図3:60歳以降の決定要因 非ゼロ回数(報告値)

最も高齢の年代。図1(24歳以下)と対比させると、非ゼロ回数が1000回級に収束しているのが分かる。原論文 表5 の非ゼロ回数を転記して可視化する。

やってみよう原論文 表5(60歳以降)の非ゼロ回数を転記する
  • ① このブロックの目的:60歳以降の決定要因(ごみ排出量・ゲートボール・各種学校数・通院者率 ほか)の非ゼロ回数を桁そのままに書き出す。再計算ではなく報告値の転記。
  • ② 前後のつながり:図1(若年・最大250回)との対比が主題。ここで上位が1000回級に達していることが、後の解釈⑤「年齢とともに一定の要因に収束する」を裏づける。
▼ 実行結果(原論文の報告値)
=== [3] 表5 60歳以降の幸福度決定要因 非ゼロ回数(原論文の報告値)===
【60歳以降】幸福度の決定要因(非ゼロ回数・原論文の報告値)
  変数                                       非ゼロ回数
  ごみ1人1日当たりの排出量                             1000
  ゲートボール                                    1000
  各種学校数                                     1000
  通院者率                                       999
  商工費割合(都道府県財政)                              983
  常設映画館数                                     848
  平均余命(0歳・女)                                 802
  社会福祉費割合(都道府県財政)                            796
  快晴日数                                       794
  年少人口指数                                     323

→ 24歳以下(最大250回)に比べ、60歳以降は上位が 1000 回級に収束している(解釈⑤)。
  • ④ 実行結果の読み取り:① 上位はごみ1人1日当たりの排出量(1000)・ゲートボール(1000)・各種学校数(1000)・通院者率(999)と、ほぼ全試行で選ばれる。② 24歳以下(最大250回)と違い非ゼロ回数が1000回級に収束。③ 自身の健康(通院者率・平均余命)と将来世代への投資(各種学校数・年少人口指数)に関する項目が並ぶ。数値はすべて原論文の報告値。
60歳以降の幸福度決定要因 非ゼロ回数(報告値の可視化)
図3:60歳以降の幸福度決定要因(非ゼロ回数)。報告値の可視化(再計算ではない)(原論文 表5)。上位は1000回級で、24歳以下(図1・最大250回)と対照的に要因が収束している。数値はすべて原論文の報告値。
📊 この図の読み方
1000回級の上位
ごみ排出量・ゲートボール・各種学校数が1000回。60歳以降ではほぼ全試行で選ばれる、極めて安定した決定要因。
図1との対比
24歳以下は最大250回。高齢になるほど非ゼロ回数が上がる=要因が「一定の項目に収束」していく(解釈⑤)。
要因の中身
通院者率・平均余命(自身の健康)と各種学校数・年少人口指数(将来世代)。幸福の対象が個人から社会へ移る様子が読める。
4
図4:表1の説明変数トップ3の都道府県別実再現

ここは唯一の実再現である。表1(24歳以下)で非ゼロ回数の上位となった3つの説明変数を、SSDSE-B の実データで都道府県別に再計算する。幸福度が SSDSE に無いため非ゼロ回数(決定要因の抽出)は再現できないが、説明変数そのものは実データで確かめられる。

やってみよう表1の説明変数トップ3を SSDSE-B から都道府県別に実再現する【実再現・図4】
  • ① このコードの目的:SSDSE-B-2026 を cp932・ラベル行 skiprows=[1] で読み込み、2023年(df[df["SSDSE-B-2026"]==2023])について、表1で非ゼロ回数の上位となった3つの説明変数——被服及び履物費割合(L322105/L3221)短期大学数(E6101/A1101)着工新設貸家比率(H2603/H2600)——を計算し、都道府県別に並べる。原論文が説明変数に使った項目を、実データで再現する。
  • ② 前後のつながり:図1で見た「24歳以下の決定要因」のうち、SSDSE-B に収録された説明変数だけを実データで確かめる部分。幸福度は SSDSE に無いので非ゼロ回数そのものは再現できないが、説明変数の実態(都道府県分布)は SSDSE-B から確かめられる。
📝 コード
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
df = pd.read_csv(DATA_B, encoding='cp932', skiprows=[1])        # 先頭列 SSDSE-B-2026 が年度
d23 = df[df['SSDSE-B-2026'] == 2023].copy()                     # 2023年を抽出
d23 = d23[d23['Code'].astype(str).str.match(r'^R\d{5}$')]       # 都道府県のみ(コードは R+5桁)
# 表1で非ゼロ回数の上位となった3つの説明変数を SSDSE-B から算出
d23['被服及び履物費割合'] = d23['L322105'] / d23['L3221'] * 100          # 被服費 / 消費支出(%)
d23['短期大学数(人口10万人あたり)'] = d23['E6101'] / d23['A1101'] * 100000  # 短大数 / 総人口
d23['着工新設貸家比率'] = d23['H2603'] / d23['H2600'] * 100              # 貸家床面積 / 新設住宅床面積(%)

REPRO_VARS = ['被服及び履物費割合', '短期大学数(人口10万人あたり)', '着工新設貸家比率']
for col in REPRO_VARS:
    s = d23[col]
    print(f'\n{col}] 全国{len(s)}都道府県  平均={s.mean():.3f}  '
          f'最小={s.min():.3f}  最大={s.max():.3f}')
    top = d23[['Prefecture', col]].sort_values(col, ascending=False).head(3)
    print('  上位3:', '  '.join(f'{r["Prefecture"]}={r[col]:.3f}' for _, r in top.iterrows()))
▼ 実行結果
=== [4] 表1の説明変数トップ3を SSDSE-B から実再現(2023年・都道府県別)===

[被服及び履物費割合] 全国47都道府県  平均=3.163  最小=2.458  最大=4.165
  上位3: 群馬県=4.165  岡山県=4.040  埼玉県=4.006

[短期大学数(人口10万人あたり)] 全国47都道府県  平均=0.270  最小=0.106  最大=0.570
  上位3: 岐阜県=0.570  大分県=0.456  秋田県=0.438

[着工新設貸家比率] 全国47都道府県  平均=21.932  最小=12.638  最大=39.226
  上位3: 東京都=39.226  北海道=37.616  大阪府=35.571
  • ④ 実行結果の読み取り:被服及び履物費割合は群馬4.17%〜(平均3.16%)、短期大学数(人口10万人あたり)は岐阜0.57〜(平均0.27)、着工新設貸家比率は東京39.2%〜(平均21.9%)と、いずれも都道府県差が大きい。これらの地域差のある変数を Adaptive Lasso が拾い上げたのが原論文だが、幸福度が SSDSE に無いため非ゼロ回数の再現はできない。またこれは2023年の値で、原論文の説明変数(調査年は変数ごとに異なる)とは時点が違う点に注意。
表1の説明変数トップ3の都道府県別ランキング(2023年・SSDSE-B・実再現)
図4:表1(24歳以下)の説明変数トップ3の都道府県別分布(2023年)。説明変数のみ実再現。SSDSE-B の 被服費割合(L322105/L3221)・短期大学数(E6101/A1101)・着工新設貸家比率(H2603/H2600)から算出。幸福度は SSDSE に無く、Adaptive Lasso の非ゼロ回数(決定要因の抽出)は再現できない。また2023年で原論文の説明変数とは時点が異なる。
📊 この図の読み方
3つの横棒
左=被服及び履物費割合、中=短期大学数(人口10万人あたり)、右=着工新設貸家比率。いずれも表1で決定要因とされた説明変数。
大きな県差
着工新設貸家比率は東京39%〜と2〜3倍の開き。こうした地域差が、幸福度との関連を Adaptive Lasso が拾う土台になる。
位置づけ
説明変数のみ実再現。SSDSE-Bの実データから計算。ただし2023年で、幸福度が SSDSE に無いため非ゼロ回数(決定要因の抽出)は再現できない。

結果の解釈(5つの読み解き)

著者は年代別の結果を5つの観点から解釈している。以下はいずれも原論文の主張である。

① スポーツはどの年代でも行った方がよい

どの年代にもスポーツ関連の項目が決定要因として現れる(剣道→ボウリング→ゴルフ→バスケ・卓球・スポーツ→ゲートボール)。運動による爽快感や身体的疲労が幸福度に効くと解釈し、年代ごとの種目の特色(部活・接待・高齢者向け)も指摘している。

② 所得の高低は幸福度に影響しない

決定要因は「スポーツ」「勉強」「教育」「健康」「ボランティア」「結婚」などで、「所得」「労働」の項目は現れない(お金関連は60歳以降の社会福祉費割合・商工費割合のみ)。冒頭の「幸福のパラドックス」に整合的だと結論づける。

③「勉強」「教育」はどの年代でも幸福度に影響する

若年層は自分が学ぶ「勉強」(介護関係の学習者・学業)、子育て世代は「教育」(体育館数・認定こども園数・大学数)、60歳以降は娯楽としての「勉強」(各種学校数)と、形を変えて学びが効き続けると読み解く。

④ 35〜44歳・45〜59歳では家計への意識が高まる

この2つの年代で消費者物価指数対前年変化率が非ゼロとなる(35-44歳:100回、45-59歳:941回)。子どもの教育費や老後資金を意識するため、家計管理への意識が高まると解釈する。

⑤ 年齢の上昇に伴い一定の幸福度要因にまとまっていく

若年層は「被服費割合」「着工新設貸家比率」など個人に紐づく項目が多く一定の項目に収束しにくい(非ゼロ回数が低い)。年齢とともに幸福の対象が子ども・家族に移り、「認定こども園数」「核家族世帯割合」「年少人口指数」など教育・家族に関する一定の項目に収束する(非ゼロ回数が1000回級へ)。

より正確な分析のために(補足) これらの解釈は都道府県集計データに対する Adaptive Lasso の変数選択の頻度に基づくもので、因果関係を示すものではない(例えば「剣道をすれば幸福になる」ではなく、剣道行動者率が高い地域と幸福度が関連しやすいという話)。また非ゼロ回数は係数の大きさや符号を考慮しないため、変数が幸福度を上げるのか下げるのかまではこの指標だけでは分からない。原論文自身も、係数の大きさは比較目的のため考慮しないと注記している。地域相関を個人の行動指針に読み替える際には生態学的誤謬に注意が必要である。

まとめと今後の課題

本研究は、都道府県別の幸福度は何で決まるかを年代別に、Adaptive Lasso(1000回試行の非ゼロ回数)で探った。結果、全年代でスポーツが決定要因となり、所得・労働は現れない(幸福のパラドックスに整合)。年齢とともに要因は個人の趣味嗜好から子ども・家族など将来世代へ移り、非ゼロ回数が1000回級に収束していく。著者は「若者への投資がどの世代の幸福度上昇にもつながる」と結んだ。本ページでは、表1の説明変数トップ3を SSDSE-B で実再現し(図4)、幸福度にまつわる非ゼロ回数は報告値として切り分けた。所得では測れない幸福の中身を、年代比較で描き出した探究が見どころである。

この研究の限界 ①中心の非ゼロ回数は幸福度(内閣府調査の個票)が対象で、本ページのSSDSE では実再現できず報告値の可視化にとどまる(説明変数3つのみ実再現)。②都道府県の集計データであり、個人に紐づいた幸福度の決定要因までは分析できない(著者も課題として明記)。③非ゼロ回数は選ばれやすさの指標で、係数の符号・大きさ=効果の向きや強さは分からない。④相関的な変数選択であり因果ではない。
この研究から学べること 説明変数が数百個ある「高次元」の問題に、Adaptive Lasso で変数を自動選択し、1000回試行の非ゼロ回数で頑健に絞るという発想。そして同じ手法を年代別にかけ、要因が個人から将来世代へ収束していく物語を読み解く力。さらに、実再現できる説明変数と報告値を切り分ける誠実さ。審査会も学部生による高次元データ分析への挑戦を評価し、審査員奨励賞に選んだ。

データ・コードのダウンロード

このページの実再現の図(図4)は、以下から再現できます。

🐍 再現コード(.py) 📊 SSDSE-B-2026.csv

※ 図4(表1の説明変数トップ3のランキング)はSSDSE-Bの L322105/L3221・E6101/A1101・H2603/H2600 から算出した実再現です(2023年)。図1〜図3(各年代の非ゼロ回数)は、被説明変数の幸福度が内閣府「満足度・生活の質に関する調査」の個票でSSDSEに無いため、原論文の各表の非ゼロ回数を桁そのまま可視化したものです(新たな数値の捏造はしていません)。

⚠️ よくある誤解と注意点

この研究を読むとき・まねするときに陥りやすい誤解を整理する。

誤解1:「非ゼロ回数が多い変数ほど幸福度を強く上げる」
非ゼロ回数は「1000回のうち何回選ばれたか(=安定して効くか)」であり、係数の大きさや符号ではない。原論文も「係数の大きさは比較目的のため考慮しない」と注記している。だから「回数が多い=効果が大きい/プラス」とは読めない。
誤解2:「剣道やゲートボールをすれば幸福になる、という因果が示された」
これは都道府県集計データの変数選択であり、因果ではない。スポーツ行動者率の高い地域と幸福度が関連しやすい、という相関的な話。個人の行動指針にそのまま読み替えると生態学的誤謬に陥る。
誤解3:「所得の項目が出なかったから、所得は幸福と無関係だと証明された」
Lasso は相関の強い変数群から代表を選ぶ性質があり、他の変数に吸収されて所得が落ちた可能性もある。「幸福のパラドックス」と整合的ではあるが、これだけで所得の無関係を証明したわけではない。
誤解4:「このページの図はすべて原論文と同じ数値を計算し直したもの」
図4(説明変数トップ3のランキング)だけがSSDSE-Bからの実再現(しかも2023年)。図1〜図3は幸福度が内閣府調査の個票でSSDSEに無いため報告値の可視化(再計算ではない)。図注に区別を明記している。

📖 用語集(この記事に出てくる統計用語)

クリックすると各用語の詳しい解説ページに移動できます。

Lasso/Adaptive Lasso
残差二乗和に係数の絶対値の和(ℓ1罰則)を足して最小化する回帰。効かない変数の係数をちょうど0にして自動選択する。Adaptive Lasso は変数ごとに重みを付けて偽陽性を抑えた改良版。
正則化(罰則付回帰)
係数に罰則を課して大きくなりすぎないよう抑える手法。罰則の強さ λ が大きいほど多くの係数が0に近づく(Lassoでは0になる)。
クロスバリデーション
データを分割し、一部で学習・残りで検証を繰り返して λ などのパラメーターを選ぶ方法。本研究では λ の決定に使い、試行ごとに値が揺れる。
過学習(過剰適合)
説明変数が多すぎると、手元のデータに合わせすぎて一般化しなくなる問題。Lassoの変数選択はこれを防ぐ狙いがある。
多重共線性
説明変数どうしが強く相関し係数が不安定になる問題。Lassoは相関の強い変数群から代表を選ぶ傾向がある。
相関(相関係数)
2つの量が一緒に動く強さ。本研究は幸福度と各変数の関連を変数選択の頻度で捉える。相関があっても因果は言えない。
因果関係
一方が原因で他方が結果という関係。本研究は相関的な変数選択であり、因果を示すものではない。
生態学的誤謬
集団(都道府県)で見られた関係を、そのまま個人に当てはめてしまう誤り。本研究の結果を個人の行動指針に読み替える際の注意点。
SSDSE
統計センターが提供する教育用標準データセット。本研究は SSDSE-社会生活・SSDSE-基本素材を説明変数に使った(幸福度は内閣府調査で SSDSE 外)。

📐 使っている手法をわかりやすく解説

この研究の中心である Adaptive Lasso を、変数選択の考え方から非ゼロ回数の使い方まで順に説明する。

全体像
数百個の説明変数から幸福度に効くものを選ぶために、Lasso(ℓ1罰則で係数を0に潰す)→ 偽陽性を抑えるAdaptive Lasso(重み付き罰則)→ λをクロスバリデーションで決め → λの揺れに備えて1000回試行し非ゼロ回数を数える係数の大小ではなく「選ばれやすさ」で年代を比較するのが見どころ。
🎯 Lasso(ℓ1正則化)
何をする
残差二乗和に係数の絶対値の和 λΣ|βⱼ|を足して最小化する。効く変数だけ非ゼロ、他はちょうど0になり自動で落ちる。
なぜ効く
説明変数が観測数より多い「高次元」でも、変数を絞って推定できる。ふつうの最小二乗法では解けない問題に対応する。
λの役割
大きいほど多くの係数が0になる(変数が減る)。小さいほど罰則なしの回帰に近づく。
🔧 Adaptive Lasso(偽陽性の抑制)
何をする
罰則項に変数ごとの重み wⱼ=1/|βⱼ^Lasso| をかける。すでに効いていそうな変数は罰則を軽く、そうでない変数は重くする。
なぜ使う
通常の Lasso は本来0であるべき変数を非ゼロにしてしまう偽陽性の傾向がある。重み付けでこれを抑え、選ばれる変数の信頼性を高める。
注意
初期の Lasso 推定に依存するため、初期推定が不安定だと重みも不安定になる。
🎲 クロスバリデーションと1000回試行
何をする
λ をクロスバリデーションで選ぶが、選ばれる λ は試行ごとに揺れる。そこで1000回試行し、各変数が非ゼロと出た回数を数える。
非ゼロ回数とは
1000回のうち係数が非ゼロになった回数。100回以上を決定要因として採用する。「安定して選ばれるか」の物差し。
読み方の注意
非ゼロ回数は選ばれやすさであって係数の大小・符号ではない。効果の向きや強さはこの指標だけでは分からない。
🧭 集計データの解釈(生態学的誤謬
何が問題か
都道府県という集団で見た関係を、そのまま個人に当てはめると誤る。「剣道行動者率の高い県は幸福度が高い」は「剣道をすれば幸福になる」ではない。
どう扱う
結果は地域相関として読み、個人の因果に飛躍しない。政策の議論では集計レベルの示唆にとどめる。
本研究の位置づけ
著者も個人に紐づいた分析は今後の課題としており、集計データの限界を認識している。

🚀 発展の可能性(結果 X → 新仮説 Y → 課題 Z)

この研究の「年代で決定要因が変わる」という結論は、次の研究の出発点になる。

発展1:個人・より細かい枠で再検証する(著者の今後の展望)
結果X
年代という大枠では、要因が個人の趣味から将来世代へ移り一定の項目に収束する(報告値)。
新仮説Y
晩婚化・単身世帯の増加を踏まえ、世帯構成や個人属性で分けると、別の決定要因が見えるのではないか。
課題Z
個票や、年代より細かい層別で幸福度の決定要因を分析し、各個人が参考にできる知見にする。
発展2:変数選択から因果推論へ
結果X
Adaptive Lasso はどの変数が幸福度と関連するかを示すが、因果や効果の向きは分からない。
新仮説Y
スポーツ習慣が本当に幸福度を上げるなら、パネルデータや自然実験で因果として確かめられるのではないか。
課題Z
パネルデータ差の差分析と組み合わせ、相関から一歩進んで因果に迫る。

🎯 自分でやってみよう(5つのチャレンジ)

再現コードを少し変えるだけで試せる課題を、易しい順に用意した。

★☆☆☆☆ 難易度1
別の年で説明変数のランキングを出す
図4のコードは df[df['SSDSE-B-2026']==2023] で2023年を選んでいる。ここを2015年や2019年に変えて、被服費割合・短期大学数・着工新設貸家比率の順位がどう変わるかを見てみよう。
★★☆☆☆ 難易度2
婚姻率を SSDSE-B から追加で実再現する
表3で決定要因だった「婚姻率(人口千人当たり)」は SSDSE-B の A9101 婚姻件数A1101 総人口 から計算できる。図4に4つ目の横棒として追加してみよう。
★★★☆☆ 難易度3
非ゼロ回数の最大値を年代で折れ線にする
スクリプトの TABLES(報告値)から各年代の最大非ゼロ回数(250→989→998→998→1000)を取り出し、折れ線にして「収束」を1枚で可視化してみよう。
★★★★☆ 難易度4
全5表の決定要因を1つの表にまとめる
スクリプトの TABLES から、年代×変数×非ゼロ回数を pandas.DataFrame にまとめ、年代をまたいで現れる項目(スポーツなど)を抽出してみよう。
★★★★★ 難易度5
なぜ非ゼロ回数は再現できないのか説明する
原論文の中心(各年代の非ゼロ回数)が、なぜSSDSE-Bで実再現できないのかを、被説明変数「幸福度」が内閣府調査の個票でSSDSEに列が無いことAdaptive Lassoに幸福度が必須なことの2点から自分の言葉で説明してみよう。

💼 この手法は実社会でこう使われている

「大量の候補から効く変数を自動選択する」Lasso の発想は、予測やスクリーニングの現場で広く使われている。

🧬
ゲノム・医療のバイオマーカー探索
数万個の遺伝子から病気に関わる少数を選ぶとき、Lassoで係数を0に潰して候補を絞る。本研究の変数選択と同じ発想。
💳
信用スコア・与信モデル
多数の顧客属性から返済に効く変数だけを残し、解釈しやすく過学習しにくいモデルを作る。Lassoの定番用途。
📈
マーケティングの要因分析
売上に効く施策・属性を大量の候補から選び出す。安定して選ばれる変数を「本命」とみなす考え方は非ゼロ回数と通じる。

🤔 よくある質問(読者からの想定Q&A)

この研究を読んで浮かびやすい疑問に答える。

Q. なぜ普通の重回帰でなく Adaptive Lasso を使ったの?
A. 説明変数が数百個あり、ふつうの重回帰では過学習して係数が信用できないからです。Lasso は効かない変数の係数を0に潰して自動で変数を選択します。さらに偽陽性を抑えるため重み付きの Adaptive Lasso を使いました。
Q. 「非ゼロ回数」って何ですか?
A. λをクロスバリデーションで決めると値が試行ごとに揺れます。そこで1000回試行し、各変数の係数が非ゼロと出た回数を数えました。100回以上を決定要因とします。回数が多いほど「安定して選ばれる」変数ですが、係数の大きさや符号ではない点に注意です。
Q. このページの図は原論文と同じ数値ですか?
A. 図4(説明変数トップ3のランキング)はSSDSE-Bからの実再現です(ただし2023年)。図1〜図3(各年代の非ゼロ回数)は、被説明変数の幸福度が内閣府「満足度・生活の質に関する調査」の個票でSSDSEに無いため、原論文の各表の値を桁そのまま転記して可視化しています。新たな数値の捏造はしていません。
Q. 「剣道をすれば幸福になる」と読んでいい?
A. いいえ。これは都道府県集計データの変数選択で、因果ではありません。剣道の行動者率が高い地域と幸福度が関連しやすい、という相関的な話です。集団の関係を個人に当てはめる生態学的誤謬に注意してください。

✅ 理解度チェック(4問)

この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。

🐍 ブラウザで動かす — インストール不要でこの論文の分析を再現する

このページの分析は、この画面の中でそのまま実行できます。 Python をインストールする必要も、CSV をダウンロードする必要もありません。 下のセルの 「▶ ブラウザで実行」 を上から順に押すか、 「▶ 最初から全部実行」 で一気に流してください。 表示されるのは、本文の図表とまったく同じ計算の結果です (動かしているのは再現スクリプト code/2022_U5_13_shorei.py そのもの)。

コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。