論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
審査員奨励賞[高校生の部] ★

オンラインゲームと犯罪の関係

⏱️ 推定読了時間: 約22分
2022年度(令和4年度)統計データ分析コンペティション | 中川 紗喜・佐原 凛・松永 梨那・田浦 亜美・小島 有加(愛知県立東海樟風高等学校) | 社会生活基本調査(SSDSE-D)・犯罪統計・社会教育調査(SSDSE-A)・医療施設調査/再現はSSDSE-B-2026の総人口 | 相関分析・無相関の検定・ウェルチのt検定(両側・有意水準5%)
🔬 t検定🔬 相関分析🏷 IT・デジタル🏷 犯罪・安全
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文のデータが手に入らないため、代替データで再現

この教材は、原論文が使ったデータそのものを使えていません。そこで代わりのデータで同じ問いを追いかけ、結論の向き(増える/減る、強い/弱い)が原論文と一致するかを確かめます。「同じ数値が出る」ことは目標にしていません。

原論文が使ったデータSSDSE-D・犯罪統計・SSDSE-A・社会教育調査・公民館調査(公民館類似施設)・国勢調査報告・医療施設調査
分析単位:都道府県
中核手法:相関分析・ウェルチのt検定
この教材が使うデータ
原論文(PDF)オンラインゲームと犯罪の関係
審査員奨励賞/中川 紗喜、佐原 凛、松永 梨那、田浦 亜美、小島 有加(愛知県立東海樟風高等学校)
✅ この教材でできること
  • 原論文の中核手法(相関分析)を実データで実行できる
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
  • 数値・図を最後まで再計算できる(相関分析・平均の差の検定)
⚠️ この教材ではできないこと(原論文との違い)
  • 原論文と同じデータでの再現はできない:論文=SSDSE-A/D → 教材=SSDSE-B
  • 原論文は SSDSE-D・SSDSE-A を使っているが、この教材は SSDSE-B を使っている(原論文本文で確認)
📄 原論文との違いを、もっと詳しく
📄 原論文:SSDSE-A/D 系のゲーム行動・犯罪データでオンラインゲームと犯罪の関係を分析。
📘 本教材:step 1〜4 は SSDSE-B での代理分析。step 5 で原論文と同じ SSDSE-D のゲーム行動者率データを再現
⚠️ 注意:犯罪統計(警察庁)は SSDSE 未収録のため、ゲーム行動者率の分布と交絡の注意を示すにとどめる。
🚀 原論文と同じ粒度で挑戦したい人へ

原論文と同じ粒度のデータは、この教材にも同梱しています。これを読み込めば、原論文と同じ細かさで分析をやり直せます(下の「🐍 ブラウザで動かす」でコードを書き換えて試せます)。ただし原論文が使った項目がすべて収録されているとは限りません。足りない項目は、上の「できないこと」に書いた出典から取ってくる必要があります。

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

📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. 使用データと再現可能性の整理
  3. 分析方法:相関分析→2群のt検定
  4. 図1:ゲーム利用率×殺人件数の散布図(報告値の可視化)
  5. 図2・図3:公民館数・精神科病院数のt検定(報告値の可視化)
  6. 主要な発見(原論文の報告値)
  7. 再現コード:SSDSE-B総人口でper-100kを実再現
  8. 結果の解釈と考察
  9. SSDSE-D ゲーム行動データでの再現
  10. まとめと今後の課題
  11. データ・コードのDL
  12. ⚠️ よくある誤解
  13. 📖 用語集
  14. 📐 手法ガイド
  15. 🚀 発展の可能性
  16. 🎯 自分でやってみよう
  17. 🤔 Q&A
  18. 🐍 ブラウザで動かす

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

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

このページの図4(人口10万人あたりの公民館数の再計算)は、以下の手順で自分で再現できます。コードの編集は不要です。(ゲーム利用率・殺人件数・公民館数・精神科病院数そのものはSSDSE-Bに無いため、図1〜図3は原論文の掲載データ/報告値を可視化します。)

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県別・基礎データ、社会・人口統計体系)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2022_H5_11_shorei.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2022_H5_11_shorei.py
図は html/figures/ に自動保存されます。
研究のテーマと目的

最近ふえている凶悪犯罪に、私たちの生活スタイルの変化が影響しているのではないか——著者はその一つとしてオンラインゲームに着目した。2019年に世界保健機関(WHO)が「ゲーム障害」を正式な疾病と認定し、過剰なゲーム利用がひきこもり・睡眠障害・視力障害などを引き起こすとされている。2020年には香川県で「ネット・ゲーム依存症対策条例」が制定され(子どものゲーム利用は1日60分などの目安)、「科学的根拠」の有無が訴訟の争点にもなった。

