當(dāng)當(dāng)當(dāng)當(dāng)現(xiàn)在開始跑程序了
Step 1:導(dǎo)入數(shù)據(jù)
我們用的是《商務(wù)與經(jīng)濟(jì)統(tǒng)計(jì)》中的時(shí)間序列分析數(shù)據(jù),這是一個(gè)關(guān)于四年每個(gè)季度電視銷售數(shù)量的數(shù)據(jù),先上代碼:
>path<-"F:/商務(wù)與經(jīng)濟(jì)統(tǒng)計(jì)(原書第11版)光盤內(nèi)容/數(shù)據(jù)文件/第18章/TVSales.csv"
>TVsales<-read.csv(path,header=TRUE)
>TVsales
Year Quarter Sales..1000s.
1 1 1 4.8
2 1 2 4.1
3 1 3 6.0
4 1 4 6.5
5 2 1 5.8
6 2 2 5.2
7 2 3 6.8
8 2 4 7.4
9 3 1 6.0
10 3 2 5.6
11 3 3 7.5
12 3 4 7.8
13 4 1 6.3
14 4 2 5.9
15 4 3 8.0
16 4 4 8.4
第一列是年份笑跛,第二列是季度琅捏,第三列是銷售量(每千臺(tái))
Step 2:繪制時(shí)間序列圖
TVsalestimeseries<-ts(TVsales$Sales..1000s.,frequency =4)
TVsalestimeseries
Qtr1 Qtr2 Qtr3 Qtr4
1 4.8 4.1 6.0 6.5
2 5.8 5.2 6.8 7.4
3 6.0 5.6 7.5 7.8
4 6.3 5.9 8.0 8.4
plot.ts(TVsalestimeseries)
這里的ts的是將數(shù)據(jù)轉(zhuǎn)存到一個(gè)時(shí)間序列對(duì)象中,然后繪制時(shí)間序列圖(忽略我丑丑的圖)
從圖中可以很明顯地看出孙蒙,曲線按年呈現(xiàn)類似周期性的變化项棠,且整體呈現(xiàn)上升趨勢(shì),因而為季節(jié)與趨勢(shì)模式挎峦,然后我們用decompose()函數(shù)對(duì)其進(jìn)行分解香追。
Step 3:分解時(shí)間序列
TVsalestimeseriescompents<-decompose(TVsalestimeseries)
plot(TVsalestimeseriescompents)
以上四幅圖中,分別為原始時(shí)間序列數(shù)據(jù)坦胶、數(shù)據(jù)的趨勢(shì)透典、季節(jié)性因素以及剔除了趨勢(shì)和季節(jié)性因素之后的隨機(jī)成分,我們可以將它們提取出來顿苇。
plot(TVsalestimeseriescompents$seasonal,type="b",main='季節(jié)對(duì)銷售的影響')
從上圖可以看出峭咒,每年第二季度銷售量進(jìn)入低谷,第四季度達(dá)到高峰纪岁,這也明顯對(duì)應(yīng)著人們觀看電視興趣的直觀期望凑队,即第二季度由于春季和初夏的戶外活動(dòng),減少了潛在消費(fèi)者觀看電視的興趣蜂科;第四季度由于冬季即將到來人們減少了戶外活動(dòng)顽决,因此電視購買模式趨向于峰值。
然后导匣,我們看一下消除季節(jié)影響的時(shí)間序列:
TVsalestimeseriesadjusted<-TVsalestimeseries-TVsalestimeseriescompents$seasonal
plot(TVsalestimeseriesadjusted,main='消除季節(jié)影響的電視機(jī)銷售量時(shí)間序列')
消除季節(jié)影響后才菠,可以看出,電視的銷售量呈現(xiàn)出逐年上升的趨勢(shì)贡定。
Step 4:預(yù)測(cè)未來一年的銷售數(shù)量
在這里赋访,我們采用Holt-Winters指數(shù)平滑法對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè)
TVsalestimeseriesforecasts<-HoltWinters(TVsalestimeseries)
plot(TVsalestimeseriesforecasts)
由圖知,曲線很好的擬合了原始數(shù)據(jù),然后我們要用forecast包預(yù)測(cè)未來一年的數(shù)據(jù):
library(forecast)
TVsalestimeseriesforecasts2<-forecast.HoltWinters(TVsalestimeseriesforecasts,h=4)
TVsalestimeseriesforecasts2
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
5 Q1 7.693695 7.207385 8.180005 6.949948 8.437442
5 Q2 7.118695 6.523164 7.714226 6.207909 8.029481
5 Q3 8.868695 8.181078 9.556311 7.817076 9.920314
5 Q4 9.343695 8.574945 10.112444 8.167993 10.519396
以上蚓耽,我們預(yù)測(cè)了未來一年每個(gè)季度的數(shù)據(jù)渠牲,并分別給出80%和95%的置信區(qū)間,然后畫個(gè)圖看看:
plot.forecast(TVsalestimeseriesforecasts2)
以上步悠,藍(lán)色的部分就是預(yù)測(cè)值签杈,陰影部分便分別是80%和95%的置信區(qū)間。
至此鼎兽,時(shí)間序列分析就算完成了答姥,然后,我來說說一說我參考的資料吧:
網(wǎng)絡(luò)資源:R語言時(shí)間序列初探
書籍:《商務(wù)與經(jīng)濟(jì)統(tǒng)計(jì)》 David R.Anderson (辛辛提那大學(xué))谚咬、Dennis J.Sweeney(辛辛提那大學(xué))鹦付、Thomas A .Williams(羅切斯特理工學(xué)院)著
《R語言與數(shù)據(jù)挖掘最佳實(shí)踐與經(jīng)典案例》 Yanchang Zhao 著