簡介
迴歸分析是一種應用廣泛的數理統計方法,它是研究變量與變量之間的相關關係,這種關係大致分爲兩類:確定性關係(能用函數精確描述)和非確定性關係(不能用函數描述)。
變量間的非確定性關係稱爲相關關係。
在迴歸分析中的相關關係主要分爲兩類:一類是隨機變量之間的相關關係,另一類是隨機變量和普通變量間的相關關係,本文只研究後一類。
隨機變量稱爲因變量或響應變量,只能觀測但不能控制;普通變量稱爲自變量或解釋變量或預報變量或設計變量,是可控變量,根據需要預先確定。
本文只研究一個因變量一個自變量之間的線性關係,即爲一元線性迴歸分析。
迴歸分析的主要任務是通過樣本來估計迴歸函數y_hate(x),並利用此估計進行預測和控制。
實例
爲研究溫度x對於某個化學過程生產量y的影響,收集到的數據如表所示:
x | -5 ,-4,-3,-2,-1,0,1,2,3,4,5 |
---|---|
y | 1,5,4,7,10,8,9,13,14,13,18 |
對上數據進行迴歸分析。
打散點圖
首先我們要把數據的散點圖打出來,看看數據的大體分佈,這對我們下面的模型建立很重要!
首先建立數組x和數組y來容納數據然後使用plot函數繪製散點圖
x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5)
y=c(1,5,4,7,10,8,9,13,14,13,18)
plot(x,y)
結果如圖示:
能夠看出,自變量x和響應變量y之間具有明顯的線性關係,即有y=a+bx,我們下面建立線性迴歸分析模型。
線性迴歸模型建立
使用函數lm()建立迴歸分析模型,公式y~1+x代表用x和常數去擬合y,1代表常數,x代表自變量x的一次項,要是有x的N次項,其形式爲“I(x^N)”(其中I是大寫的i),不能直接寫括號內的公式!!!將回歸模型命名爲test。
x=c(-5,-4,-3,-2,-1,0,1,2,3,4,5)
y=c(1,5,4,7,10,8,9,13,14,13,18)
plot(x,y)
test=lm(y~1+x)
test
其結果如下:
Call:
lm(formula = y ~ 1 + x)
Coefficients:
(Intercept) x
9.273 1.436
即係數a的估計值爲9.273,係數b的估計值爲1.436
使用abline()函數繪製迴歸直線
abline(test)
得到
可以看出直線對點的擬合效果不錯。
檢驗
數學的東西是不能只用眼睛去看的,我們還要用數學工具去檢驗我們得到的模型是否正確
方差檢驗:迴歸的顯著性檢驗,衡量方程是否建立準確,也就是衡量本例究竟是不是一元線性迴歸模型。(F檢驗)
anova(test)
結果爲
Analysis of Variance Table
Response: y
Df Sum Sq Mean SqF F value Pr(>F)
x 1 226.945 226.94 96.18 4.207e-06 ***
Residuals 9 21.236 2.36
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
x:迴歸平方和(SSE)
Residuals:殘差平方和(SSR)
Df:自由度
Sum Sq:(sum of squares)方差總和
Mean Sq:(mean of squares)平均方差,即方差總和除以對應自由度
F value:F檢驗的值
Pr(>F):F檢驗的P值,當P值小於顯著性水平α的時候,模型效果顯著
”***":代表模型效果非常顯著,在“Signif. codes”中給出瞭解釋
迴歸係數檢驗:衡量方程係數是否可靠(t檢驗)
summary(test)
結果爲
Call:
lm(formula = y ~ 1 + x)
Residuals:
Min 1Q Median 3Q Max
-2.0182 -1.1818 0.4182 1.1636 2.1636
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.2727 0.4632 20.021 9.00e-09 ***
x 1.4364 0.1465 9.807 4.21e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.536 on 9 degrees of freedom
Multiple R-squared: 0.9144, Adjusted R-squared: 0.9049
F-statistic: 96.18 on 1 and 9 DF, p-value: 4.207e-06
Residuals:爲殘差水平的五數概括,通過它我們可以瞭解殘差的大概水平。
(Intercept):估計值a,即估計截距
x :估計值b,即估計斜率
Estimate:估計值
Std. Error:(standard error)估計的標準差的估計
t value:檢驗統計量t的值
Pr(>|t|):檢驗的P值,當P值小於顯著性水平α的時候,模型效果顯著
”***":代表模型效果非常顯著,在“Signif. codes”中給出瞭解釋
Residual standard error: 1.536 on 9 degrees of freedom:9自由度的殘差標準差是1.536
Multiple R-squared:擬合優度,結果越接近於1,x和y的線性相關度越大;越接近於0,x和y的線性相關度越小。必須指出的是,當擬合優度爲0時候只能說明x和y不是線性關係,但是x和y還可能是其他類型的相關關係
迴歸係數的置信區間:使用confint()求得截距a和斜率b估計值的置信區間,默認爲95%的置信度
confint(test)
結果爲
2.5 % 97.5 %
(Intercept) 8.225007 10.320447
x 1.105045 1.767682
即a的95%的置信區間爲[8.225007, 10.320447]
b的95%的置信區間爲[1.105045 , 1.767682]
預測
使用predict()函數進行預測。
其中pre表示要預測的點,這裏必須以data.frame的形式輸入,predict函數才能計算;
interval="prediction"表示給出對應的預測區間
參數level=0.95表示顯著性水平。
pre=data.frame(x=0.2)
test.pre=predict(test,pre,interval="prediction",level=0.95)
test.pre
結果爲
fit lwr upr
1 9.56 5.929986 13.19001
即當x=0.2時,y的預測值是9.56
在95%置信度下的y的置信區間是[5.929986, 13.19001]
需要說明的是,一元線性迴歸在做預測的時候,預測點的位置越近於樣本點均值,預測的結果越準確,離樣本點均值越遠,預測的結果越不可信。