見出し画像

🍹 自由な時間を楽しんでいますか?大人の遊び方をデータから読み解く

みなさんも統計・データ分析で日常を描いてみませんか?

イントロ


日常と統計を結ぶ 統計小話シリーズ の第4話は 余暇の過ごし方 です。
忙しかった今日、自分を大切にする余白の時間はありましたか?


トピック


1. テレビは半世紀の主役

「日々の余暇を楽しんでいますか?」
総務省「社会生活基本調査」によると、1976年から2021年までの45年間、テレビ・ラジオ・新聞・雑誌は常に1日2時間前後を占め、余暇の主役であり続けています。
一方で、趣味・娯楽は30分から48分へ微増スポーツは10分前後で横ばい

👉 「テレビが主役、趣味は伸び、スポーツは短時間」という構図が半世紀続いています。

図1:主な余暇の過ごし方~1日の平均時間

🍹🍹🍹

2. 趣味・娯楽のじわ増とデジタル化

余暇と言えば趣味・娯楽ですね。1976年の30分から2021年には48分に増加しました。
その中身を行動者率で見ると、2021年は次のようになっています。

  • 音楽鑑賞(CD・スマホなど):52%

  • 映画鑑賞(テレビ・DVD・PCなど):51%

  • ゲーム(スマホ・家庭用ゲーム機など):38%

  • 漫画を読む:35%

👉 デジタル機器を介した趣味が主流になり、余暇の風景は大きく変わっています。

図2:1年間の趣味・娯楽の行動者率(2021年)

🍹🍹🍹

3. スポーツは軽い運動が主流に

スポーツは平均時間こそ短いものの、中身は大きく変わりました。

  • ウォーキング・軽い体操:2001年43% → 2021年45%

  • 器具を使ったトレーニング:1986年7% → 2021年13%

  • ジョギング・マラソン:1986年12% → 2021年10%

  • 水泳:1986年26% → 2021年5%

  • 野球:1986年17% → 2021年6%

👉 「軽く・健康志向」の活動が拡大し、野球や水泳といった昔ながらの種目は縮小しています。

図3:fig3_1年間の主なスポーツの行動者率の推移

統計的な指標で深掘り

行動者率の長期的な傾向(トレンド)に関する Mann-Kendall検定 を行いました。

  • 器具を使ったトレーニングは有意に増加(p=0.023)

  • 野球と水泳は有意に減少(p=0.002)

  • ウォーキング・ジョギングには統計的に有意な傾向はなし

👉 グラフから読み取れる傾向が、非線形なトレンド検定でも確認できた と言えます。

🍹🍹🍹

4. ニュースとの関連

近年のニュースでは、「推し活」人口は約36%、若年層では50%超との調査が報じられています。
さらにロイターは、日本の推し活市場規模が年間3.5兆円、個人平均支出は25万円に達すると報じています。

映画・音楽・ゲーム・マンガといった趣味は、まさに「推し」を中心に楽しむ活動と直結。
お気に入りのアーティストやキャラクターを応援する行為が、グッズ購入やイベント参加、日常のモチベーションへと広がっています。

👉 趣味・娯楽のデジタル化は「推し活の毎日化」の流れ、ではないでしょうか。

🍹🍹🍹

5. 結論と余白

  • テレビは不動の主役

  • 趣味・娯楽は「じわ増+デジタル+推し活」

  • スポーツは「軽い運動」へシフト、推しのチームや選手を応援する形でも楽しめそう

👉 「推しを見つけることが、日常の彩りを豊かにする」

あなたの生活の中にある推しは、何ですか?
私は統計・データ分析です😊

🍹🍹🍹

情報源

(2025年9月10日取得)

おわり

リンクとコード


シリーズ記事

次の記事

前の記事

目次

🍀🍀🍀

Python コード

記事の図表・統計数値を作成した Python コードです。

🖥️ データの準備

# データの登録

# インポート
import numpy as np

# 1日の各行動種類別の総平均時間 [分] ※時系列統計表6
years_min = [1976, 1981, 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021] # 年
tv_min = [144, 133, 138, 143, 154, 154, 147, 150, 138, 132]  # TV・ラジオ・新聞・雑誌
hobby_min = [30, 33, 31, 36, 35, 42, 44, 44, 46, 48]         # 趣味・娯楽
sports_min = [8, 10, 10, 11, 11, 11, 13, 12, 12, 12]         # スポーツ