著者はさらに、2008年の秋葉原無差別殺傷事件の犯人が「自分にはネットにしかつながりがなかった」と供述したことにも触れ、オンラインゲームと犯罪には一定の関係があるのではないかという仮説を立てた。研究の目的は、この関係を都道府県データで確かめ、犯罪を起こさないための対策として何が必要かを考えることである。

0.697
ゲーム利用率×殺人件数の相関係数(報告値)
0.4863
決定係数 R²(報告値)
p=0.0021
公民館数のt検定・両側p(報告値)
p=0.00049
精神科病院数のt検定・両側p(報告値)
研究の問い オンラインゲームの過剰利用は犯罪と関係しているのか。もし関係があるなら、どんな地域の特徴が犯罪を抑えているのか。著者は「人間関係の希薄化(=公民館の少なさ)」と「精神疾患の悪化(=精神科病院の少なさ)」という2つの経路を仮定し、データで検証した。
分析のキモ:相関だけで終わらせない ゲーム利用率と殺人件数の相関を見るだけでなく、著者は「殺人が少なく抑えられている地域には何があるのか」に踏み込んだ。殺人件数で都道府県を2群に分け、公民館(つながりの場)と精神科病院(治療体制)の数に差があるかをt検定で確かめた点が、この研究の見どころである。

高校生の部 社会生活基本調査・犯罪統計 相関分析・無相関の検定 ウェルチのt検定 2群の平均の差

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

著者は複数の公的統計を都道府県単位で組み合わせている。オンラインゲーム利用率は「家庭でテレビゲーム・パソコンゲーム(携帯用を含む)をした人の割合(行動者率)」を用いた。年度が2015〜2016年に分かれている点は注意が必要である。

表1 原論文が使用したデータと出典

項目年度出典
オンラインゲーム利用率(テレビ・パソコンゲームの行動者率)2016SSDSE-D(2021)総務省統計局 社会生活基本調査
殺人事件の認知件数2016e-Stat 犯罪統計
都道府県別の公民館数(公民館類似施設)2015SSDSE-A(2020)文部科学省 社会教育調査
都道府県別の総人口2015SSDSE-A(2020)総務省統計局 国勢調査報告
精神科病院数2015e-Stat 医療施設調査
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):ゲーム利用率・殺人件数・公民館数・精神科病院数は、いずれもSSDSE-B-2026収録されていない。よって図1(散布図)と図2・図3(t検定の群平均)は、原論文が本文に掲載した47都道府県の値・報告要約をそのまま転記して可視化する。地図は使わず散布図・棒グラフで表現する。
  • 検算(再計算値)としての確認:相関係数は原論文の掲載データ47件から、t統計量は原論文の報告要約(平均・分散・標本数)から再計算し、報告値(r=0.697/p=0.0021・0.00049)を再現できることを確認する。報告値と検算値はラベルで必ず分ける。
  • 実再現できる部分(図4):SSDSE-Bに唯一収録がある総人口(2015=国勢調査)だけは実データで読み込み、原論文が「人口10万人あたり」に正規化した分母を復元する。原論文掲載の公民館数(実数)をこの総人口で割り、報告された per-100k を実データで再現する。
  • 新しい数値の捏造はしない:SSDSE-Bに無い指標(ゲーム・犯罪・公民館・精神科病院そのもの)を勝手に別の列で代用したりはしない。すべて原論文掲載値・報告要約・SSDSE-B実値のいずれか。

分析方法:相関分析 → 2群のt検定

分析の流れ
ゲーム利用率
×殺人件数
相関分析
正の相関か?
(r・R²)
殺人件数で
2群に分割
(10件超/以下)
t検定
公民館数の差
(p値)
t検定
精神科病院数の差
(p値)

① 相関分析

都道府県別のオンラインゲーム利用率と殺人事件認知件数の相関係数を求める。散布図の楕円で囲んだ「殺人がほぼ一定に抑えられている群」に着目したのが、次の2群比較の出発点である。

② 2群に分けてウェルチのt検定

殺人事件が「年10件超」の群と「10件以下」の群に分け、ウェルチのt検定(2群の分散が等しくないと仮定した2標本検定)を行った。帰無仮説は「2群の母平均に差はない」、対立仮説は「差がある」。両側検定・有意水準5%で、公民館数と精神科病院数のそれぞれについて検定した。

なぜ「人口10万人あたり」に直すのか 公民館も精神科病院も、人口が多い都道府県ほど数が多くて当然。そこで各施設数を総人口で割って10万人あたりに正規化してから比較する。これで「人口規模の違い」を取り除いた公平な比較になる。図4ではこの正規化をSSDSE-Bの総人口で実際に再現する。
1
図1:ゲーム利用率×殺人件数の散布図(報告値の可視化)

