
212
■
15
章 重回帰分析
が多いユーザと少ないユーザとで、労働時間の持つ影響が異なることは十分にありえ
ます。このモデルはその可能性を捉えていません。これを扱う方法の
1
つは、新しい
変 数 と し て「 友 達 の 数 」と「 労 働 時 間 」の 積を追加することです。これにより、友達の数
が増えるのに従い、労働時間の係数を増加させる(または減少させる)ことが可能にな
ります。
または、ある時点までは友達が増えるごとにサイトの使用時間も増えるけれど、そ
れ以上に友達が増えると使用時間が減るという場合も考えられます(おそらく多すぎる
友達に圧倒されているのかもしれません)。新しい変数として友達の数の二乗をモデル
に追加することで、この状況が把握できると考えられます。
変数の追加を考えるなら、その係数が重要であるか否かを気にしなければなりませ
んが、積、対数、二乗、累乗の組み合わせ方法には制限がありません。
15.5
適合度
先ほどの結果の
R
2
をもう一度計算してみましょう。
from scratch.simple_linear_regression import total_sum_of_squares
def multiple_r_squared(xs: List[Vector], ys: Vector, beta: Vector) -> float:
sum_of_squared_errors = sum(error(x, y, beta) ** 2
for x, y in zip(xs, ys)) ...