# 1年間の主なスポーツの行動者率 [%] ※時系列統計表2
years_ratio = [1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021]  # 年
baseball_ratio = [16.9, 14.3, 11.9, 9.5, 7.4, 6.2, 6.3, 5.5]    # 野球
swim_ratio = [26.1, 23.8, 19.3, 17.2, 11.9, 8.7, 9.3, 4.6]      # 水泳
jog_ratio = [12.0, 10.9, 8.9, 10.3, 7.8, 8.6, 11.2, 10.3]       # ジョギング等
walk_ratio = [np.nan, np.nan, np.nan, 42.8, 35.5, 35.7, 42.1, 45.0]  # Walking等
train_ratio = [6.8, 8.4, 8.4, np.nan, 11.4, 9.9, 14.9, 13.1]       # 器具Training

# 2021年の1年間の趣味・娯楽の行動者率 [%] ※時系列統計表3
hobby_cat = ['音楽鑑賞(CD・スマートフォンなど)',
             '映画鑑賞(テレビ・DVD・パソコンなど)',
             'ゲーム(スマートフォン・家庭用ゲーム機など)',
             'マンガを読む', '読書(マンガを除く)',
             '映画鑑賞(映画館)', '園芸・庭いじり・ガーデニング',
             '写真の撮影・プリント']
hobby_ratio = [52.8, 52.0, 41.0, 35.2, 31.1, 28.7, 26.9, 22.1]

【実行結果】なし

🖥️ 1日のTV・ラジオ・新聞・雑誌平均時間の推移

# 1日のTV・ラジオ・新聞・雑誌平均時間の推移の描画

# 追加インポート
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib

# このPC用の設定
plt.rcParams['figure.dpi'] = 100

# 描画領域の設定
plt.figure(figsize=(8, 5))
# 1日のTV視聴等の平均時間の時系列折れ線グラフの描画
plt.plot(years_min, tv_min,'-o', color='tab:blue', label='TV・ラジオ・新聞・雑誌')
# 1日の趣味の平均時間の時系列折れ線グラフの描画
plt.plot(years_min, hobby_min,'-o', color='tab:green', label='趣味・娯楽')
# 1日のスポーツの平均時間の時系列折れ線グラフの描画
plt.plot(years_min, sports_min,'-o', color='tab:red', label='スポーツ')
# 修飾
plt.title('主な余暇の過ごし方~1日の平均時間(15歳以上)', fontsize=16)
plt.xlabel('年', fontsize=14)
plt.ylabel('1日の平均時間 [分]', fontsize=14)
plt.xticks(years_min)
plt.ylim(0, 200)
plt.grid(alpha=0.5)
plt.legend()
plt.show()

【実行結果】

図1:主な余暇の過ごし方~1日の平均時間

🖥️ 2021年の趣味・娯楽の行動者率の上位

# 2021年の趣味・娯楽の行動者率の上位の描画

# 追加インポート
import pandas as pd

# 描画用データフレームの作成
plot_df = pd.DataFrame(hobby_ratio, index=hobby_cat, columns=['行動者率'])
# 趣味・娯楽の行動者率の横棒グラフの描画
plot_df.plot.barh(figsize=(8, 5), fontsize=12, legend=False, alpha=0.7)
# 修飾
plt.title('1年間の趣味・娯楽の行動者率(2021年)', fontsize=16)
plt.xlabel('行動者率 [%]', fontsize=14)
plt.gca().invert_yaxis()  # y軸の順序を逆転
plt.grid(axis='x', alpha=0.5);

【実行結果】

🖥️ 1年間の主なスポーツの行動者率の推移

# 1年間の主なスポーツの行動者率の推移の描画

# 描画領域の設定
plt.figure(figsize=(8, 5))
# 描画データの設定
sports_dict = {'野球': [baseball_ratio, 'tab:blue'],
               '水泳': [swim_ratio, 'tab:green'],
               'ジョギング・マラソン': [jog_ratio, 'tab:orange'],
               'ウォーキング・軽い体操': [walk_ratio, 'tab:red'],
               '器具を使ったトレーニング': [train_ratio, 'indigo']}
# スポーツごとに行動者率の時系列折れ線グラフ描画を繰り返し処理
for sports, data in sports_dict.items():
    plt.plot(years_ratio, data[0], '-o', color=data[1], label=sports)    
# 修飾
plt.title('1年間の主なスポーツの行動者率の推移(15歳以上)', fontsize=16)
plt.xlabel('年', fontsize=14)
plt.ylabel('行動者率 [%]', fontsize=14)
plt.xticks(years_ratio)
plt.ylim(0, 50)
plt.grid(alpha=0.5)
plt.legend()
plt.show()

【実行結果】

図3:fig3_1年間の主なスポーツの行動者率の推移

🖥️ スポーツの行動者率のトレンドのMann-Kendall検定

# Mann-Kendall検定を実行して、スポーツの行動者率トレンドを検証

# 追加インポート
import pymannkendall as mk

# 結果を格納するリストの初期化
mk_results = []

# スポーツごとにMann-Kendall検定を繰り返し実行
for sports, [data, _] in sports_dict.items():
    # データから欠損値を除外
    data = np.array(data)[~np.isnan(data)]
    # Mann-Kendall検定の実行
    res = mk.original_test(data, alpha=0.05)
    # 検定結果をリストに格納
    mk_results.append({
        'スポーツ': sports,
        'データの年数': len(data),
        'トレンド': res.trend,
        'p値': res.p,
        '有意': res.h,  # 有意性判定 (Trueなら傾向あり)
        '傾き': res.slope,
    })

# 結果をデータフレーム化
mk_results_df = pd.DataFrame(mk_results)
mk_results_df

【実行結果】

🖥️ 参考:社会生活基本調査・Excelデータからデータを抽出するコード
① 時系列統計表6より趣味等の平均時間データを抽出

# Excelデータから必要データを抽出

# 社会生活基本調査 時系列統計表6データから趣味等の平均時間を取得

# 表6読み込み
df6 = pd.read_excel('jikei6.xlsx', sheet_name='jikei6 (1)', header=None)

# 年ラベル(西暦)の取得
years = df6.iloc[6, 5:15].tolist()

# 欲しいカテゴリで絞り込み
want = ['テレビ・ラジオ・新聞・雑誌', '趣味・娯楽', 'スポーツ']
df6_wide = df6.iloc[9:32, 2:15].copy().drop(columns=[3, 4])
df6_wide.columns = ['category'] + years
df6_wide = df6_wide[df6_wide['category'].isin(want)]

# 型の変更(数値を整数型へ)
df6_wide[df6_wide.columns[1:]] = df6_wide[df6_wide.columns[1:]].astype(int)

# 結果の表示
print('df6_wide.shape:', df6_wide.shape)
df6_wide.head()

【実行結果】

② 時系列統計表2よりスポーツ行動者率データを抽出

# 社会生活基本調査 時系列統計表2データからスポーツ行動者率を取得

# 表2読み込み
df2 = pd.read_excel('jikei2.xlsx', sheet_name='jikei2', header=None)

# 年ラベル(西暦)の取得
years = df2.iloc[8, 3:11].tolist()

# カテゴリリストの作成
cat2_list = ['総数', '野球', 'ソフトボール', 'バレーボール', 'バスケットボール',
            'サッカー', '卓球', 'テニス', 'バドミントン', 'ゴルフ(練習場を含む)',
            'グラウンドゴルフ', '柔道', '剣道', 'ボウリング', 'つり', '水泳',
            'スキー・スノーボード', '登山・ハイキング', 'サイクリング',
            'ジョギング・マラソン', 'ウォーキング・軽い体操', 'ヨガ',
            '器具を使ったトレーニング']

# カテゴリ別のスポーツ行動者率データを辞書型で作成
df2_dict = {
    cat: (
        df2.iloc[21, 3 + 8*i:11 + 8*i]
        .apply(lambda x: np.nan if x == '...' else x).to_list()
    )
    for i, cat in enumerate(cat2_list)
}

# スポーツ行動者率データをデータフレーム化(横持ち)
df2_wide = pd.DataFrame(
    df2_dict, index=pd.Series(years, name='year')).reset_index()

# 結果の表示
print('df2_wide.shape:', df2_wide.shape)
df2_wide.head()

【実行結果】

③ 時系列統計表3より趣味・娯楽行動者率データを抽出

# 社会生活基本調査 時系列統計表3データから趣味・娯楽行動者率を取得

# 表3読み込み
df3 = pd.read_excel('jikei3.xlsx', sheet_name='jikei3', header=None)

# 年ラベル(西暦)の取得
years = df2.iloc[8, 3:11].tolist()