都道府県別のオンラインゲーム利用率(横軸)と殺人事件認知件数(縦軸)の関係を、原論文 図3 に対応する散布図で示す。この図は原論文の掲載データをそのまま可視化したもので、点の座標も回帰直線の傾き(R²=0.4863)も原論文の報告値に基づく。

やってみよう原論文の掲載データ(47都道府県)を転記し、相関係数を検算する
  • ① このコードの目的:原論文が本文に掲載した47都道府県の「ゲーム利用率」と「殺人事件認知件数」をそのまま転記し、相関係数を計算する。これは報告値の転記+検算で、勝手なデータは作らない。
  • ② 前後のつながり:ここで求めた相関が、後半のt検定(なぜ殺人を2群に分けたか)の出発点になる。原論文の報告値 r=0.697・R²=0.4863 を、掲載データから再現できるかを確かめる。
📝 コード
144
145
146
147
148
149
150
151
152
print('=== [1] オンラインゲーム利用率 × 殺人事件認知件数(相関) ===')
r_calc = np.corrcoef(sc['game'], sc['murder'])[0, 1]
print('原論文の報告値:相関係数 r = 0.697,  R^2 = 0.4863(正の相関)')
print(f'掲載データ47都道府県からの検算(再計算値):r = {r_calc:.4f},  R^2 = {r_calc**2:.4f}')
print(f'  → 報告値 0.697 / 0.4863 を再現(掲載データは正しく転記されている)')
print(f'  最多:大阪(利用率37.3%, 殺人110件)・東京(40.6%, 81件)・愛知(39.4%, 60件)')
print(f'  最少:福井/富山(殺人1件, 利用率33.0/32.0%)。利用率は東京40.6%が最高、沖縄28.5%が最低。')

# ============================================================
▼ 実行結果
=== [1] オンラインゲーム利用率 × 殺人事件認知件数(相関) ===
原論文の報告値:相関係数 r = 0.697,  R^2 = 0.4863(正の相関)
掲載データ47都道府県からの検算(再計算値):r = 0.6974,  R^2 = 0.4863
  → 報告値 0.697 / 0.4863 を再現(掲載データは正しく転記されている)
  最多:大阪(利用率37.3%, 殺人110件)・東京(40.6%, 81件)・愛知(39.4%, 60件)
  最少:福井/富山(殺人1件, 利用率33.0/32.0%)。利用率は東京40.6%が最高、沖縄28.5%が最低。
  • ④ 実行結果の読み取り:掲載データ47件から計算した相関係数はr=0.6974(R²=0.4863)で、原論文の報告値0.697・0.4863をそのまま再現した(転記が正しいことの裏づけ)。散布図の右上には大阪(110件)・東京(81件)・愛知(60件)などゲーム利用率の高い大都市が並ぶ。ただしこれは都道府県という集団単位の相関で、「ゲームをした個人が殺人を犯しやすい」ことを示すものではない。
オンラインゲーム利用率と殺人事件認知件数の散布図(報告値の可視化)
図1:都道府県別 オンラインゲーム利用率と殺人事件認知件数(2016年)。報告値の可視化(再計算ではない)(原論文 図3)。点線は掲載データから復元した回帰直線、注記の r=0.697・R²=0.4863 は原論文の報告値
📊 この図の読み方
右上(利用率・殺人ともに多い)
大阪・東京・愛知・埼玉・神奈川・福岡など大都市。ゲーム利用率が高く殺人件数も多い(報告値)。
左下(利用率・殺人ともに少ない)
福井・富山・鳥取・島根など。殺人は年1〜3件で、ゲーム利用率も低め(報告値)。
位置づけ
報告値の可視化。データはSSDSE-Bに無く、原論文掲載の47都道府県値を転記した。相関は集団単位で、因果ではない。
2
図2・図3:公民館数・精神科病院数のt検定(報告値の可視化)

散布図の「殺人が抑えられている群」に着目した著者は、殺人件数で都道府県を「10件超」(n=21)と「10件以下」(n=26)の2群に分け、人口10万人あたりの公民館数・精神科病院数に差があるかをウェルチのt検定で調べた。

やってみよう報告要約(平均・分散・標本数)からウェルチのt検定を検算する
  • ① このコードの目的:原論文が本文6頁に載せたt検定結果表の群平均・分散・標本数だけを使って、ウェルチのt統計量・自由度・両側p値を再計算する関数を定義する。個票データを触らず、報告要約からの検算に徹する。
  • ② 前後のつながり:直前の相関(図1)で「ゲームが多い地域=殺人も多い」大枠を掴んだうえで、著者は「では殺人が抑えられている地域には何があるか」を問う。その答え合わせとして、公民館数・精神科病院数の2群比較のt検定を検算する。
