天天看點

回歸分析:一進制線性回歸模型 白話解析與案例實作一進制線性回歸模型

線性學習

回歸分析是研究自變量x與因變量y的關系的方法。

生活中經常會有類似的關系,例如工齡與工資的關系、房屋面積與價格的關系等等。

一進制線性回歸模型

隻是涉及一個自變量的關系,可以用一進制線性方程來表示:

y = a x + b y=ax+b y=ax+b

從統計的角度來觀察,生活實際案例中的樣本點存在随機擾動 ϵ \epsilon ϵ,是以會有一定的偏差。是以一進制線性回歸模型可以表示為:

y = β 1 x + β 0 + ϵ y=\beta1x+\beta0 +\epsilon y=β1x+β0+ϵ

此時, β 1 、 β 2 \beta1、\beta2 β1、β2都是未知的,随機擾動項 ϵ \epsilon ϵ也是未知的。

我們想要用統計學方法估計出真實的、不可觀測的一進制線性回歸模型,利用樣本資料估計出 β 1 , β 0 \beta1,\beta0 β1,β0 ,将它們的估計值記為 β ^ 1 , β ^ 0 \hat{\beta}1,\hat{\beta}0 β^​1,β^​0,由此得出的相應的y的估計值為$ \hat{y}$,用經驗回歸方程表示:

$ \hat{y}=\hat{\beta}1 x+\hat{\beta}0 $

以下列散點圖為例,我們先找到一個線性回歸方程,盡可能更好的去拟合這些樣本點,即:盡可能找到誤差最小的方程去表示這個一進制線性回歸模型。這個過程我們可以使用最小二乘估計,也可以使用極大似然估計等。

回歸分析:一進制線性回歸模型 白話解析與案例實作一進制線性回歸模型

一進制線性回歸模型python的實作過程

我們以方程y=0.1x+0.5為依據,加入噪聲,生成了100個随機樣本,經過估計得到一進制線性回歸模型參數如下

  • 歸方程的斜率為: [[0.09154158]]
  • 回歸方程的截距為: [0.5006561]
  • 回歸方程為:y = [[0.09154158]] *x + ( [0.5006561] )
import numpy as np
import pandas as pd
import  matplotlib.pyplot as plt #類似 MATLAB 中繪圖函數的相關函數

#設定随機數種子,便于二次實驗複現
np.random.seed(1)
count=100
data=[]
for i in range(count):
    x1=np.random.normal(0.00,0.55)
    y1=x1*0.1+0.5+np.random.normal(0.00,0.03)
    data.append([x1,y1])

data =pd.DataFrame(data)

x_data=np.array(data[0])
y_data=np.array(data[1])

#繪制散點圖
plt.scatter(x_data,y_data,c='r')
plt.show()

from sklearn.linear_model import LinearRegression
regr = LinearRegression()

x_data=x_data.reshape(-1,1)
y_data=y_data.reshape(-1,1)
#拟合方程
regr.fit(x_data,y_data)

#可視化
plt.scatter(x_data,y_data,c='r')
plt.plot(x_data,regr.predict(x_data),color='black')
plt.show()
           
回歸分析:一進制線性回歸模型 白話解析與案例實作一進制線性回歸模型

繼續閱讀