ロジカ式ロゴ

Python
データ分析

ページ一覧に戻る
応用問題1 散布図と回帰直線
渡辺先生

分析の問い、傾向、予測、限界を一続きで説明します。

まず自分で予想してから、コードを動かしてみよう!

そうた

結果だけでなく、そう考えた理由も説明してみます。

ひな

QUESTION まず考えよう

睡眠時間と集中度には、どの程度の関係があるでしょう?

PREDICT 実行前の予想

散布図の方向と、7時間での予測値をおおよそ予想してください。

TRY 実行して確かめよう

TRY
import numpy as np import matplotlib.pyplot as plt sleep = np.array([5, 5.5, 6, 6.5, 7, 7.5, 8]) focus = np.array([48, 55, 58, 66, 72, 76, 79]) slope, intercept = np.polyfit(sleep, focus, 1) plt.scatter(sleep, focus) plt.plot(sleep, slope*sleep + intercept, color='red') plt.xlabel('睡眠時間 (時間)') plt.ylabel('集中度') plt.grid(True) plt.show()
渡辺先生

グラフや数値のどこが予想と同じで、どこが違ったかを見つけましょう。

CHECK 結果を読み取ろう

傾向、予測できること、断定できないことを分けてください。

📖 考え方を確認する

右上がりの傾向があり、範囲内のおおよその集中度を予測できます。ただし睡眠が集中度を直接高めたとは断定できません。

CHALLENGE 自分で直してみよう

6.8時間での予測値を求め、結論を4文の回答の型でまとめてください。

CHALLENGE
import numpy as np sleep = np.array([5, 5.5, 6, 6.5, 7, 7.5, 8]) focus = np.array([48, 55, 58, 66, 72, 76, 79]) # 回帰式と6.8時間での予測値を求めよう

📖 解答例と解説

import numpy as np

sleep = np.array([5, 5.5, 6, 6.5, 7, 7.5, 8])
focus = np.array([48, 55, 58, 66, 72, 76, 79])
slope, intercept = np.polyfit(sleep, focus, 1)
predicted = slope * 6.8 + intercept

print(f'予測集中度: {predicted:.1f}')
print('全体として右上がりです。')
print('6.8時間では上の値が予測されます。')
print('ただし因果関係までは断定できません。')

コードの値だけでなく、傾向、予測、注意点を自分の言葉で説明して完成です。

POINT
  •  問いから分析を始める
  •  結果を文章で説明する
  •  確実に分かることと限界を分ける

NEXT 次の学びへ

渡辺先生

次は一次関数を使って自分の計画を改善します。

振り返り:今回使った命令、結果から分かったこと、この方法を使える場面を、それぞれ1文で書きましょう。