基於R語言的多元線性迴歸--我國經濟增長的定量研究
基於R語言的多元線性迴歸--我國經濟增長的定量研究
一、實驗介紹
1.1 實驗內容
經濟增長一直以來都是我國巨集觀經濟政策的目標之一,研究影響經濟增長的因素對促進我國經濟快速發展有著重要意義。本實驗運用 R 語言編寫程式碼擬合多元線性迴歸模型,對模型擬合結果進行診斷,即對假設前提進行檢驗,並選擇最優模型,最終進行區間預測,定性的研究影響我國經濟增長的因素。
1.2 實驗知識點
- 多元迴歸模型的理論基礎
- 多元迴歸模型的擬合
- 多元迴歸模型的診斷
- 多元迴歸模型的最優選擇
- 多元迴歸方程的解釋
1.3 實驗環境
- R version 3.4.1
- Xfce 終端
1.4 適合人群
本課程難度為簡單,屬於初級級別課程,適合具有 R 語言基礎的使用者,熟悉 R 語言基礎知識,加深鞏固一些基礎操作,並學會運用 R 語言的迴歸方法。
二、理論模型
2.1 多元迴歸模型
2.2 多元迴歸模型的假設
- 假定 1:線性於引數。
- 假定 2:隨機抽樣,即隨機樣本來自假定 1 的總體模型 。
- 假定 3:自變數之間不存在完全共線性。
- 假定 4:誤差項服從均值為0的正態分佈。
- 假定 5:誤差具有同方差性。
2.3 OLS 估計準則
擬合多元線性迴歸模型需要用到 OLS 估計方法,也叫普通最小二乘估計法。
當滿足估計準則,殘差平方和最小時的模型引數值就是我們所要的引數估計值。
三、實驗步驟
3.1 實驗準備
3.1.1 載入實驗所需的資料
本次實驗所需的資料已經上傳,在實驗樓環境下需要用到 wget
命令來獲取。
wget http://labfile.oss.aliyuncs.com/courses/894/yeardata.csv
3.1.2 啟動 R 軟體
在實驗之前,先在實驗樓環境下啟動 R 軟體。
sudo R
3.1.3 載入所需的軟體包
首先,下載本次試驗需要用到 car
軟體包,其中映象選擇 China。
install.packages("Matrix") install.packages("lme4") install.packages("pbkrtest") install.packages("car")
注意,此載入過程耗時可能會比較多,請耐心等待。
然後,再呼叫程式包
library(car)
3.1.4 匯入資料
匯入我們上傳的 CSV 檔案需要 read.csv
命令,csv
是檔案的字尾,如果我們匯入的是 excel 檔案,應使用read.xlsx
命令等。data 是匯入後 R 的資料框。
data<-read.csv("yeardata.csv")data #表示檢視匯入的資料
可以看到 data 資料集中有 GDP、Consumption、M0、EM 和 Investment 五個變數,它們分別代表國內生產總值、消費、貨幣供應量、進出口總額、投資五個因素。其中國內生產總值 GDP 代表我國的經濟增長狀況,是響應變數;其他四個變數是影響經濟增長的因素,都是解釋變數。
3.2 擬合多元線性迴歸模型
3.2.1 檢視變數間的相關性
檢視變數之間的相關性,我們可以用 cor
函式得出變數之間的相關係數矩陣,或者用 scatterplotMatrix
函式,直接繪製散點圖矩陣來檢視變數之間的相關性。scatterplotMatrix 函式預設在非對角線區域繪製變數間的散點圖,並新增平滑(loess)和線性擬合曲線。
cor(data)
由相關係數矩陣結果我們可以看到各個變數之間的相關係數都達到了 0.9 以上,是高度線性相關的,可以擬合線性迴歸模型。
當然,如果我們只是對資料中的部分變數求相關係數矩陣,也可以使用下面的命令:
cor(data[c("GDP","Consumption","M0")])
我們再以圖形的方式展現出來:
scatterplotMatrix(data,spread=FALSE,main="Scatter Plot Matrix via car package") #spread=FALSE 表示刪除了殘差正負均方根在平滑曲線上的展開和非對稱資訊
通過 car
包繪製的散點圖矩陣我們可以看出 GDP 和 Consumption、M0、EM、Investment之間基本都呈現正相關的線性關係。
3.2.2 擬合多元線性迴歸模型
由變數間相關性實驗結果,我們可以知道各個變數之間有正相關的線性關係,選擇的解釋變數比較合適,因此我們可以擬合以 GDP 為因變數,其他四個變數 Consumption、M0、EM、Investment 為自變數的多元迴歸模型。
擬合多元線性迴歸模型,需要用到 lm
函式。函式呼叫方式為:
GDP<-data[,1] #表示將 data 資料框中的第一列賦值給 GDPConsumption<-data[,2] #表示將 data 資料框中的第二列賦值給 ConsumptionM0<-data[,3] #表示將 data 資料框中的第三列賦值給 M0 EM<-data[,4] #表示將 data 資料框中的第四列賦值給 EMInvestment<-data[,5] #表示將 data 資料框中的第一列賦值給 Investmentfit<-lm(GDP~Consumption+M0+EM+Investment)fit
當然也可以直接在函式擬合時,加入data=*
命令來代替前面的變數賦值,結果都一樣。
fit<-lm(GDP~Consumption+M0+EM+Investment,data=data) #lm函式中,符號“~”左邊表示因變數,右邊的表示自變數,多個自變數之間用“+”連線;data=* 表示變數來自 * 資料框中,此處為 data。fit #檢視模型擬合結果
所得的多元迴歸方程為:
還可以運用 summary
函式來檢視模型的詳細擬合結果:
summary(fit)
Residuals
列出了殘差的最小值(Min)、四分之一分位數(1Q)、中位數(Median)、四分之三分位數(3Q)、最大值(Max)。
Coefficients
列出了每個自變數(包括截距項)的估計值(Estimate)、標準差(Std.Error)、t 值(t value)和 P 值(Pr(>|t|))。可以看到在 5% 的顯著性水平上,除了自變數 Investment 不顯著,其他自變數都是顯著的。
判斷模型擬合效果的可決係數也叫判定係數 R^2 的值。可以看到R^2接近於 1 ,說明模型擬合效果很好。
還有判斷模型聯合顯著性的 F 統計量的值:F-statistic=2.242e+04,自由度為(4,33),P-value <2.1*e-16。結果表面在 1% 的顯著性水平下,模型是聯合顯著的,模型擬合的很好。
3.3 多元線性迴歸模型的診斷
我們上面擬合的多元線性迴歸模型是基於我們在理論模型中提到的假設條件而成的,所以在確認我們的迴歸模型之前要先進行假設檢驗,即迴歸模型的診斷。
迴歸模型的診斷,最常用的的方法是使用 plot
函式。
par(mfrow=c(2,2)) #將圖形以兩行兩列的形式列在一個圖形視窗plot(fit)
Residuals vs Fitted
圖(左上)主要用於檢驗假定 1:線性於引數,圖中顯示結果殘差值和擬合值基本沒有比較明顯的關聯,則說明自變數與因變數之間是線性關係,滿足假定 1。
Normal Q-Q
圖(右上)主要檢驗誤差項的正態性,若滿足正態性的假設,則圖上的圓點應落在 45 度
角的直線上;反之,則不滿足正態性的假設。從圖中結果來看,基本滿足正態性的假設。
Scale-Location
圖(左下)主要檢驗誤差的同方差性的假設,若水平線周圍的點隨機分佈,則滿足同方差假設;反之,則不滿足。而觀察此處結果,滿足同方差性的假設。
Residuals vs Leverage
圖(右下)主要用於觀察資料中的單個值,不用於假設檢驗。
至於其他假設檢驗我們不在此處學習。
3.4 多元線性迴歸模型的最優選擇
對於模型的最優選擇問題,我們可以使用赤池資訊準則(AIC
)來進行比較,它的原理是在可決係數於自變數的個數之間權衡,選擇二者的最佳組合。AIC 值越小,表明模型擬合效果越好。
fit1<-lm(GDP~Consumption+M0+EM+Investment,data=data)fit2<-lm(GDP~Consumption+M0+EM,data=data)fit3<-lm(GDP~Consumption+M0,data=data)fit4<-lm(GDP~Consumption,data=data)AIC(fit1,fit2,fit3,fit4)
AIC 準則結果表面 fit2 AIC 值最小,擬合結果最好,即選擇 Consumption、M0、EM 三個變數為自變數的多元線性迴歸模型為最優模型。這於前面模型詳細擬合結果裡 Investment 的 t 檢驗結果不顯著,而其他三個變數 t 檢驗結果顯著剛好一致。
四、實驗結果的解釋
4.1 模型引數解釋
由以上實驗表明選擇影響 GDP 增長的因素主要有:消費、貨幣供應量、以及進出口。
重新擬合最優模型:
fit<-lm(GDP~Consumption+M0+EM,data=data)summary(fit)
由此得出多元迴歸方程為:
注,括號裡為標準差
迴歸方程的截距項是 -761.13,消費(Consumption)每變動一個單位引起以 GDP 為代表的經濟增長 1.67 個單位,貨幣(M0)每增加一個單位的供應會引起 GDP 增加 1.38 ,同理進出口總額(EM)每增加一個單位會引起 GDP 增加 0.43。也就是說,為了促進我國經濟的快速發展,可以採取刺激消費來促進經濟增長;也可以適當的增加貨幣供應量但不能過多投放,因為會引起通貨膨脹;還可以擴大對外開放程度來增加進出口從而促進經濟增長。
4.2 預測
進行模型的預測,需要用到 predict
函式。實驗資料時間為 1978-2015 年,假設 2016 年的自變數(Consumption,M0,EM)的值為 (330000,65000,250000),相應 GDP 的概率為 0.95 的預測區間。
new<-data.frame(Consumption=c(330000),M0=c(65000),EM=(250000)) #匯入自變數的值lm.pred<-predict(fit,new,interval="prediction",level=0.95) #進行預測lm.pred
結果顯示,當自變數(Consumption,M0,EM)=(330000,65000,250000) 時,我們可以預測到GDP的值為 746156.6,95% 的預測區間為(734914.7,757398.5)
五、實驗總結
本次實驗完整的研究了多元線性迴歸模型,首先簡單的介紹了多元線性迴歸模型的基本理論,然後運用 R 語言實現多元迴歸模型的擬合,學習瞭如何求變數間的相關係數矩陣和畫散點圖矩陣,然後運用 lm 函式擬合迴歸模型,對模型擬合結果進行假設檢驗,並運用赤池資訊準則選擇最優模型,最終對擬合的最優模型進行預測。通過本次實驗會學會如何運用 R 語言進行多元線性迴歸分析,更加熟練運用 R 語言。
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow