回歸分析是一個古老的話題。一百多年前,英國的統計學家高爾頓(F. Galton,1822-1911)和他的學生皮爾遜(K. Pearson,1857-1936)在研究父母和其子女身高的遺傳關係問題中,統計了1078對夫婦的平均身高以及他們的一個成年兒子的身高數據。
他們將孩子的身高作為自變量
「這個結果看起來是違背直覺的。因為統計的結果表明,高個子父母的子女有低於父母身高的趨勢;而矮個子的子女則有高於父母的趨勢。高爾頓解釋說,自然界存在某種約束力將人的身高向某個平均數靠攏——或者說是回歸——也即是統計學上回歸的涵義。
本期我們的主題便是通過R來解決線性回歸分析中的若干問題。
2 基礎回顧回歸的概念來源於實際問題,那麼現在我們所說的線性回歸分析問題具體指的是什麼呢?一般說來,如果我們研究的問題中的
那麼我們就說這是一個線性回歸問題,其中
「注意,線性回歸問題的確定並不是通過自變量的形式,而是問題中待估計的未知參數最高次都為一次且關於未知參數呈線性關係。如
通常在線性回歸中估計未知參數方法是最小二乘法(OLS),而為了保證估計值能夠很好的解釋模型,我們又有如下前提條件:
這些條件又被稱為高斯—馬爾可夫條件,它們保證了在經典線性回歸中最小二乘估計的優越性。
3 求解線性回歸模型函數3.1 極大似然法最小二乘法和極大似然法都可以用來求解線性回歸模型,我們在往期文章中討論過最小二乘法,這裡對似然法進行簡單介紹。
假設我們得到下面一組觀測數據:
那麼根據高斯-馬爾可夫假設,我們可以得到殘差估計的似然函數為
「這個式子的成立還需要假設殘差分布的均值為
如何通過上面的函數得到係數的估計值呢?極大似然的思想便是,讓這些估計值使得似然函數達到最大! 這個想法很樸素:每個觀測數據隨機且互相獨立,我們一次搜集便得到眼前的數據,那麼自然而然認為這些數據組合出現的概率是最大的。
不過,數據已經搜集好便不能改動。我們自然想到,係數的估計值便是讓這些數據對應的概率可能性最大——也即是似然函數最大。
現在假裝大家已經理解了極大似然的原理,下面我們來求解它。直接最大化不太可行,我們通常對似然函數取對數得到對數似然函數
然後再分別對各個參數進行優化。限於篇幅,不再贅述。
3.2 R求解線性回歸模型我們可以利用現有軟體進行模型求解。在R中求解線性回歸問題的最基本函數就是lm(),其格式為:
myfit <- lm(formula, data)
# formula 是要擬合的模型形式,用一個R公式表示
# data 就是模型的數據構成的數據框下面我們解釋一下formula具體的形式,首先看下表總結的formula中常用的符號。
如果自變量為
那麼formula可以寫成:
y ~ x1 + x2 + x3
# 或者為 y ~ .其他形式的模型formula的表達式還請讀者自行琢磨。
當模型擬合成功後,我們使用summary()函數來得到擬合的具體結果。而其他常用的獲取線性回歸模型擬合結果的函數如下表所示。
4 實例分析
下面我們將用實例具體介紹lm()函數的使用方法。
4.1 簡單線性回歸本例中我們使用基礎安裝中的數據集women數據,它記錄了15個年齡在30~39歲間女性的身高和體重信息,我們現在來探究體重關於身高的關係。
myfit <- lm(weight~height, data = women)
summary(myfit) # 展示擬合詳細結果程序的輸出結果如下所示程序的輸出結果如下所示
無交互項模型輸出結果
這裡主要給讀者解釋這麼幾項指標的含義:
Residuals:體重預測值和真實值之差的統計信息,從左到右分別為最小值、下四分位數、中位數、上四分位數和最大值。Coefficients:第一列(Estimate)中(Intercept)對應的數值為截距項,height對應的即為身高變量前的估計係數。Multiple R-squared:介於0-1之間,越接近1說明線性關係越強。p-value:模型的F檢驗統計量的p值,值越小說明模型越可靠。因此本例中體重和身高的回歸方程為:
根據R方(Multiple R-squared)和p值(p-value)可知模型是可靠的。此外,我們可以作圖觀察最終的擬合結果。
無交互項擬合圖4.2 具有交互項的線性回歸
繼續考慮上例,如果模型中存在一個交互項比如一個平方項,那麼即有:
myfit <- lm(weight~height + I(height^2), data = women)
summary(myfit) # 展示擬合詳細結果程序的輸出結果如下所示。
有交互項模型輸出結果
可以看到通過比較R方、p值,添加了平方項的線性模型效果更好。我們同樣可以做出相應的圖像。
有交互項擬合圖5 結語本期我們主要介紹了R中線性回歸分析的簡單操作方法。不過,這裡僅僅涉及線性回歸分析的冰山一角,關於線性回歸問題中的回歸診斷和異常點的判斷等內容,限於篇幅這裡就不做介紹了。有興趣的讀者可以學習《R in action》第8章中關於回歸的講解。