普通線性回歸
線性回歸
線性模型如何解決非線性問題
建模方法論
線性模型為什麼能解決非線性問題。同時提醒讀者避免只從字面理解「線性」帶來誤會,即線性模型只能解決線性問題。
本章將線性模型定位和表述為在數學表達式上具有線性的表示方式的數學模型,包含普通線性回歸模型和廣義線性模型(線性支持向量機本章不進行講述)。
前者是傳統意義上的線性模型,後者則具有一定非線性的解決能力,尤其是當結合一定的特徵工程(如交叉衍生)後,所謂的線性模型同樣能處理非線性問題。
廣義線性模型是普通線性回歸模型的推廣,有多種變體或衍生,以處理更廣泛的現實問題。
本章將帶領讀者從普通的線性回歸自然遷移到廣義線性模型中常用的邏輯回歸模型(包含正則的邏輯回歸)和金融領域的評分卡模型,從而形成線性模型的知識體系。
普通線性回歸「回歸」( Regression)二字早在19世紀80年代 就已出現,由英國統計學家Francis Galton在研究父代和子代身高之間的關係時提出。
他發現在同一族群中,子代的平均身高介於其父代身高和族群平均身高之間。即高個子的父親,其兒子的身高有低於其父親的趨勢,而矮個子父親,其兒子的身高有高於其父親的趨勢。也就是說,子代的身高有向族群平均身高回歸的趨勢,這就是「回歸」最初的含義——回歸到均值,這就是回歸模型的本質。
回歸廣泛應用於自變量和因變量關係的探索和由自變量預測因變量的數據分析和統計中,常見的有3種應用場景:
用於描述自變量和因變量的因果關係,即數據產生的某種機制。得知自變量和因變量的關係後,應用新數據得到預測結果。在機器學習學科的框架下,構建模型的目的是預測,也就是第3點的描述。前2點則更多的是從統計學科的方向定義。
筆者認為正因為不同的應用場景導致了不同的研究方向,使得統計和機器學習產生了千絲萬縷的聯繫。
回歸建模中主要涉及的步驟有:樣本假設、參數估計、方差分析/顯著性檢驗/擬合優度檢驗等。但這些統計分析技術都屬於統計學範疇,所以在眾多的機器學習書籍中並不常介紹。
線性回歸一元線性回歸其模型的統計表達式為式:
式中𝑦𝑖表示因變量,是一個連續正態隨機變量;𝑥𝑖表示已知的自變量,可以是連續、離散或者兩者的組合,𝛽0和𝛽1表示未知的模型參數;𝜖𝑖表示隨機誤差項,也是一個隨機變量,並且設該隨機誤差項的期望為0;方差固定為𝜎2
該式的線性表現為如下兩個方面。
模型的自變量也是線性的:自變量是一次項,而不是指數等非線性的形式「注意:上述式子雖然和一元一次方程形式一致,但並不是函數關係而是統計關係。函數關係精確地表示了變量與變量之間關係,而統計關係則不表示精確關係,表示的是變量與變量的趨勢關係。統計機器學習所有模型表達式都是統計關係而不是單純的函數關係。請注意學習過程中數學到統計知識的遷移和轉化。
在現實中由於樣本有限,由樣本估計得到的參數稱為經驗參數,其回歸方程表示為經驗回歸方程,由經驗回歸方程得到的估計值和觀察值y的差表示為殘差。殘差的幾何意義表現為樣本到回歸線上的歐式距離。
回歸方程一般使用普通最小二乘法(Ordinary Least Square,OLS)求解,使得殘差平方和(Residual Sum of Squares,RSS)最小或均方誤差最小.
多元線性回歸由多個自變量描述的線性回歸模型稱之為多元線性回歸模型,其通用的模型表達式為(9-3)
式(9-3)和式(9-2)的相關參數含義基本一致,此時𝛽稱為偏回歸係數,表示對因變量的一種偏效應(控制其他自變量不變,自變量對因變量的淨效應)
將式(9-3)重寫成向量的形式(9-4):
如果在X矩陣中添加一項常數為1的列,那麼式(9-4)可以簡寫為式(9-5):
同一元線性回歸一樣,取條件期望後消去誤差項,就開始估計模型參數。在經典的統計模型開源包statmodel中,多元回歸的實現就是這樣的,示例如下:
import statsmodels.api as sm
np.random.seed(42)
# 兩個自變量x1和x2,生成100個樣本
nsample = 100
# 0-10等分100
x1 = np.linspace(0, 10, 100)
# 構造非相關變量!
x2 = x1**2
X = np.column_stack((x1, x2))
'''X 示例如下
array([[0.00000000e+00, 0.00000000e+00],
[1.01010101e-01, 1.02030405e-02],
[2.02020202e-01, 4.08121620e-02],
...
'''
# beta0,beta1,beta2
beta = np.array([1, 0.1, 10])
# 生成隨機正態分布的誤差
e = np.random.normal(size=nsample)添加beta0對應常數項1:
X = sm.add_constant(X)
'''X 加入常數項後
array([[1.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[1.00000000e+00, 1.01010101e-01, 1.02030405e-02],
...
'''人工構造觀察值y:
y = np.dot(X, beta) + e模型擬合:
model = sm.OLS(y, X)
results = model.fit()擬合結果:
results.params輸出如下,說明很好地接近了beta。
array([ 0.94812365, 0.04049094, 10.00733023])Skearn中的LinearRegression易用性更好,因為它無須人為加入常數項。請讀者自行實驗,並驗證兩者得到的結果是否一致.
線性回歸的假設工作中曾經有人質疑:「回歸模型都需要滿足數據的正態分布假設,很明顯現有的數據無法滿足,使用這樣的數據能得到有效的模型嗎?」。
本章後續的內容能夠給出答案。
在上述的一元回歸和多元回歸模型中使用最小二乘法求解參數時,確實要求有相關的假定:
1) 線性假設
2) 正交假設
3) 獨立同分布
4) 正態分布
以上分布說明,詳情請參考9.1.2
線性模型如何解決非線性問題線性模型能夠處理非線性問題嗎?
答案是肯定的,最直接的方式是對自變量進行非線性變換,如常見的對數變換、二次項變換、指數變換等,但現實世界並沒有這麼簡單,自變量進行哪種非線性變換後能使得與因變量線性相關呢?
現實世界在很多情況下是離散、定性的,而非像上述回歸描述的連續的或定量的
對於二分(0和1)或多分的因變量。處理這類二分變量最直接的方式是在小於0時限制為0,大於1時限制為1。這會產生一條Z字形的不連續折線:
a圖的目標變量的值域範圍理論上可以是正、負無窮,
b圖的目標變量的值域範圍在問題定義時限制為0和1.
如果繼續沿用線性回歸的分析方法,b圖散點圖的問題是,中間段接近線性,兩端則是非線性且當x取值足夠小或足夠大到y=0或y=1時,x的改變對因變量就不再有影響。
這樣的擬合回歸已經不滿足正態性和同方差的假設,具體表現為誤差(殘差)不再是正態分布,誤差也與X有了一定的關係(越靠近端點誤差越小),不再無關。
線性的概念和相加的性質無法得到滿足。
廣義線性模型和狹義線性模型廣義線性模型(Generalized Linear Models,GLM)由Nelder和Wedderburn於 1972年提出和發表 ,旨在解決普通線性回歸模型無法處理因變量離散,並發展能夠解決非正態因變量的回歸建模任務的建模方法。
在廣義線性模型的框架下,因變量不再要求連續、正態,當然自變量更加沒有特殊的要求。能夠對正態分布、二項分布、泊松分布、Gamma分布等隨機因變量進行建模.
通俗來說,廣義線性模型是普通線性模型的普遍化,如果把9.1節的普通線性回歸模型稱為狹義線性模型,那麼它就是廣義線性模型中因變量服從正態分布的一個特例
建模方法論1) 假設因變量服從某個隨機分布,如正態分布、二項分布;
2) 根據上述的假設分布構建因變量的轉換形式(參考下文的連結函數);
3) 對轉換後的隨機變量進行線性擬合。
隨機分布和指數分布族構建廣義線性模型前,需要對因變量做必要的隨機分布假設。例如邏輯回歸默認了隨機變量服從二項分布。
如上分布有一個共同的特點:它們都可以寫成一致的指數統計表達式,所以稱為指數分布族,其統一的概率分布為式(9-6)。此外指數分布族還包括負二項分布、Tweedie分布等。
其中𝜃稱為標準參數,是均值(𝜇)的一個函數,同理b(𝜃)也是均值的一個函數;𝜙為離散參數,衡量了y的方差;c則為觀察值y和離散參數的函數!
在指數分布族中,隨機變量的均值和方差分別為:μ=b'(θ) 和Var(y)=b''(θ)φ 。
另外,指數函數具有優良的數學特性,在參數估計過程中直接使用最大似然估計求解即可(連乘取對數似然後轉化為累加)。
連結函數線性模型擬合的是目標變量y的(條件)期望E(y),即y所服從分布的均值,可以得到如式(9-8)的變換,其中帶-1上標的表示反函數
我們把𝜃(即 )稱為連結函數(Link Function),它一般使用g(.) 來表示
連結函數連結了均值和線性表達式,從而構成了統一形式的廣義線性模型,如式(9-9)所示。
Statmodel實現了這些廣義線性模型:Binomial、Gamma、Gaussian、InverseGaussian、NegativeBinomial、Poisson、Tweedie。
例如二項分布的使用示例如下:
import statsmodels.api as sm
logit_model = sm.GLM(y, X, family=sm.families.Binomial())可以看出:
廣義線性模型是隨機變量期望變換後的線性模型或原期望的非線性模型。