📝 コード
130
131
132
133
134
135
136
137
138
139
140
141
def welch(a, b):
    """報告要約(平均・分散・標本数)から Welch の t・自由度・両側p を再計算(検算)。"""
    se = np.sqrt(a['var'] / a['n'] + b['var'] / b['n'])
    t = (a['mean'] - b['mean']) / se
    df = (a['var'] / a['n'] + b['var'] / b['n']) ** 2 / (
        (a['var'] / a['n']) ** 2 / (a['n'] - 1) +
        (b['var'] / b['n']) ** 2 / (b['n'] - 1))
    p = 2 * stats.t.sf(abs(t), df)
    return t, df, p


# ============================================================
▼ 実行結果
=== [2] t検定:人口10万人あたりの公民館数(殺人10件超 vs 10件以下) ===
原論文の報告値: t = -3.3093,  自由度 = 37,  両側p = 0.002092(有意水準5%で有意)
  群平均:殺人10件超 = 11.50(n=21) < 10件以下 = 24.69(n=26)
報告要約(平均・分散・n)からの検算(再計算値): t = -3.3093,  自由度 ≒ 36.6,  両側p = 0.002109
  → 報告のt=-3.3093・p=0.0021 を再現。殺人が多い群ほど公民館が少ない(負の向き)。

=== [3] t検定:人口10万人あたりの精神科病院数(殺人10件超 vs 10件以下) ===
原論文の報告値: t = -3.7592,  自由度 = 45,  両側p = 0.000489(有意水準5%で有意)
  群平均:殺人10件超 = 0.814(n=21) < 10件以下 = 1.312(n=26)
報告要約(平均・分散・n)からの検算(再計算値): t = -3.7592,  自由度 ≒ 44.9,  両側p = 0.000490
  → 報告のt=-3.7592・p=0.00049 を再現。殺人が多い群ほど精神科病院が少ない(負の向き)。
  • ④ 実行結果の読み取り:報告要約から再計算したt統計量は、公民館数でt=−3.3093、精神科病院数でt=−3.7592となり、原論文の報告値と小数点以下まで一致。両側pもそれぞれ0.0021・0.00049を再現した(自由度は原論文が37・45と丸めているため、厳密計算では36.6・44.9とわずかに異なるがp値はほぼ同じ)。t値がいずれもなのは、「殺人10件超」の群の平均のほうが小さい=殺人が多い地域ほど公民館・精神科病院が少ないことを意味する。
公民館数の2群比較(報告値の可視化)
図2:人口10万人あたりの公民館数(殺人10件超 vs 10件以下)。報告値の可視化(再計算ではない)(原論文 本文6頁)。エラーバーは標準誤差、p=0.0021 は原論文の報告値
精神科病院数の2群比較(報告値の可視化)
図3:人口10万人あたりの精神科病院数(殺人10件超 vs 10件以下)。報告値の可視化(再計算ではない)(原論文 本文6頁)。p=0.00049 は原論文の報告値
📊 この図の読み方
公民館数(図2)
殺人10件超の群の平均11.50に対し、10件以下の群は24.69。殺人が少ない地域ほど公民館が多い(有意差 p=0.0021)。
精神科病院数(図3)
殺人10件超の群0.814に対し、10件以下の群1.312。殺人が少ない地域ほど精神科病院が多い(有意差 p=0.00049)。
注意
いずれも報告値の可視化。有意差は「2群の平均が違う」ことを示すだけで、公民館・病院が殺人を減らすという因果を証明したわけではない。
3
主要な発見(原論文の報告値)

以下の相関・検定結果はすべて原論文の報告値である(本ページの検算でも再現済み)。

分析報告された結果解釈(著者)
ゲーム利用率×殺人件数の相関r = 0.697(R²=0.4863)正の相関ゲーム利用率が高い地域ほど殺人が多い傾向
公民館数の2群t検定t=−3.309, p=0.0021(有意)殺人が少ない地域は「つながりの場」=公民館が多い
精神科病院数の2群t検定t=−3.759, p=0.00049(有意)殺人が少ない地域は治療体制=精神科病院が多い
著者の因果モデル(原論文 本文5頁の特性要因図) 著者は「犯罪の増加」の背景に、①人間関係の希薄化 → 公民館数の少なさ②精神疾患の悪化 → 精神科病院数の少なさという2つの経路を想定した。相関(ゲーム×殺人)と2つのt検定(公民館・精神科病院)の結果は、この仮説と整合する向きだった、というのが著者の主張である。すべて報告値に基づく。
より正確な見方(補足) これらは都道府県という集団単位の関連であり、個人がゲームをすると犯罪に走る、という話ではない。ゲーム利用率が高い地域は都市部でもあり、人口密度・所得・年齢構成など多くの要因が同時に絡む(交絡)。「見かけ上の強い相関」が見せかけの相関である可能性は残る。著者の主張は主張として尊重しつつ、因果の証明ではない点を押さえたい。
4
再現コード:SSDSE-B総人口でper-100kを実再現

図1〜図3はSSDSE-Bに無いデータの報告値可視化だった。ではSSDSE-Bだけで何が再現できるか。答えは「人口10万人あたり」の分母=総人口である。原論文が正規化に使った総人口をSSDSE-Bから復元し、公民館数の per-100k を実データで再計算してみる。

やってみようSSDSE-Bの総人口で「人口10万人あたりの公民館数」を実再現する【実再現】
  • ① このコードの目的:SSDSE-B-2026 を cp932・ラベル行 skiprows 相当で読み込み、先頭列 SSDSE-B-2026(年度)が2015の総人口(A1101)を取り出す。原論文掲載の公民館数(実数)をこの総人口で割り、報告された per-100k を実データで再計算する。
  • ② 前後のつながり:図2で使った「人口10万人あたりの公民館数」は、原論文が総人口で正規化した値だった。その分母をSSDSE-Bの総人口で復元し、正規化という前処理そのものを自分の手で再現する。
📝 コード
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
raw = pd.read_csv(DATA_B, header=0, encoding='cp932')
data = raw.iloc[1:].copy()
data['year'] = pd.to_numeric(data['SSDSE-B-2026'], errors='coerce')
pref_col = raw.columns[2]
d15 = data[data['year'] == 2015].copy()
pop15 = dict(zip(d15[pref_col], pd.to_numeric(d15['A1101'], errors='coerce')))
print(f'SSDSE-B の2015年 総人口(A1101) を読み込み:{len(pop15)}都道府県')
print(f"  例)大阪府 {int(pop15['大阪府']):,}人・東京都 {int(pop15['東京都']):,}人・北海道 {int(pop15['北海道']):,}人")
print('  → 原論文 表3 の総人口(国勢調査2015)と完全一致。per-100k の分母を復元できる。')

rows, maxdiff = [], 0.0
for pref, n in KOMINKAN.items():
    pop = pop15[pref]
    calc = n / (pop / 100000)
    rep = KOMINKAN_REP_PER100K[pref]
    rows.append((pref, n, pop, calc, rep))
▼ 実行結果
=== [4] SSDSE-B(総人口)で「人口10万人あたりの公民館数」を実再現 ===
SSDSE-B の2015年 総人口(A1101) を読み込み:47都道府県
  例)大阪府 8,839,469人・東京都 13,515,271人・北海道 5,381,733人
  → 原論文 表3 の総人口(国勢調査2015)と完全一致。per-100k の分母を復元できる。
公民館数(原論文掲載) ÷ (SSDSE-B総人口/10万) で per-100k を再計算:
  例)大阪府 260館 ÷ 88.39 = 2.94(報告値2.94)
      長野県 1520館 ÷ 20.99 = 72.42(報告値72.42・最多)
  47都道府県すべてで再計算値と原論文の報告per-100kの最大差 = 0.005(実質一致)
  • ④ 実行結果の読み取り:SSDSE-Bの2015年総人口は、大阪府8,839,469人・東京都13,515,271人など原論文 表3 の総人口(国勢調査2015)と完全一致した。公民館数を 総人口/10万 で割ると、大阪2.94・長野72.42(最多)など、47都道府県すべてで報告値との最大差0.005——実質完全一致で per-100k を復元できた。正規化という一見地味な前処理も、こうして実データで裏が取れる。
SSDSE-B総人口によるper-100k正規化の実再現
図4:SSDSE-B(総人口2015)で「人口10万人あたりの公民館数」を実再現。実再現/都道府県粒度。横軸=原論文の報告 per-100k、縦軸=SSDSE-B総人口で再計算した per-100k。全47点が y=x 線上に載る(=報告値を復元)。
📊 この図の読み方
y=x 線上に並ぶ
再計算値と報告値が一致している証拠。原論文の正規化が正しく、SSDSE-Bの総人口で完全に復元できる。
右上の外れ点
長野(72.42)・秋田(34.21)など、人口が少なく公民館が多い県。per-100k が突出する。
左下
東京(0.61)・静岡(2.49)・大阪(2.94)など、人口が多い大都市は per-100k が小さい。

結果の解釈と考察(原論文「8」)

著者は3つの結果から、次のように解釈した(すべて報告値に基づく著者の考察)。

①相関:オンラインゲーム利用率と殺人事件認知件数には正の相関があり、利用率が高い地域ほど殺人が起きている。②公民館:殺人が多い地域は公民館が少ない。地域社会の「つながり」の場としての公民館が、犯罪の発生抑制にいくらか寄与しているのではないか。③精神科病院:殺人が多い地域は精神科病院が少ない。ゲームに起因する障害を啓発し積極的な治療を促すことが、犯罪抑制に寄与するのではないか。

著者の提言 多くの殺人事件の容疑者に共通するのは、他人に共感できる能力が損なわれている可能性——著者は「ゲームでは人を殺してもリセットできるが、現実の命はリセットできない」ことへの想像力の欠如を遠因に挙げる。愛知県人権尊重の社会づくり条例(2022)の「みんなが思い合える場所をつくるのは、みんなです」を引き、社会のつながりの場を設け、ゲーム障害の危険性を広く社会に認知させることが犯罪抑制につながると結論づけた。
より正確な分析としての補足 著者の主張は探究として価値があるが、統計的には相関・群間差=因果ではない。ゲーム利用率が高い都市部は人口密度・匿名性・所得格差なども高く、これらが殺人件数と公民館・精神科病院数の両方に効いている(交絡)可能性が高い。「ゲーム→犯罪」という向きも、逆・第三変数のいずれもあり得る。原論文の主張は残しつつ、結論は「関連が見えた」段階として読むのが誠実である。
5
SSDSE-D(社会生活基本調査)のゲーム行動データで再現する

原論文は SSDSE-D 系(社会生活基本調査)のゲーム行動データを使いました。同じ SSDSE-D-2023 の「スマートフォン・家庭用ゲーム機などによるゲーム」行動者率を確認します。

やってみようゲーム行動者率の都道府県分布
📝 コード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
d_raw = pd.read_csv('data/raw/SSDSE-D-2023.csv', encoding='cp932', header=1)
d_raw = d_raw[(d_raw['男女の別'] == '0_総数') & (d_raw['地域コード'] != 'R00000')]
d = d_raw.set_index('都道府県')
dv = lambda c: pd.to_numeric(d[c], errors='coerce')

game = dv('スマートフォン・家庭用ゲーム機などによるゲーム')
print('ゲーム行動者率 上位5県:')
for p2, v in game.nlargest(5).items(): print(f'  {p2}: {v:.1f}%')
print('ゲーム行動者率 下位5県:')
for p2, v in game.nsmallest(5).items(): print(f'  {p2}: {v:.1f}%')
print(f'全国範囲: {game.min():.1f}% 〜 {game.max():.1f}%(差は {game.max()-game.min():.1f}pt)')
▼ 実行結果
ゲーム行動者率 上位5県: 愛知県: 48.4% 東京都: 48.3% 神奈川県: 47.9% 大阪府: 45.7% 北海道: 44.2% ゲーム行動者率 下位5県: 秋田県: 33.7% 鳥取県: 34.2% 青森県: 34.4% 長崎県: 34.9% 鹿児島県: 35.2% 全国範囲: 33.7% 〜 48.4%(差は 14.7pt)
💡 解説
  • ゲーム行動者率は愛知・東京・神奈川など大都市圏で高く(48%前後)、秋田・鳥取・青森で低い(34%前後)。差は 14.7 ポイントもあります。
  • 犯罪率も都市部で高いため、ゲームと犯罪の相関の背後には「都市度」という交絡が控えています。原論文の相関を因果と読まないための最重要ポイントです。
💡 Python TIPS 行動者率 = その活動を 1 年間にした人の割合。頻度や時間ではない点に注意。

まとめと今後の課題

本研究は、都道府県別のオンラインゲーム利用率と殺人事件認知件数の正の相関(r=0.697)を出発点に、殺人件数で2群に分けてウェルチのt検定を行い、殺人が少ない地域ほど公民館(p=0.0021)と精神科病院(p=0.00049)が有意に多いことを示した(いずれも報告値)。相関で終わらせず「では何が犯罪を抑えているのか」に踏み込み、つながりの場と治療体制という具体的な政策提言まで導いた探究の流れが見どころである。

