关于数据挖掘:R语言用logistic逻辑回归和AFRIMAARIMA时间序列模型预测世界人口

58次阅读

共计 4645 个字符,预计需要花费 12 分钟才能阅读完成。

原文链接 :http://tecdat.cn/?p=27493 

本文利用 R 软件技术,别离利用 logistic 模型、ARFMA 模型、ARIMA 模型、工夫序列模型对从 2016 到 2100 年的世界人口进行预测。作者将 1950 年到 2015 年的历史数据作为训练集来预测 85 年的数据。模型稳定性通过修改后较好,故具备肯定的参考价值。

引言

随着工夫的推移,世界人口一直的增长,为了更好地把握世界人口的停顿速度与法则。咱们利用建设 logistic 模型并使用 R 语言软件来剖析并预测在 2100 年世界的人口数,并与预测出的数据做比照,看模型结构的好坏并进行模型改良与扩大。

模型一:logistic 模型

logistic 模型又称作阻滞增长模型,次要用来形容在环境资源有限度的状况下,人口数量的增长法则。因为一些因素的影响世界人口数量最终会达到一个饱和值。阻滞作用上体现在对的影响上,使得随着年份的减少而降落。若将示意为的函数,则它应是减函数。则有

因为 bgistic 回归模型就是基于二项分布族的狭义线性模型,因而在 R 软件中,Logistic 回归剖析能够通过调用狭义线性回归模型函数 glm()来实现,其调用格局为

Log< 一 glm(formula,family=binomial,data)其中,formula 为要拟合的模型,family=binomial 阐明散布为二项分布,data 为可抉择的数据框。

通过在世界银行网站上查阅相干数据,咱们将 1950 年到 2100 年的人口数据进行录入,并调用 glmnet 包来进行拟合。

summary(lg.glm)

plot(x, y, main = "人口数随年份变动的 logistic 曲线",xlab = "年份", ylab = "人口数(千亿)")

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

 从测验后果可看出随着工夫的推移能影响人口的数量,并且年份越大,人口密度越大;最终会停留到一个饱和值,并失去 logistic 回归模型:

模型二:AFRIMA 模型

工夫序列模型可分为段记忆模型和长记忆模型。个别的工夫序列分析模型有自回归 (AR) 模型、滑动均匀 (MA) 模型、自回归滑动均匀 (ARMA) 模型、自回归整合滑动均匀(ARIMA)模型等,这些模型次要是短记忆模型。目前,人们对宏观经济变量的实证钻研发现,长记忆模型尽管远距离观测值间的相依性很小然而仍具备钻研价值。分整自回归挪动均匀模型 (ARFMA) 模型是长记忆模型,它是由 Granger 和 Joyeux (1980)以及 Hosking (1981)在 ARIMA 模型的根底上构建的,广泛应用于经济金融畛域。

AFRIMA 模型定义

AFRIMA 模型的基于 A R M A 模型和 ARIMA 模型。

ARMA(p,q), 模型的模式为:

