一般迴歸模型中
迴歸的核心任務就是要通過樣本信息來估計總體迴歸函數
一元線性迴歸模型:
一元線性迴歸模型假設x是一維的,即只考慮一個因素對y的影響,模型爲
y=+x+μ, E (μ|x)= 0
其中, 爲迴歸係數。
可以表示爲當x = 0,時y的期望值;可以理解爲x每增加一個單位,y平均增加個單位
案例:
假設家庭每月消費支出與每月可支配收入之間的關係爲:
Spending=+*Income+μ
表1.1 家庭消費支出與可支配收入的一個隨機樣本 單位: 元
X |
800 |
1100 |
1400 |
1700 |
2000 |
2300 |
2600 |
2900 |
3200 |
3500 |
Y |
638 |
935 |
1155 |
1254 |
1408 |
1650 |
1925 |
2068 |
2266 |
2530 |
使用OLS估計迴歸參數
樣本回歸模型可表示爲:
其中,爲迴歸參數的估計,爲下的擬合值,稱爲殘差。
OLS估計的思想是通過最小化殘差來對迴歸係數進行估計,即:
推導過程:
python實現
不調用package:
def linear_OLS(x_arr,y_arr):
x_avg= x_arr.mean()
y_avg = y_arr.mean()
s_xy = (x-x_avg)*(y-y_avg).T
s_x = (x-x_avg)*(x-x_avg).T
beta_1 = s_xy.sum()/s_x.sum()
beta_0 = y_avg-beta_1*x_avg
return beta_1,beta_0
x = np.array([800,1100,1400,1700,2000,2300,2600,2900,3200,3500])
y = np.array([638,935,1155,1254,1408,1650,1925,2068,2266,2530])
beta_1,beta_0 = linear_OLS(x,y)
print('beta_1:',beta_1,'beta_0:',beta_0)
result:
beta_1:0.67,beta_0:142
調用package:
import statsmodels.api as sm
x = np.array([800,1100,1400,1700,2000,2300,2600,2900,3200,3500])
y = np.array([638,935,1155,1254,1408,1650,1925,2068,2266,2530])
est = sm.OLS(y, sm.add_constant(x)).fit()
est.summary()
result: