R語(yǔ)言用logistic邏輯回歸和AFRIMA、ARIMA時(shí)間序列模型預(yù)測(cè)世界人口
全文鏈接 :http://tecdat.cn/?p=27493?
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
本文應(yīng)用R軟件技術(shù),分別利用logistic模型、ARFMA模型、ARIMA模型、時(shí)間序列模型對(duì)從2016到2100年的世界人口進(jìn)行預(yù)測(cè)。作者將1950年到2015年的歷史數(shù)據(jù)作為訓(xùn)練集來(lái)預(yù)測(cè)85年的數(shù)據(jù)。模型穩(wěn)定性經(jīng)過(guò)修正后較好,故具有一定的參考價(jià)值。
引言
隨著時(shí)間的推移,世界人口不斷的增長(zhǎng),為了更好地把握世界人口的進(jìn)展速度與規(guī)律。我們利用建立logistic模型并運(yùn)用R語(yǔ)言軟件來(lái)分析并預(yù)測(cè)在2100年世界的人口數(shù),并與預(yù)測(cè)出的數(shù)據(jù)做對(duì)比,看模型構(gòu)造的好壞并進(jìn)行模型改進(jìn)與擴(kuò)展。
模型一:logistic模型
logistic模型又稱作阻滯增長(zhǎng)模型,主要用來(lái)描述在環(huán)境資源有限制的情況下,人口數(shù)量的增長(zhǎng)規(guī)律。由于一些因素的影響世界人口數(shù)量最終會(huì)達(dá)到一個(gè)飽和值。阻滯作用上體現(xiàn)在對(duì)的影響上,使得隨著年份的增加而下降。若將表示為的函數(shù),則它應(yīng)是減函數(shù)。則有

由于bgistic回歸模型就是基于二項(xiàng)分布族的廣義線性模型,因此在R軟件中,Logistic回歸分析可以通過(guò)調(diào)用廣義線性回歸模型函數(shù)glm()來(lái)實(shí)現(xiàn),其調(diào)用格式為
Log<一glm(formula,family=binomial,data)其中,formula為要擬合的模型,family=binomial說(shuō)明分布為二項(xiàng)分布,data為可選擇的數(shù)據(jù)框。
通過(guò)在世界銀行網(wǎng)站上查閱相關(guān)數(shù)據(jù),我們將1950年到2100年的人口數(shù)據(jù)進(jìn)行錄入,并調(diào)用glmnet包來(lái)進(jìn)行擬合。
summary(lg.glm)
plot(x, y, main = "人口數(shù)隨年份變化的logistic曲線",xlab = "年份", ylab = "人口數(shù)(千億)")

Deviance Residuals:
Min ? ? ? ? 1Q ? ? Median ? ? ? ? 3Q ? ? ? ?Max
-0.089181 ?-0.028946 ? 0.002154 ? 0.027206 ? 0.042212
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -23.76776 ? 22.17527 ?-1.072 ? ?0.284
x ? ? ? ? ? ? 0.01046 ? ?0.01101 ? 0.950 ? ?0.342
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 0.923810 ?on 82 ?degrees of freedom
Residual deviance: 0.082928 ?on 81 ?degrees of freedom
AIC: 13.991
Number of Fisher Scoring iterations: 6

?從檢驗(yàn)結(jié)果可看出隨著時(shí)間的推移能影響人口的數(shù)量,并且年份越大,人口密度越大;最終會(huì)停留到一個(gè)飽和值,并得到logistic回歸模型:

模型二: ?AFRIMA模型
時(shí)間序列模型可分為段記憶模型和長(zhǎng)記憶模型。一般的時(shí)間序列分析模型有自回歸(AR)模型、滑動(dòng)平均(MA)模型、自回歸滑動(dòng)平均(ARMA)模型、自回歸整合滑動(dòng)平均(ARIMA)模型等,這些模型主要是短記憶模型。目前,人們對(duì)宏觀經(jīng)濟(jì)變量的實(shí)證研究發(fā)現(xiàn),長(zhǎng)記憶模型雖然遠(yuǎn)距離觀測(cè)值間的相依性很小但是仍具有研究?jī)r(jià)值。分整自回歸移動(dòng)平均模型(ARFMA)模型是長(zhǎng)記憶模型,它是由Granger和Joyeux (1980)以及Hosking (1981)在ARIMA模型的基礎(chǔ)上構(gòu)建的,廣泛應(yīng)用于經(jīng)濟(jì)金融領(lǐng)域。
AFRIMA模型定義
AFRIMA模型的基于A R M A模型和ARIMA模型。
ARMA(p,q),模型的形式為:

