
点全体の傾向を直線で表し、簡単な予測をします。
まず自分で予想してから、コードを動かしてみよう!

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

QUESTION まず考えよう
散布図の中央を通る『全体に合う線』は、どう決めればよいでしょう?
このグラフで分かること・読み方
- 回帰直線は、点全体のおおよその傾向を一本の直線で表します。
- 直線の傾き、点と直線のずれ、予測したい位置の順に読みます。
- 予測は観測した範囲の近くで使い、相関だけで因果関係を断定しないようにします。
PREDICT 実行前の予想
回帰直線が右上がりか右下がりか、傾きを予想してください。
TRY 実行して確かめよう
TRY
import numpy as np
import matplotlib.pyplot as plt
hours = np.array([1, 2, 2.5, 3, 4, 5])
scores = np.array([48, 55, 62, 65, 75, 82])
slope, intercept = np.polyfit(hours, scores, 1)
plt.scatter(hours, scores, label='データ')
plt.plot(hours, slope*hours + intercept, color='red', label='回帰直線')
plt.xlabel('勉強時間 (時間)')
plt.ylabel('得点')
plt.legend()
plt.grid(True)
plt.show()
print('傾き:', slope)
print('切片:', intercept)
グラフや数値のどこが予想と同じで、どこが違ったかを見つけましょう。
CHECK 結果を読み取ろう
傾きは場面上で何を意味しますか。すべての点が線上にありますか。
📖 考え方を確認する
傾きは勉強時間が1時間増えたときの得点の平均的な増加を表します。回帰直線は全点を通る線ではありません。
CHALLENGE 自分で直してみよう
4.5時間勉強した場合の予測値を計算し、散布図に予測点を追加してください。
CHALLENGE
import numpy as np
import matplotlib.pyplot as plt
hours = np.array([1, 2, 2.5, 3, 4, 5])
scores = np.array([48, 55, 62, 65, 75, 82])
slope, intercept = np.polyfit(hours, scores, 1)
# x=4.5の予測値を求めよう📖 解答例と解説
import numpy as np
import matplotlib.pyplot as plt
hours = np.array([1, 2, 2.5, 3, 4, 5])
scores = np.array([48, 55, 62, 65, 75, 82])
slope, intercept = np.polyfit(hours, scores, 1)
predicted = slope * 4.5 + intercept
plt.scatter(hours, scores, label='データ')
plt.plot(hours, slope*hours + intercept, color='red', label='回帰直線')
plt.scatter(4.5, predicted, color='green', s=80, label='予測')
plt.legend()
plt.grid(True)
plt.show()
print(f'4.5時間の予測得点: {predicted:.1f}点')予測は約79点です。ただし、勉強時間だけが得点の原因とは限らず、データ範囲外の予測にも注意します。
POINT
- 回帰直線は全体の傾向を表す
- 傾きと切片を場面で解釈する
- 予測にはずれや限界がある
NEXT 次の学びへ

応用問題で、問いから結論と注意点までをまとめます。
振り返り:今回使った命令、結果から分かったこと、この方法を使える場面を、それぞれ1文で書きましょう。