模型实现:

 arfi(Diut\[,2\]\[)# 建设 arfima 模型

plot(Discnt\[,1\],Dscunt\[,2\])# 原始数据

points(Dicount\[,1\]\[1:66\],f$fittedcol="red")# 拟合数据

 

从残差图的后果来看,ACF 的值不在虚线范畴内,即残差不安稳,不是白噪声,因而上面对数据进行一阶差分。

模型稳定性改良

对数据进行一阶差分使数据更加稳固。

points(c(2016:2100), diffinv(pre$mean)\[-1\]+ Discount\[66,2\],col="blue")

从残差图的后果来看,ACF 的值和 PACF 的值都在虚线范畴内,即残差安稳,因而模型稳固。

模型三:ARIMA 模型 

 ARIMA 模型定义

ARIMA 模型全称为差分自回归挪动均匀模型。是由博克思和詹金斯于 70 年代初提出的一驰名工夫序列预测办法,博克思 - 詹金斯法。其中 ARIMA(p,d,q)称为差分自回归挪动均匀模型,AR 是自回归,p 为自回归项;MA 为挪动均匀,q 为挪动均匀项数,d 为工夫序列成为安稳时所做的差分次数。

ARIMA 模型的根本思维是:将预测对象随时间推移而造成的数据序列视为一个随机序列,用肯定的数学模型来近似形容这个序列。这个模型一旦被辨认后就能够从工夫序列的过来值及当初值来预测将来值。

ARIMA 模型的根本思维是:将预测对象随时间推移而造成的数据序列视为一个随机序列,用肯定的数学模型来近似形容这个序列。这个模型一旦被辨认后就能够从工夫序列的过来值及当初值来预测将来值。

建模过程次要包含:

第一步:自回归过程

令 Yt 示意 t 期间的 GDP。如果咱们把 Yt 的模型写成

(Y\_t-δ)=α\_1 (Y_(t-1)-δ)+u_t

其中 δ 是 Y 的均值,而 ut 是具备零均值和恒定方差 σ^2 的不相干随机误差项 (即 ut 是白乐音),则成 Yt 遵循一个一阶自回归或 AR(1) 随机过程。

P 阶自回归函数模式写成:

(Y\_t-δ)=α\_1 (Y_(t-1)-δ)+α\_2 (Y\_(t-2)-δ)+α\_3 (Y\_(t-3)-δ)+⋯+α\_p2 (Y\_(t-p)-δ)+u_t

模型中只有 Y 这一个变量,没有其余变量。能够了解成“让数据本人谈话”。

第二步:挪动均匀过程

上述 AR 过程并非是产生 Y 的惟一可能机制。如果 Y 的模型形容成

Y\_t=μ+β\_0 u\_t+β\_1 u_(t-1)

其中 μ 是常数,u 为白乐音 (零均值、恒定方差、非自相干) 随机误差项。t 期间的 Y 等于一个常数加上当初和过来误差项的一个挪动平均值。则称 Y 遵循一个一阶挪动均匀或 MA(1)过程。

q 阶挪动均匀能够写成:

Y\_t=μ+β\_0 u\_t+β\_1 u_(t-1)+β\_2 u\_(t-2)+⋯+β\_q u\_(t-q)

自回归于挪动均匀过程

如果 Y 兼有 AR 和 MA 的个性,则是 ARMA 过程。Y 能够写成

Y\_t=θ+α\_1 Y_(t-1)+β\_0 u\_t+β\_1 u\_(t-1)

其中有一个自回归项和一个挪动均匀项,那么他就是一个 ARMA(1,1)过程。Θ 是常数项。

ARMA(p,q)过程中有 p 个自回归和 q 个挪动均匀项。

第三步:自回归求积挪动均匀过程

下面所做的都是基于数据是安稳的,然而很多时候工夫数据是非安稳的,即是单整 (单积) 的,个别非安稳数据通过差分能够失去安稳数据。因而如果咱们讲一个工夫序列差分 d 次,变成安稳的,而后用 AEMA(p,q)模型,则咱们就说那个原始的工夫序列是 AEIMA(p,d,q),即自回归求积挪动均匀工夫序列。AEIMA(p,0,q)=AEMA(p,q)。

通常,ARIMA 模型建模步骤有 4 个阶段: 序列平稳性测验,模型初步辨认,模型参数估计和模型诊断剖析。

模型实现

步骤一:辨认。找出适当的 p、d、和 q 值。通过相干图和偏相关图能够解决。

步骤二:预计。预计模型周所含自回归和挪动均匀项的参数。有时能够用最小二乘法,有时候须要用非线性预计办法。(软件能够主动实现)

步骤三:诊断(测验)。看计算出来的残差是不是白乐音,是,则承受拟合;不是,则从新在做。

步骤四:预测。短期更为牢靠。

具体来说:

首先,看一下有没有很显著的 trend,需不需要 differencing 之后再建模。

从 ACF 和 PACF 的后果来看,序列没有很快地落入虚线范畴之内,因而,序列不安稳。对序列进行差分。

    画出 ACF 和 PACF,通过看图来决定用哪个模型(ARMA(p,q),ARIMA 之类的)。

从差分后的数据后果来看,ACF 在 8 阶后开始落入虚线范畴,PACF 在 2 阶后很快落入虚线范畴,因而 p =8,q=2,d=1。

xz1=automa(Dist\[1:66,2\],ic=c('bic'),trace=T)# 主动查找最优的 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 后果来看,序列很快稳固地落入虚线范畴,模型稳固。

plot(Discnt\[,1\],Disnt\[,2\])

points(c(2016:2100) ,Diunt\[66,2\]+diffinv(xzrcast$mean)\[-1\],col="red")# 预测值 2015 到 2100 年

 

从残差的 ACF 后果来看,序列很快稳固地落入虚线范畴,模型稳固。

为了测验预测误差是均值为零的正态分布,咱们能够画出预测误差的直方图,并笼罩上均值为零、规范方差的正态分布的曲线图到预测误差上。

points(mst$mids, myst$density, type="l", col="blue", lwd=2)

}

plotForecrrors(xzrrecast $residuals)

参考文献

【1】统计模仿及其 R 实现,肖枝洪,武汉大学出版社

【2】Logistic 模型在人口预测中的利用,阎慧臻,大连工业大学学报,第 27 卷第 4 期 


最受欢迎的见解

1. 用机器学习辨认一直变动的股市情况—隐马尔科夫模型 (HMM) 的利用的利用 ”)

2.R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计

3.R 语言实现 Copula 算法建模依赖性案例剖析报告

4.R 语言 COPULAS 和金融工夫序列数据 VaR 剖析

5.R 语言多元 COPULA GARCH 模型工夫序列预测

6. 用 R 语言实现神经网络预测股票实例

7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型

8.R 语言如何做马尔科夫转换模型 markov switching model

9.matlab 应用 Copula 仿真优化市场危险

正文完
 0