模型實(shí)現(xiàn):
arfi(Diut[,2][)#建立arfima模型
plot(Discnt[,1],Dscunt[,2])#原始數(shù)據(jù)
points(Dicount[,1][1:66],f$fittedcol="red")#擬合數(shù)據(jù)
?



從殘差圖的結(jié)果來(lái)看,ACF的值不在虛線范圍內(nèi),即殘差不平穩(wěn),不是白噪聲,因此下面對(duì)數(shù)據(jù)進(jìn)行一階差分。
模型穩(wěn)定性改進(jìn)
對(duì)數(shù)據(jù)進(jìn)行一階差分使數(shù)據(jù)更加穩(wěn)定。
points(c(2016:2100), diffinv(pre$mean)[-1]+ Discount[66,2],col="blue")

從殘差圖的結(jié)果來(lái)看,ACF的值和PACF的值都在虛線范圍內(nèi),即殘差平穩(wěn),因此模型穩(wěn)定。
模型三:??ARIMA模型?
?ARIMA模型定義
ARIMA模型全稱為差分自回歸移動(dòng)平均模型。是由博克思和詹金斯于70年代初提出的一著名時(shí)間序列預(yù)測(cè)方法,博克思-詹金斯法。其中ARIMA(p,d,q)稱為差分自回歸移動(dòng)平均模型,AR是自回歸,p為自回歸項(xiàng);MA為移動(dòng)平均,q為移動(dòng)平均項(xiàng)數(shù),d為時(shí)間序列成為平穩(wěn)時(shí)所做的差分次數(shù)。
ARIMA模型的基本思想是:將預(yù)測(cè)對(duì)象隨時(shí)間推移而形成的數(shù)據(jù)序列視為一個(gè)隨機(jī)序列,用一定的數(shù)學(xué)模型來(lái)近似描述這個(gè)序列。這個(gè)模型一旦被識(shí)別后就可以從時(shí)間序列的過(guò)去值及現(xiàn)在值來(lái)預(yù)測(cè)未來(lái)值。
ARIMA模型的基本思想是:將預(yù)測(cè)對(duì)象隨時(shí)間推移而形成的數(shù)據(jù)序列視為一個(gè)隨機(jī)序列,用一定的數(shù)學(xué)模型來(lái)近似描述這個(gè)序列。這個(gè)模型一旦被識(shí)別后就可以從時(shí)間序列的過(guò)去值及現(xiàn)在值來(lái)預(yù)測(cè)未來(lái)值。
建模過(guò)程主要包括:
第一步:自回歸過(guò)程
令Yt表示t時(shí)期的GDP。如果我們把Yt的模型寫(xiě)成
(Y_t-δ)=α_1 (Y_(t-1)-δ)+u_t
其中δ是Y的均值,而ut是具有零均值和恒定方差σ^2的不相關(guān)隨機(jī)誤差項(xiàng)(即ut是白噪音),則成Yt遵循一個(gè)一階自回歸或AR(1)隨機(jī)過(guò)程。
P階自回歸函數(shù)形式寫(xiě)成:
(Y_t-δ)=α_1 (Y_(t-1)-δ)+α_2 (Y_(t-2)-δ)+α_3 (Y_(t-3)-δ)+?+α_p2 (Y_(t-p)-δ)+u_t
模型中只有Y這一個(gè)變量,沒(méi)有其他變量??梢岳斫獬伞白寯?shù)據(jù)自己說(shuō)話”。
第二步:移動(dòng)平均過(guò)程
上述AR過(guò)程并非是產(chǎn)生Y的唯一可能機(jī)制。如果Y的模型描述成
Y_t=μ+β_0 u_t+β_1 u_(t-1)
其中μ是常數(shù),u為白噪音(零均值、恒定方差、非自相關(guān))隨機(jī)誤差項(xiàng)。t時(shí)期的Y等于一個(gè)常數(shù)加上現(xiàn)在和過(guò)去誤差項(xiàng)的一個(gè)移動(dòng)平均值。則稱Y遵循一個(gè)一階移動(dòng)平均或MA(1)過(guò)程。
q階移動(dòng)平均可以寫(xiě)成:
Y_t=μ+β_0 u_t+β_1 u_(t-1)+β_2 u_(t-2)+?+β_q u_(t-q)
自回歸于移動(dòng)平均過(guò)程
如果Y兼有AR和MA的特性,則是ARMA過(guò)程。Y可以寫(xiě)成
Y_t=θ+α_1 Y_(t-1)+β_0 u_t+β_1 u_(t-1)
其中有一個(gè)自回歸項(xiàng)和一個(gè)移動(dòng)平均項(xiàng),那么他就是一個(gè)ARMA(1,1)過(guò)程。Θ是常數(shù)項(xiàng)。
ARMA(p,q)過(guò)程中有p個(gè)自回歸和q個(gè)移動(dòng)平均項(xiàng)。
第三步:自回歸求積移動(dòng)平均過(guò)程
上面所做的都是基于數(shù)據(jù)是平穩(wěn)的,但是很多時(shí)候時(shí)間數(shù)據(jù)是非平穩(wěn)的,即是單整(單積)的,一般非平穩(wěn)數(shù)據(jù)經(jīng)過(guò)差分可以得到平穩(wěn)數(shù)據(jù)。因此如果我們講一個(gè)時(shí)間序列差分d次,變成平穩(wěn)的,然后用AEMA(p,q)模型,則我們就說(shuō)那個(gè)原始的時(shí)間序列是AEIMA(p,d,q),即自回歸求積移動(dòng)平均時(shí)間序列。AEIMA(p,0,q)=AEMA(p,q)。