# カテゴリリストの作成
cat3_list = [
    '総数', 'スポーツ観覧・観戦', '美術鑑賞', '演芸・演劇・舞踊鑑賞',
    '映画館での映画鑑賞', '映画館以外での映画鑑賞(テレビ・DVD・パソコンなど)',
    'コンサートなどによるクラシック音楽鑑賞',
    'コンサートなどによるポピュラー音楽・歌謡曲鑑賞',
    'CD・スマートフォンなどによる音楽鑑賞',
    '楽器の演奏', '邦楽(民謡、日本古来の音楽を含む)', 'コーラス・声楽',
    'カラオケ', '邦舞・おどり', '洋舞・社交ダンス', '書道', '華道', '茶道',
    '和裁・洋裁', '編み物・手芸', '趣味としての料理・菓子作り',
    '園芸・庭いじり・ガーデニング', '日曜大工', '絵画・彫刻の制作',
    '陶芸・工芸', '写真の撮影・プリント', '詩・和歌・俳句・小説などの創作',
    '趣味としての読書(マンガを除く)', 'マンガを読む', '囲碁', '将棋',
    'パチンコ', 'スマートフォン・家庭用ゲーム機などによるゲーム',
    '遊園地、動植物園、水族館などの見物', 'キャンプ'
]

# カテゴリ別の趣味・娯楽行動者率データを辞書型で作成
df3_dict = {
    cat: (
        df3.iloc[21, 3 + 8*i:11 + 8*i]
        .apply(lambda x: np.nan if x == '...' else x).to_list()
    )
    for i, cat in enumerate(cat3_list)
}

# 趣味・娯楽行動者率データをデータフレーム化(横持ち)
df3_wide = pd.DataFrame(
    df3_dict, index=pd.Series(years, name='year')).reset_index()

# 結果の表示
print('df3_wide.shape:', df3_wide.shape)
df3_wide.head()

【実行結果】

🍀🍀🍀

ブログの紹介


note で8つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!

1.のんびり統計

統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。
Python、EXCELのサンプルコードの配布もあります。

2.統計・データ分析とつながる

シリーズ「統計・データ分析とつながる」は、統計・データ分析との「つながり」を発掘して、コラム風に仕立てたブログシリーズです。
生成 AI の力を借りながら、統計・データ分析の入り口をイメージして、自由気ままに書きました。
たとえば…
・日常生活と統計のつながり
・統計検定2級からその先へのつながり
気楽にお読みいただけたら嬉しいです🍀

3.実験!たのしいベイズモデリング1&2をPyMC Ver.5で

書籍「たのしいベイズモデリング」・「たのしいベイズモデリング2」の心理学研究に用いられたベイズモデルを PyMC Ver.5で描いて分析します。
この書籍をはじめ、多くのベイズモデルは R言語+Stanで書かれています。
PyMCの可能性を探り出し、手軽にベイズモデリングを実践できるように努めます。
身近なテーマ、イメージしやすいテーマですので、ぜひぜひPyMCで動かして、一緒に楽しみましょう!

4.実験!岩波データサイエンス1のベイズモデリングをPyMC Ver.5で

書籍「実験!岩波データサイエンスvol.1」の4人のベイジアンによるベイズモデルを PyMC Ver.5で描いて分析します。
この書籍はベイズプログラミングのイロハをざっくりと学ぶことができる良書です。
楽しくPyMCモデルを動かして、ベイズと仲良しになれた気がします。
みなさんもぜひぜひPyMCで動かして、一緒に遊んで学びましょう!

5.楽しい写経 ベイズ・Python等

ベイズ、Python、その他の「書籍の写経活動」の成果をブログにします。
主にPythonへの翻訳に取り組んでいます。
写経に取り組むお仲間さんのサンプルコードになれば幸いです🍀

6.RとStanではじめる心理学のための時系列分析入門 を PythonとPyMC Ver.5 で

書籍「RとStanではじめる心理学のための時系列分析入門」の時系列分析をPythonとPyMC Ver.5 で実践します。
この書籍には時系列分析のテーマが盛りだくさん!
時系列分析の懐の深さを実感いたしました。
大好きなPythonで楽しく時系列分析を学びます。

7.データサイエンスっぽいことを綴る

統計、データ分析、AI、機械学習、Pythonのコラムを不定期に綴っています。
統計・データサイエンス書籍にまつわる記事が多いです。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。

8.Python機械学習プログラミング実践記

書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learnとPyTorchの教科書です。
よかったらぜひ、お試しくださいませ。

最後までお読みいただきまして、ありがとうございました。

いいなと思ったら応援しよう!

ネイピア DS 応援ありがとうございます。これからもがんばって記事を作成します!

この記事が参加している募集