線形回帰の計算方法
線形回帰、平易に言うと
線形回帰は、2つの量の間の関係をモデル化する方法です:
- x: 入力(独立変数)
- y: 出力(従属変数)
このモデルは、xが変化すると、yは平均して直線的なパターンで変化すると仮定しています。「ほぼ」は重要です:データはほとんどの場合、正確な直線に従いませんので、モデルには誤差項が含まれます。
最も一般的なバージョンは普通最小二乗法(OLS)で、予測誤差の全体的な合計をできるだけ小さくする直線を選択します。
計算:モデルと式
線形回帰モデルは次のように書かれます:
[ \hat{y} = a + b x ]
ここで:
- (\hat{y}) は y の予測値
- (a) は 切片(x = 0 のときの予測 y)
- (b) は 斜率(x が 1 増加すると (\hat{y}) がどれだけ変化するか)
a と b を計算するには、OLS は 残差の二乗和を最小化するという考えを使用します。
残差と最小二乗の目的
データポイント ((x_i, y_i)) について、(i=1,2,\dots,n):
- 残差:(e_i = y_i - \hat{y}_i)
- 残差の二乗和:(\sum_{i=1}^{n} e_i^2)
OLS は、その和を最小化する (a) と (b) を選択します。
斜率 (b)
斜率の広く使用される計算形式は次の通りです:
[ b = \frac{\sum_{i=1}^{n}(x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^{n}(x_i-\bar{x})^2} ]
ここで:
- (\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i)
- (\bar{y} = \frac{1}{n}\sum_{i=1}^{n} y_i)
直感:分子は x と y の共動き(x の偏差が y の偏差とどのように一致するか)です。分母は x の平均周りの広がりです。
切片 (a)
(b) が分かると、切片はフィットした直線が点 ((\bar{x},\bar{y})) を通るという要件から導かれます:
[ a = \bar{y} - b\bar{x} ]
必要なデータ(そして真である必要があること)
単純な線形回帰を計算するには、次のものが必要です:
- (i=1\ldots n) のペア観測値 ((x_i, y_i)) のセット。
- x に十分な変動があり、(\sum (x_i-\bar{x})^2 \neq 0)。x のすべての値が同じ場合、斜率は未定義です。
- 使用ケースにとって x と y の明確な意味。モデルは常に予測を生成しますが、関係が因果的であることを自動的に教えてくれるわけではありません。
「直線フィット」の背後にある仮定
OLS の計算には、解釈に影響を与える仮定が付随します:
- 線形 (a + bx) はデータパターンの適切な近似です。
- 誤差は通常、x と無関係とみなされます(より正確には、x が与えられたときの期待残差はしばしば 0 と仮定されます)。
- 残差には系統的な構造が現れてはなりません。そうでない場合、直線は悪い選択かもしれません。
これらはデータの振る舞いについての仮定であり、未来についての仮定ではありません。
小さな例で行うチェック(特別なソフトウェアなし)
3つのポイントがあると仮定します:
((x_1,y_1),(x_2,y_2),(x_3,y_3))。回帰線を計算するには:
- (\bar{x}) と (\bar{y}) を計算します。
- 分子を計算します:
(\sum (x_i-\bar{x})(y_i-\bar{y}))。 - 分母を計算します:
(\sum (x_i-\bar{x})^2)。 - 分母 ÷ 分子 で (b) を計算します。
- (a = \bar{y} - b\bar{x}) を計算します。
確認するには、各フィット値 (\hat{y}_i = a + b x_i) を計算し、残差 (e_i = y_i-\hat{y}_i) を計算します。残差が大きい場合や、ランダムに散らばるのではなく曲線パターンを示す場合、単純な線形形式がデータに合っていない可能性があります。
制限と失敗モード
計算は単純ですが、データがモデルの背後にある考えに反する場合、線形回帰は誤解を招くことがあります。
1) 非線形の関係
真の関係が曲線を描く場合(例えば、上昇してから下降する場合)、直線はその振る舞いを平均します。出力は依然として二乗誤差を最小化する可能性がありますが、重要な構造を隠す可能性があります。
2) 外れ値が支配する
目標で誤差が二乗されるため、極端なポイントは (a) と (b) に強く影響を与える可能性があります。単一の異常な観測はフィットした直線を大きくシフトさせる可能性があります。
3) x は変動しなければならない
x に広がりがない場合(すべての x 値が同じ)、斜率の公式の分母はゼロになります。その場合、意味のある斜率を計算できません。
4) 「良いフィット」は将来の有用性を意味しない
歴史的なパターンは変化する可能性があります。過去のデータにフィットした回帰は、そのデータセットでデータがどのように振る舞ったかを説明しますが、同じパターンが持続することを証明するものではありません。
確認:結果を独立して確認する方法
計算された線形回帰を独立して確認するには、次のようにできます:
- (\bar{x}) と (\bar{y}) を再計算します。
- 偏差形式を使用して斜率 (b) を再計算します。
- 切片 (a = \bar{y}-b\bar{x}) を再計算します。
- フィット値 (\hat{y}_i) と残差 (e_i) を生成します。
- 残差を検査します:
- ほとんどが小さいですか?
- ランダムに散らばっているように見えますか、それとも系統的なパターンを示していますか?
計算値のいずれかが再計算と一致しない場合、入力の不一致(異なる x/y ペアリング、単位混同、または誤った順序)が問題の可能性が高く、回帰式ではありません。
次の質問を明確にする
線形回帰を適用または解釈する前に、x が何を表し、そのデータに対して直線近似が合理的かを明確にすることが役立ちます。さらに進めたい場合は、線形回帰を相関や異なる種類の回帰(例:予測変数が多いモデル)などの関連するアイデアと比較することで、計算にどのような変更が生じ、どの部分が同じままかを明確にすることができます。