A. 線性回歸(Linear Regression)模型詳解(含python 代碼)
線性回歸模型詳解與Python代碼示例
線性回歸是一種統計學方法,用於描述一個或多個自變數與因變數之間的線性關系。其模型定義如下:
\[
y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_mx_m + \epsilon
\]
其中:
- $y$ 是因變數
- $x_1, x_2, ..., x_m$ 是自變數
- $\beta_0, \beta_1, ..., \beta_m$ 是回歸系數
- $\epsilon$ 是誤差項
線性回歸模型的假設包括:
1. **線性關系**:因變數與自變數之間應滿足線性關系。
2. **同方差性**:誤差項的方差在自變數變化時保持一致。
3. **獨立觀察**:樣本數據獨立採集。
4. **無或微弱共線性**:自變數之間不存在強相關性。
5. **殘差獨立且服從正態分布**:殘差應服從均值為0的正態分布且相互獨立。
分類:
- 當$m=1$時,稱為簡單線性回歸。
- 當$m>1$時,稱為多元線性回歸。
簡單線性回歸模型定義為:
\[
y = \alpha + \beta x + \epsilon
\]
其中:
- $y$ 是因變數
- $x$ 是自變數
- $\alpha$ 是截距(或常數項)
- $\beta$ 是斜率(或回歸系數)
參數估計採用最小二乘法。目標是求解使SSE(誤差平方和)最小的$\alpha$和$\beta$。通過求導並解方程組,可以得到最小二乘估計:
\[
\alpha = \bar{y} - \beta \bar{x}
\]
\[
\beta = \frac{\sum(x-\bar{x})(y-\bar{y})}{\sum(x-\bar{x})^2}
\]
其中,$\bar{x}$和$\bar{y}$分別是$x$和$y$的均值。
統計檢驗通過t-test進行,計算出$t$值和P值來評估$\beta$的顯著性。
示例代碼實現簡單線性回歸:
python
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf
# 示例數據
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
# 添加常數項
x = sm.add_constant(x)
# 模型擬合
model = smf.ols('y ~ x', data={'x': x, 'y': y})
result = model.fit()
# 輸出回歸系數
print(result.params)
# 繪制回歸線
plt.scatter(x[:,1], y)
plt.plot(x[:,1], result.params[0] + result.params[1]*x[:,1], 'r')
plt.show()
以上示例展示了如何使用Python中的`statsmodels`庫實現簡單線性回歸。對於多元線性回歸的詳細內容將在後續文章中介紹。