この研究の限界(統計的な補足) ①相関・群間差であって因果ではない。②ゲーム利用率が高い地域=都市部という交絡が強く疑われる。③年度の異なるデータ(2015・2016)を組み合わせている。④殺人件数は年による変動が大きく、単年(2016)の値である。原論文の主張は主張として残しつつ、これらを踏まえて読みたい。
この研究から学べること 身近な社会問題(ゲームと犯罪)を、都道府県データの相関2群のt検定で検証する一連の流れ。そして「人口10万人あたり」に正規化して人口規模の違いを取り除く前処理の大切さ。審査会も高校生による社会性の高い着眼と分析手順を評価し、審査員奨励賞に選んだ。

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

このページの図4(人口10万人あたりの公民館数の再計算)は、以下から再現できます。

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

※ 図1(散布図)と図2・図3(t検定の群平均)は、ゲーム利用率・殺人件数・公民館数・精神科病院数がSSDSE-B外のため、原論文の掲載データ・報告要約を可視化したものです(相関係数・t値は掲載データ/報告要約から検算して報告値を再現)。図4はSSDSE-Bの総人口による実再現です。新しい数値の捏造は一切していません。

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

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

誤解1:「ゲームをすると殺人を犯しやすくなる、と示された」
これは都道府県という集団単位の相関で、個人の話ではない。集団の平均どうしの関係を個人に当てはめるのは生態学的誤謬。ゲームをする個人が犯罪に走りやすい、という証拠にはならない。
誤解2:「r=0.697 と有意なp値が出たから因果が証明された」
相関や群間の有意差は因果ではない。ゲーム利用率が高い地域は都市部で、人口密度・所得・匿名性などの交絡因子が同時に効いている可能性が高い(見せかけの相関)。
誤解3:「公民館や精神科病院を増やせば殺人が減る」
t検定が示すのは「2群の平均に差がある」ことだけ。公民館・病院の多さは「殺人が少ない地域の特徴」ではあっても、増やせば減るという介入効果を保証しない。逆の因果や第三変数も考えられる。
誤解4:「このページの図はすべて実データを計算した結果」
図1〜図3は原論文の掲載データ・報告要約の可視化(再計算ではない)。相関係数とt値は検算で報告値を再現していますが、元データ自体はSSDSE-Bに無く原論文からの転記です。図4だけがSSDSE-B総人口による実再現。図注に明記しています。

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

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

相関係数
2つの数量が一緒に増減する強さと向きを−1〜+1で表す。本研究はゲーム利用率と殺人件数で r=0.697。
散布図
2変数の関係を点で描く図。図1で都道府県ごとの利用率と殺人件数の分布を見る。
ウェルチのt検定
2群の平均の差を、分散が等しくない前提で検定する方法。本研究は殺人10件超/以下の2群を比較した。
帰無仮説 / 対立仮説
「差はない」(帰無)と「差がある」(対立)。検定は帰無仮説を棄却できるかを見る。
p値
帰無仮説のもとで観測以上の差が出る確率。p<0.05で有意と判断。本研究は0.0021・0.00049。
有意水準
帰無仮説を棄却する基準。本研究は5%(両側)。
交絡 / 見せかけの相関
第三の要因が両方に影響して、見かけ上の相関を生む現象。都市度がゲームと犯罪の両方に効く恐れ。
因果
一方が他方を引き起こす関係。相関や群間差だけでは示せない。
SSDSE
教育用標準データセット。本ページの実再現はSSDSE-Bの総人口(2015)を用いる。

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

この研究で使われている手法を、手を動かす順に説明する。

全体像
2変数の相関で大枠を掴む → 片方の変数で2群に分割 → もう一方の指標に群間差があるかをt検定。相関→群比較という2段構えが、この研究の統計的な骨格。
📈 相関分析
何をする
2変数の相関係数 r(−1〜+1)を計算し、正/負と強さを見る。R²=r²は「一方の変動が他方をどれだけ説明するか」の目安。
読み方
|r|が大きいほど直線的な関連が強い。本研究の r=0.697 は中〜強の正の相関。
注意
相関は因果ではない。集団単位の相関を個人に当てはめない。外れ値(大都市)が r を押し上げることもある。
🧪 ウェルチのt検定(2群の平均の差)
何をする
2つのグループの平均の差が偶然の範囲かを検定する。分散が等しいと仮定しない「ウェルチ版」は実務でよく使われる頑健な方法。
読み方
t値の符号は差の向き、|t|が大きくp<0.05なら「差は偶然でない」。本研究はt=−3.31・−3.76で有意。
注意
有意差=実質的に大きい差、ではない。標本数や分散に依存する。そして群間差は因果を意味しない
➗ 人口による正規化(per-100k)
何をする
施設数などの絶対数を「人口10万人あたり」に直す。施設数 ÷ (総人口 / 100000)
なぜ必要
人口が多い地域ほど施設数も多くて当然。人口規模の違いを取り除いて公平に比べるため。
注意
分母(総人口)の年次・出典をそろえる。本研究は国勢調査2015で、SSDSE-Bの総人口と一致する(図4)。

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

