一元線性回歸的最小二乘法詳解及代碼。


個人記錄,大部分摘自概率論與數理統計

一元線性回歸模型

設y與x間有相關關系,稱x為自變量,y為因變量,我們只考慮在x是可控變量,只有y是隨機變量,那么他們之間的相關關系可以表示為

y=f(x)+ε

其中ε是隨機誤差,一般假設ε~N(0,σ2)。由於ε是隨機變量,導致y也是隨機變量。

 

進行回歸分析首先是回歸函數形式的選擇。通常采用畫散點圖來進行選擇。

有一份合金鋼強度y與碳含量x的數據表

數據散點圖如下

可以看出,數據點基本在一條直線上,說明兩個數據有線性相關關系,可以表示為

y=β01x+ε

這是y關於x的一元線性回歸的數據結構,其中β0,β1

分別是截距和斜率。 ε~N(0,σ2)

則回歸方程為

回歸系數的最小二乘法估計。

我們首先令偏差平方和

Q(β0,β1)=∑ni=1(yi01xi)2

最小二乘法就是盡量使Q(β0,β1)=∑ni=1(yi01xi)2=0,分別對β0,β1求偏導

整理后可知方程組 1

 

 如無特殊聲明Σ均表示Σni=1,則有

解方程組1 可知

 

 python代碼

 1 import numpy as np
 2 #導入回歸數據
 3 x=np.array([0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.2,0.21,0.23])
 4 y=np.array([42,43,45,45,45,47.5,49,53,50,55,55,60])
 5 #x求和
 6 sx=sum(x)
 7 # y求和
 8 sy=sum(y)
 9 #參數個數
10 n=len(x)
11 #x的平均值
12 mx=np.mean(x)
13 #y的平均值
14 my=np.mean(y)
15 #∑(xi)^2,所有xi的平方和
16 sx2=sum(x*x) 
17 #∑(yi)^2所有yi的平方和
18 sy2=sum(y*y) 
19 #∑xiyi 所有xiyi的和
20 sxy=sum(x*y)
21 #lxx
22 lxx=sx2-1/n*pow(sx,2)
23 #lxy
24 lxy=sxy-1/n*sx*sy
25 #lyy
26 lyy=sy2-1/n*pow(sy,2)
27 #β1
28 β1=lxy/lxx
29 #β0
30 β0=my-mx*β1
31 
32 #結果  y=28.08+132.90

到此結束

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM