我的記錄,大部分摘自機率論與數理統計python
一元線性迴歸模型數據結構
設y與x間有相關關係,稱x爲自變量,y爲因變量,咱們只考慮在x是可控變量,只有y是隨機變量,那麼他們之間的相關關係能夠表示爲函數
y=f(x)+εspa
其中ε是隨機偏差,通常假設ε~N(0,σ2)。因爲ε是隨機變量,致使y也是隨機變量。code
進行迴歸分析首先是迴歸函數形式的選擇。一般採用畫散點圖來進行選擇。blog
有一份合金鋼強度y與碳含量x的數據表class
數據散點圖以下import
能夠看出,數據點基本在一條直線上,說明兩個數據有線性相關關係,能夠表示爲變量
y=β0+β1x+εbfc
這是y關於x的一元線性迴歸的數據結構,其中β0,β1
分別是截距和斜率。 ε~N(0,σ2)
則迴歸方程爲
迴歸係數的最小二乘法估計。
咱們首先令誤差平方和
Q(β0,β1)=∑ni=1(yi-β0-β1xi)2
最小二乘法就是儘可能使Q(β0,β1)=∑ni=1(yi-β0-β1xi)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
到此結束