程勝
摘要:開放、免費(fèi)的R軟件應(yīng)用越來越廣泛,本文歸納了R軟件較其他商業(yè)軟件的優(yōu)勢(shì),結(jié)合實(shí)例分析了R軟件在時(shí)間序列分析課程中的具體應(yīng)用。通過教學(xué)效果來看,采用R作為教學(xué)軟件,能夠提高學(xué)生的學(xué)習(xí)熱情,提升學(xué)生自我學(xué)習(xí)的能力,教學(xué)效果有顯著變化。
關(guān)鍵詞:R軟件;時(shí)間序列分析;教學(xué)
中圖分類號(hào):G642.0???? 文獻(xiàn)標(biāo)志碼:A???? 文章編號(hào):1674-9324(2014)41-0173-03
R統(tǒng)計(jì)軟件是由Auckland大學(xué)開發(fā)的,其開源、免費(fèi)、高效的特點(diǎn)使得軟件普及率迅速提升。根據(jù)最新的調(diào)查,R軟件的使用率已經(jīng)超過傳統(tǒng)的SAS、SPSS、Statistica等商業(yè)軟件,成為數(shù)據(jù)分析的熱門工具。
一、R軟件的優(yōu)勢(shì)
R軟件是一個(gè)開放的統(tǒng)計(jì)編程環(huán)境,內(nèi)嵌S編程語言。與其他統(tǒng)計(jì)分析軟件比較而言,利用R軟件進(jìn)行數(shù)據(jù)分析具有以下優(yōu)勢(shì)。
1.R軟件是開源的、免費(fèi)的。與SAS、SPSS、S-Plus、Statistica、Mathematics等商業(yè)軟件動(dòng)輒十幾萬、幾十萬的購(gòu)置費(fèi)及昂貴的維護(hù)升級(jí)費(fèi)用相比,R軟件則是完全免費(fèi)、不需要支付任何費(fèi)用,且數(shù)據(jù)分析、建模能力毫不遜色。另外,開源的R軟件比封裝、集成的商業(yè)軟件更具有靈活性?;诰W(wǎng)絡(luò)溝通的及時(shí)有效性,R軟件更新速度快,在公共的R軟件平臺(tái)下,集合全球統(tǒng)計(jì)學(xué)家的智慧,不斷開發(fā)穩(wěn)定、前沿的統(tǒng)計(jì)分析包,使得其使用率急劇上升,呈現(xiàn)明顯的軟件價(jià)值邊際效應(yīng)遞增趨勢(shì)。
2.R軟件是跨平臺(tái)的。R軟件能夠在多種操作系統(tǒng)下運(yùn)行,如Windows、UNIX、Macintosh等。R軟件這一特點(diǎn)極大地方便了用戶在不同操作系統(tǒng)下的轉(zhuǎn)換,提高了軟件分析的運(yùn)行效率。同時(shí)這種跨平臺(tái)的運(yùn)行也給大數(shù)據(jù)計(jì)算、云計(jì)算等提供了穩(wěn)定的集成環(huán)境,提升了海量數(shù)據(jù)分析和挖掘的可能。
3.R軟件涵蓋廣泛。目前R網(wǎng)站上提供了約2400個(gè)程序包,包括基礎(chǔ)統(tǒng)計(jì)學(xué)、社會(huì)學(xué)、經(jīng)濟(jì)管理、金融、生態(tài)、空間統(tǒng)計(jì)、系統(tǒng)發(fā)育分析、生物信息等多個(gè)方面,而且基于開發(fā)的網(wǎng)絡(luò)平臺(tái),R網(wǎng)站不斷提供新的、方便的統(tǒng)計(jì)程序包。
4.R軟件突出的是統(tǒng)計(jì)思想。一般的集成商業(yè)軟件更像是一個(gè)黑匣子,只要有數(shù)據(jù)輸進(jìn)去,結(jié)果就會(huì)出來,至于計(jì)量、統(tǒng)計(jì)背后的含義和邏輯并不十分明了。R軟件則不同,眾多的統(tǒng)計(jì)分析包都是可編輯和重新編譯的,使用者可根據(jù)自身需求,按照統(tǒng)計(jì)分析邏輯量身定做獨(dú)特的程序包。這樣,使用者同時(shí)也是開發(fā)者,對(duì)于統(tǒng)計(jì)思想的認(rèn)識(shí)和把握會(huì)更加清晰。
二、R軟件在《時(shí)間序列分析》中的具體應(yīng)用
R軟件與其他同級(jí)分析軟件不同,可以單獨(dú)定義時(shí)間序列數(shù)據(jù)類型,并且提供了大量的相關(guān)函數(shù),運(yùn)行這些函數(shù)之前需要對(duì)數(shù)據(jù)進(jìn)行時(shí)間序列化。如對(duì)我國(guó)1960—2010年碳排放數(shù)據(jù)進(jìn)行自相關(guān)和偏相關(guān)的分析,并建立ARIMA模型,其程序代碼如下:
d=scan("carbon.csv")#讀入碳排放數(shù)據(jù)數(shù)據(jù)
carbon=ts(d,start=1964,freq=1) #將數(shù)據(jù)時(shí)序化
plot.ts(carbon) #繪制時(shí)序圖
acf(carbon,24) #繪制自相關(guān)圖,滯后期數(shù)24
pacf(carbon,24) #繪制偏自相關(guān)圖,滯后期數(shù)24
corr=acf(carbon,24) #保存相關(guān)系數(shù)
cov=acf(carbon,24,type="covariance") #保存協(xié)方差
Box.test(prop,type="Ljung-Box",lag=6) #純隨機(jī)性檢驗(yàn),p值小于5%,序列為非白噪聲
Box.test(prop,type="Ljung-Box",lag=12)
arima(prop,order=c(1,0,0),method="ML") #用AR(1)模型擬合,如參數(shù)method="CSS",估計(jì)方法為條件最小二乘法,用條件最小二乘法時(shí),不顯示AIC。
predict(arima(prop,order=c(1,0,0)),n.ahead=5) #預(yù)測(cè)未來5期
ts.plot(prop,prop.fore$pred,col=1:2)#作時(shí)序圖,含預(yù)測(cè)。
lines(U,col="blue",lty="dashed")
lines(L,col="blue",lty="dashed")#在時(shí)序圖中作出95%置信區(qū)間
代碼運(yùn)行完,R將輸出我國(guó)碳排放數(shù)據(jù)的ARIMA模型各項(xiàng)參數(shù)及預(yù)測(cè)5期結(jié)果。由上例可見,R軟件通過交互式的編程操作,能夠簡(jiǎn)單明了地告知使用者在運(yùn)用ARIMA模型過程中的各個(gè)步驟及主要統(tǒng)計(jì)量。用戶通過試錯(cuò)的方式能夠?qū)RIMA模型的主要思想及內(nèi)容有比較清晰的把握。
此外,時(shí)間序列分析中關(guān)于GARCH模型的運(yùn)用既是課程教學(xué)的重點(diǎn),也是學(xué)生知識(shí)掌握的難點(diǎn),由于GARCH模型種類較多,在以往的教學(xué)中,我們大多時(shí)間采用SAS進(jìn)行教學(xué),當(dāng)然學(xué)生通過SAS的簡(jiǎn)單編程,也能實(shí)現(xiàn)GARCH模型,但是效果總是不好,主要問題有兩個(gè):一是SAS的GARCH編程主要利用AUTOREG過程,而該過程能夠?qū)崿F(xiàn)的又不僅僅只有GARCH模型一種,因此,學(xué)生運(yùn)用過程中總是容易混淆。二是SAS編程的過程與GARCH模型的原理大體是一致的,但是其過程的實(shí)現(xiàn)是個(gè)黑匣子,學(xué)生在教學(xué)實(shí)踐環(huán)節(jié)中花了大量精力在收集數(shù)據(jù)和整理數(shù)據(jù)上,而對(duì)于GARCH模型實(shí)現(xiàn)的過程與原理一知半解,或者不用知曉,只要看最終結(jié)果是否通過顯著性檢驗(yàn),便認(rèn)為模型建立成功。相比較SAS而言,R提供開源的代碼,學(xué)生不僅可以直接利用基礎(chǔ)統(tǒng)計(jì)的程序包開發(fā)自己的GARCH模型,也可以根據(jù)數(shù)據(jù)本身的要求,按照GARCH的變種模型邏輯結(jié)構(gòu)來修改源代碼,開發(fā)多種GARCH模型,并通過擬合效果來選擇適宜的模型。R軟件提供了fGarch包來幫助使用者開發(fā)GARCH模型。以下實(shí)例仍然采用我國(guó)1960—2010年碳排放數(shù)據(jù)建立AR-GARCH模型。具體代碼如下:
library(tseries)
library(fGarch)
library(FinTS)
a=ts(scan("carbon.csv"))
ts.plot(a)
fit=lm(a~-1+time(a))
r=resid(fit)
summary(fit)
pacf(r^2)
acf(r)
acf(r^2)
AutocorTest(r) #殘差是否存在序列相關(guān)ArchTest(r) #是否存在ARCH效應(yīng)
fit1=garchFit(~arma(2,0)+garch(1,1),data=r,algorithm="nlminb+nm",trace=F,include.mean=F)
summary(fit1)
運(yùn)行代碼后,R輸出了AR(2)-GARCH(1,1)模型結(jié)果,并通過summary函數(shù)可對(duì)運(yùn)行結(jié)果的基本統(tǒng)計(jì)屬性進(jìn)行全面的了解和分析。
通過上述時(shí)間序列分析中兩個(gè)常用的ARIMA模型和GARCH模型在R中的運(yùn)用,我們可以發(fā)現(xiàn)基于R軟件的時(shí)間序列教學(xué)有如下幾個(gè)優(yōu)點(diǎn):一是編程代碼簡(jiǎn)單、清晰,用戶不用太多計(jì)算機(jī)編程基礎(chǔ),便可輕松實(shí)現(xiàn)各種模型。二是相較其他封裝的商業(yè)軟件而言,R實(shí)現(xiàn)更加靈活,用戶可以根據(jù)自身科研教學(xué)的需要,對(duì)基本統(tǒng)計(jì)程序包進(jìn)行修改和重編譯,開發(fā)屬于自己的軟件包。三是R編程的交互式平臺(tái)能夠幫助用戶加深對(duì)統(tǒng)計(jì)模型的基本思想和脈絡(luò)的掌握,提升基于數(shù)據(jù)分析的統(tǒng)計(jì)思想能力,幫助學(xué)生對(duì)于知識(shí)的理解。
三、R軟件實(shí)踐教學(xué)效果分析
2008年以前,本系開設(shè)了統(tǒng)計(jì)軟件分析課程中主要講解SAS、Eviews等軟件的應(yīng)用,為接續(xù)的應(yīng)用回歸分析、時(shí)間序列分析課程提供軟件基礎(chǔ)。2008年以后,我們開始只用R軟件作為時(shí)間序列分析的主要實(shí)踐工具,通過近五年的教學(xué),教學(xué)效果發(fā)生了巨大提升,主要體現(xiàn)在以下幾個(gè)方面。
1.學(xué)生的基礎(chǔ)知識(shí)更為扎實(shí)了。R開源的特性激發(fā)了學(xué)生對(duì)統(tǒng)計(jì)理論的基本脈絡(luò)和邏輯思想的學(xué)習(xí)熱情。在以往的教學(xué)中,理論學(xué)習(xí)與實(shí)踐環(huán)節(jié)往往存在著不同程度的脫節(jié),理論考試成績(jī)高的學(xué)生,其實(shí)踐動(dòng)手能力不強(qiáng);實(shí)踐環(huán)節(jié)成績(jī)好的同學(xué),理論知識(shí)掌握不牢。通過R軟件的學(xué)習(xí),學(xué)生普遍反映在理論知識(shí)與實(shí)際操作的聯(lián)系上有了很大提升,對(duì)于理論知識(shí)的學(xué)習(xí)也沒有以前枯燥了,對(duì)于基本統(tǒng)計(jì)思想的理解更加深刻了。
2.學(xué)生對(duì)于新統(tǒng)計(jì)方法的接受能力更強(qiáng)了。在網(wǎng)絡(luò)信息時(shí)代,數(shù)據(jù)獲得的渠道越來越通暢,獲得的數(shù)據(jù)也愈來愈多,對(duì)于傳統(tǒng)統(tǒng)計(jì)方法的挑戰(zhàn)也日益增強(qiáng)。R軟件是集合全球統(tǒng)計(jì)人的智慧于一身,不斷推出新的統(tǒng)計(jì)分析方法解決新的數(shù)據(jù)。因此在教學(xué)過程中,我們除了講授一般性的基礎(chǔ)知識(shí)以外,也會(huì)講解一些最新的統(tǒng)計(jì)理念和思路,拓寬學(xué)生的知識(shí)視野,培養(yǎng)學(xué)生能夠遵循統(tǒng)計(jì)發(fā)展的一般規(guī)律和國(guó)際前沿發(fā)展來自我學(xué)習(xí)的能力。如在GARCH模塊的學(xué)習(xí)中,我們講解了IGARCH、TGARCH、EGARCH、MGARCH等基本的異方差模型,也結(jié)合實(shí)際案例講授了多個(gè)時(shí)間序列之間互動(dòng)的CCCGARCH、DCCGARCH等動(dòng)態(tài)GARCH模型。有學(xué)生利用R軟件建立了國(guó)際金價(jià)與我國(guó)股市的動(dòng)態(tài)關(guān)聯(lián)、我國(guó)貨幣政策獨(dú)立性的有效識(shí)別等模型參加國(guó)內(nèi)暑期經(jīng)濟(jì)學(xué)、管理學(xué)和統(tǒng)計(jì)學(xué)夏令營(yíng),得到了夏令營(yíng)老師的高度評(píng)價(jià)并獲得了相關(guān)“985”高校的保研資格。
3.學(xué)生的成績(jī)有了顯著提高。我校近期進(jìn)行了教學(xué)質(zhì)量評(píng)估,通過梳理歷年來學(xué)生的考試成績(jī)發(fā)現(xiàn),使用R作為教學(xué)軟件以來,學(xué)生成績(jī)優(yōu)良比例大幅度上升。學(xué)生的表現(xiàn)反饋在學(xué)習(xí)計(jì)量經(jīng)濟(jì)學(xué)、時(shí)間序列分析、應(yīng)用回歸分析、空間統(tǒng)計(jì)分析、生物統(tǒng)計(jì)分析等專業(yè)主干課程的過程中,熱情提高了,知識(shí)掌握程度提高了,實(shí)踐能力提高了,學(xué)習(xí)的難度降低了。
R軟件開放、高效的特點(diǎn)契合了大數(shù)據(jù)時(shí)代,契合了新世紀(jì)下本科生學(xué)習(xí)方法變化的特征,為我們的時(shí)間序列分析課程教學(xué)提供了強(qiáng)而有力的支撐。強(qiáng)化了學(xué)生在理論學(xué)習(xí)和實(shí)踐教學(xué)之間的關(guān)聯(lián)度,提高了學(xué)生自我學(xué)習(xí)熱情和能力。因此,從長(zhǎng)期來看,R軟件在統(tǒng)計(jì)教學(xué)、科研中的運(yùn)用具有廣闊的前景。
參考文獻(xiàn):
[1]Jonathan D.Cryer,Kung-Sik Chan.時(shí)間序列分析及應(yīng)用:R語言[M].機(jī)械工業(yè)出版社,2011.
[2]王小明,韓小亮.S-Plus應(yīng)用統(tǒng)計(jì)教程[M].上海財(cái)經(jīng)大學(xué)出版社,2005.
[3]閏朝暉.R軟件在多元統(tǒng)計(jì)分析教學(xué)中的應(yīng)用研究[J].科技創(chuàng)新導(dǎo)報(bào),2011,(01).