#61

単回帰(最小二乗法で直線を当てはめる)

データに最もよく合う直線 y=ax+b を求め、予測に使います。

解説

散布図の点の並びに、最もよく合う1本の直線を引くのが単回帰分析です。直線 y = ax + b の傾き a と切片 b を、誤差の2乗の合計が最小になるように決める方法を最小二乗法といいます。 公式: - a = (n・Σxy − Σx・Σy) / (n・Σx² − (Σx)²) - b = (Σy − a・Σx) / n 求めた直線を使えば、データにないxの値に対する予測もできます。

書き方

・sum(xs) / sum(ys) — x・y の合計(Σx, Σy)。
・sum(x * y for x, y in zip(xs, ys)) — Σxy。sum(x * x for x in xs) — Σx²。
・最小二乗法: a = (n·Σxy - Σx·Σy) / (n·Σx² - (Σx)²)、b = (Σy - a·Σx) / n。
・求めた直線 y = ax + b で a*x+b として予測値を計算。f"{a:.3f}" で整形。

書いて動かす

この回の課題

データ対に最もよく合う直線 y=ax+b を最小二乗法で求め、各点の予測値と、データにない x=10 の予測も表示しよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。