通常,ARIMA 模型建模步驟有4個(gè)階段: 序列平穩(wěn)性檢驗(yàn),模型初步識(shí)別,模型參數(shù)估計(jì)和模型診斷分析。?
模型實(shí)現(xiàn)
步驟一:識(shí)別。找出適當(dāng)?shù)膒、d、和q值。通過(guò)相關(guān)圖和偏相關(guān)圖可以解決。
步驟二:估計(jì)。估計(jì)模型周所含自回歸和移動(dòng)平均項(xiàng)的參數(shù)。有時(shí)可以用最小二乘法,有時(shí)候需要用非線性估計(jì)方法。(軟件可以自動(dòng)完成)
步驟三:診斷(檢驗(yàn))??从?jì)算出來(lái)的殘差是不是白噪音,是,則接受擬合;不是,則重新在做。
步驟四:預(yù)測(cè)。短期更為可靠。
具體來(lái)說(shuō):
首先,看一下有沒(méi)有很明顯的trend,需不需要differencing之后再建模。

從ACF和PACF的結(jié)果來(lái)看,序列沒(méi)有很快地落入虛線范圍之內(nèi),因此,序列不平穩(wěn)。對(duì)序列進(jìn)行差分。
????畫(huà)出ACF 和PACF,通過(guò)看圖來(lái)決定用哪個(gè)模型(ARMA(p,q),ARIMA之類的)。

從差分后的數(shù)據(jù)結(jié)果來(lái)看,ACF在8階后開(kāi)始落入虛線范圍,PACF在2階后很快落入虛線范圍,因此p=8,q=2,d=1。
xz1=automa(Dist[1:66,2],ic=c('bic'),trace=T)#自動(dòng)查找最優(yōu)的arima模型
ARIMA(2,2,2) ? ? ? ? ? ? ? ? ? ?: -1058.701
ARIMA(0,2,0) ? ? ? ? ? ? ? ? ? ?: -1026.504
ARIMA(1,2,0) ? ? ? ? ? ? ? ? ? ?: -1049.834
ARIMA(0,2,1) ? ? ? ? ? ? ? ? ? ?: -1048.83
ARIMA(1,2,2) ? ? ? ? ? ? ? ? ? ?: -1062.532
ARIMA(1,2,1) ? ? ? ? ? ? ? ? ? ?: -1050.673
ARIMA(1,2,3) ? ? ? ? ? ? ? ? ? ?: -1058.723
ARIMA(2,2,3) ? ? ? ? ? ? ? ? ? ?: Inf
ARIMA(0,2,2) ? ? ? ? ? ? ? ? ? ?: -1060.99
Best model: ARIMA(1,2,2)
?

?

??????從殘差的ACF結(jié)果來(lái)看,序列很快穩(wěn)定地落入虛線范圍,模型穩(wěn)定。
plot(Discnt[,1],Disnt[,2])
points(c(2016:2100) ,Diunt[66,2]+diffinv(xzrcast$mean)[-1],col="red")#預(yù)測(cè)值2015到2100年

?

從殘差的ACF結(jié)果來(lái)看,序列很快穩(wěn)定地落入虛線范圍,模型穩(wěn)定。
為了檢驗(yàn)預(yù)測(cè)誤差是均值為零的正態(tài)分布,我們可以畫(huà)出預(yù)測(cè)誤差的直方圖,并覆蓋上均值為零、標(biāo)準(zhǔn)方差的正態(tài)分布的曲線圖到預(yù)測(cè)誤差上。
points(mst$mids, myst$density, type="l", col="blue", lwd=2)
}
plotForecrrors(xzrrecast $residuals)

參考文獻(xiàn)
【1】統(tǒng)計(jì)模擬及其R實(shí)現(xiàn),肖枝洪,武漢大學(xué)出版社
【2】Logistic模型在人口預(yù)測(cè)中的應(yīng)用,閻慧臻,大連工業(yè)大學(xué)學(xué)報(bào),第27卷第4期?

最受歡迎的見(jiàn)解
1.用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應(yīng)用
2.R語(yǔ)言GARCH-DCC模型和DCC(MVT)建模估計(jì)
3.R語(yǔ)言實(shí)現(xiàn) Copula 算法建模依賴性案例分析報(bào)告
4.R語(yǔ)言COPULAS和金融時(shí)間序列數(shù)據(jù)VaR分析
5.R語(yǔ)言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)
6.用R語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例
7.r語(yǔ)言預(yù)測(cè)波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
8.R語(yǔ)言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場(chǎng)風(fēng)險(xiǎn)