「ゲームと犯罪に相関があり、つながり・治療体制が抑制要因かもしれない」という結論は、次の研究の出発点になる。

発展1:交絡を統制して「見せかけ」を検証する
結果X
ゲーム利用率と殺人件数に強い正の相関(r=0.697)。
新仮説Y
本当はゲームではなく、都市度(人口密度・所得・匿名性)が両方に効いているのでは。
課題Z
人口密度・所得・年齢構成を説明変数に加えた重回帰や、偏相関でゲームの独自の効き目を確かめる。
発展2:犯罪の種類・年次を広げる
結果X
単年(2016)の殺人認知件数で分析。件数が少ない県は年変動が大きい。
新仮説Y
複数年平均や他の犯罪(刑法犯全体)でも同じ関係が見えるのか。
課題Z
数年分を平均して安定させ、犯罪種別ごとに相関・群比較を取り直す。

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

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

★☆☆☆☆ 難易度1
別の年の総人口でper-100kを出す
data['year'] == 2015 を 2020 に変えて、人口10万人あたりの公民館数がどれだけ変わるか確かめよう(分母の年で値が動く)。
★★☆☆☆ 難易度2
相関を順位相関に変える
np.corrcoef の代わりに scipy.stats.spearmanrスピアマンの順位相関を計算し、外れ値(大都市)の影響が弱まるか比べよう。
★★★☆☆ 難易度3
2群の境目を変えてみる
殺人の分割基準を「10件」から「20件」に変えたら、公民館数・精神科病院数のt検定の結果(p値)はどう変わるだろう。掲載データを転記して確かめよう。
★★★★☆ 難易度4
散布図の外れ値を除いて相関を見る
大阪・東京・愛知など大都市を除いてから相関係数を計算し直そう。r=0.697 がどれだけ下がるか——外れ値が相関をどれほど押し上げていたかが分かる。
★★★★★ 難易度5
交絡を入れた重回帰に挑戦
SSDSE-Bの人口密度・所得(課税対象所得など)を説明変数に加え、殺人件数を目的変数にした重回帰で、ゲーム利用率の係数が有意に残るか確かめよう。交絡を統制した「より正確な分析」の一歩。
ヒント:殺人件数はSSDSE-Bに無いので、原論文掲載の殺人件数を転記して目的変数にする。statsmodelssm.OLS を使う。

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

「地域データの相関と群比較で社会現象の関連を探る」発想は、公衆衛生や行政で広く使われている。

🚓
犯罪学・地域安全
地域の犯罪発生と、つながり(社会関係資本)・貧困・人口密度などの関連を相関や回帰で探り、防犯施策の対象地域を絞る。
🏥
公衆衛生の地域比較
医療資源(病院数)の多寡で地域を群分けし、健康アウトカムの差をt検定で比較。医療の地域格差の把握に使う。
📊
A/Bテスト・効果検証
2群の平均の差のt検定は、施策やデザインの効果を確かめるA/Bテストの基本。ビジネスの意思決定で日常的に使われる。

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

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

Q. ゲームが殺人を増やす、と結論していいの?
A. いいえ。これは都道府県という集団単位の相関・群間差であり、因果ではありません。ゲーム利用率が高い地域は都市部でもあり、人口密度や所得など多くの要因(交絡)が同時に効いています。原論文の主張は尊重しつつ、「関連が見えた」段階として読むのが正確です。
Q. このページの図は原論文と同じ数値ですか?
A. 図1(散布図)と図2・図3(t検定の群平均)は、データがSSDSE-Bに無いため原論文の掲載データ・報告要約を可視化したものです。ただし相関係数(r=0.6974)とt値(−3.31・−3.76)は掲載データ/報告要約から検算し、報告値を再現しています。図4だけがSSDSE-Bの総人口による実再現です。
Q. なぜ「10件超」と「10件以下」で分けたの?
A. 著者は散布図で「殺人がほぼ一定に抑えられている群」に着目し、その境目を殺人年10件に置きました。この2群で公民館数・精神科病院数に差があるかを見ることで、「何が犯罪を抑えているか」に迫ろうとしたのです。分割基準を変えると結果も変わりうる点は注意です。
Q. ウェルチのt検定はふつうのt検定と何が違うの?
A. 2群の分散が等しいと仮定しないのがウェルチ版です。分散が違う(本研究のように群でばらつきが異なる)ときでも頑健で、迷ったらウェルチを使うのが実務の定石です。原論文も「分散が等しくないと仮定した2標本による検定」と明記しています。

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

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

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

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

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