単純線形回帰分析
単純線形回帰は、2つの量的変数間の関係を分析するために用いられる統計的手法です。予測対象となる変数は従属変数または応答変数と呼ばれ、予測を行うために用いる変数は独立変数または予測変数と呼ばれます。単純線形回帰では、これら2つの変数間の関係を最もよく表す直線を見つけようとします。
単純線形回帰の基本概念
単純線形回帰は、従属変数 \(Y\) と独立変数 \(X\) の間に線形関係が存在するという仮定に基づいています。単純線形回帰モデルの一般的な形式は次のとおりです。
\[ Y = \beta_0 + \beta_1 X + \epsilon \]
ディ・マナ:
– \( Y \) は従属変数です。
– \( X \) は独立変数です。
– \( \beta_0 \) は切片であり、\(X = 0\) のときの \(Y\) の値です。
– \( \beta_1 \) は傾きまたは勾配であり、\(X\) が 1 単位変化するごとに \(Y\) が平均的に変化する量です。
– \( \epsilon \) は、\(X\) では説明できない \(Y\) の変動を表す誤差項または残差項です。
単純線形回帰の目的は、パラメータ \(\beta_0\) と \(\beta_1\) を推定し、モデルを使用して \(X\) の値に関連付けられた \(Y\) の値を予測することです。
最小二乗法
単純な線形回帰モデルを当てはめる最も一般的な方法の1つは、最小二乗法です。この方法は、実際の観測値とモデルによって予測された値との間の垂直偏差の二乗和を最小化することを目的としています。n個の観測値があり、それぞれペア \((x_i, y_i)\) \(i = 1, 2, …, n\) から構成されているとします。最小化すべき関数は次のとおりです。
\[ S(\beta_0, \beta_1) = \sum_{i=1}^{n} (y_i – (\beta_0 + \beta_1 x_i))^2 \]
この関数を最小化する \(\beta_0\) と \(\beta_1\) を見つけるには、\(S(\beta_0, \beta_1)\) を各パラメータに関して偏微分し、これらの微分値をゼロに設定します。数学的な計算は次のように簡略化できます。
\[ \beta_1 = \frac{\sum_{i=1}^{n} (x_i – \bar{x})(y_i – \bar{y})}{\sum_{i=1}^{n} (x_i – \bar{x})^2} \]
\[ \beta_0 = \bar{y} – \beta_1 \bar{x} \]
ディ・マナ:
– \(\bar{x}\) は \(X\) の平均です
– \(\bar{y}\) は \(Y\) の平均です
パラメータ \(\beta_0\) と \(\beta_1\) を取得した後、単純な線形回帰モデルを使用して、\(X\) の各値に対する \(Y\) の値を予測できます。
単純線形回帰における前提条件
妥当で信頼性の高い結果を得るためには、単純線形回帰はいくつかの前提条件を満たす必要があります。
1. 線形性:従属変数と独立変数の関係は線形でなければならない。
2. 独立性:観測結果は互いに独立していなければならない。
3. 等分散性: 残差変動は、独立変数の値の範囲全体にわたって一定でなければなりません。
4. 残差の正規性:残差(誤差)は正規分布に従わなければならない。
これらの前提条件が満たされない場合、単純な線形回帰モデルの結果は信頼性が低く、正確な予測を行うことができない可能性があります。
回帰モデルの評価
単純線形回帰モデルの予測精度を評価する一つの方法は、決定係数(R²)を用いることです。決定係数は、従属変数の変動のうち、独立変数の変動によって説明できる割合を示します。
\[ R^2 = \frac{\sum_{i=1}^{n} (\hat{y}_i – \bar{y})^2}{\sum_{i=1}^{n} (y_i – \bar{y})^2} \]
ディ・マナ:
– \(\hat{y}_i\) は \(Y\) の予測値です。
– \(y_i\) は \(Y\) の実際の値です。
– \(\bar{y}\) は \(Y\) の値の平均です。
R²値は0から1の範囲をとります。R²値が1に近いほど、そのモデルは従属変数の変動の大部分を説明できることを示します。
プログラミング言語での実装
単純な線形回帰を実装するには、さまざまな統計ソフトウェアやプログラミング言語を使用できます。以下は、`scikit-learn`ライブラリを使用したPythonでの実装例です。
「パイソン
npとしてnumpyをインポートする
matplotlib.pyplotをpltとしてインポートする
sklearn.linear_modelからimportLinearRegression
from sklearn.metrics import mean_squared_error, r2_score
Rescale データ
X = np.array([[1], [2], [3], [4], [5]]).astype(np.float64)
y = np.array([1.5, 3.6, 3.5, 2.9, 5.5]).astype(np.float64)
モデル
モデル = LinearRegression ()
モデル.フィット (X, y)
予測
y_pred = モデル.予測 (X)
係数
beta_0 = model.intercept_
beta_1 = model.coef_[0]
print(f'切片: {beta_0}')
print(f'傾き: {beta_1}')
print(f'平均二乗誤差: {mean_squared_error(y, y_pred)}')
print(f'決定係数 (R^2): {r2_score(y, y_pred)}')
データプロットと回帰直線
plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
「 `
上記の例では、まず必要なライブラリをインポートし、データ \(X\) と \(Y\) を定義した後、`scikit-learn` の `LinearRegression` オブジェクトを使用してデータにモデルを適合させます。モデルが適合したら、予測を行い、係数、平均二乗誤差、決定係数を計算します。最後に、データと回帰直線をプロットします。
結論
単純線形回帰は、2つの量的変数間の関係を説明するために使用される強力な統計分析ツールです。線形性、独立性、等分散性、正規性に関するいくつかの基本的な仮定の下で、独立変数の値に基づいて従属変数の値を予測できます。最小二乗法は、回帰直線を当てはめ、最適なパラメータを決定する効果的な方法を提供します。決定係数(R2)によるモデル評価は、モデルの性能を把握するのに役立ちます。
単純線形回帰には、扱う変数が2つに限られることや、満たさなければならない前提条件があるといった制約はあるものの、統計学やデータ分析において重要な基礎となる手法であり、より複雑な手法に進む前に、変数間の関係を理解するための第一歩としてしばしば用いられる。