R语言-时间序列-arima模型-forecast、tseries包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/symoriaty/article/details/78397037

最近初步接触了下如何用R语言进行时间序列分析,自己动手写了段小代码。

首先呢是生成随机观测值,接着画出时间序列图,然后进行单根检验和用 ACF 和 PACF 指令分别画出自相关数和偏自相关系数图。

随机观测值生成我用了两种,一种是迭代随机生成,一种是用arima.sim函数生成一列符合arima(p,q)模型的数据。

install.packages("tseries") #安装"tseries"包,仅需在首次运行时安装
install.packages("forecast") #安装"forecast"包,仅需在首次运行时安装

library('forecast') #调出"tseries"包
library('tseries') #调出"forecast"包


funy <- function(t)
{
  return(ifelse(t>0, 0.75+0.85*funy(t-1), t))
}  #构造一个递归函数

set.seed(1)  #设定编号为1的随机数种子,目的是下次重复时生成同样的随机数help
u<-rnorm(500, mean=0, sd=1) #随机生成500个服从正态分布的独立同分布的白噪声(均值为0,标准差为1)y<-vector()

y<-vector()
for(t in 1:500)
{
    y[t]=funy(t)+u[t]
}  #循环调用递归函数和白噪声生成函数,以生成500个观测值


mean(y) #计算均值E(yt)
var(y) #计算方差Var(yt)


plot.ts(y, col="blue", main="y变量的时间序列图", xlab="t", ylab="y")


adf.test(y, alternative="stationary")  #adf单根验定


Acf(y, main='y-AC')  #作自相关图
Pacf(y, main='y-PAC')  #作偏自相关图



install.packages("tseries") #安装"tseries"包,仅需在首次运行时安装
install.packages("forecast") #安装"forecast"包,仅需在首次运行时安装

library('forecast') #调出"forecast"包
library('tseries') #调出"tseries"包


set.seed(1)  #设定编号为1的随机数种子,目的是下次重复时生成同样的随机数
y <- 0.75+arima.sim(list(ar=0.85), sd = sqrt(1), n = 500) #创建一组500笔的观测值
print(y)

mean(y) #计算均值E(yt)
var(y) #计算方差Var(yt)


plot.ts(y, col="blue", main="y变量的时间序列图", xlab="t", ylab="y")


adf.test(y, alternative="stationary")  #adf单根验定


Acf(y, main='y-AC')  #作自相关图
Pacf(y, main='y-PAC')  #作偏自相关图


y.arima <- Arima(y, order=c(1,0,0)) #用Arima指令进行时间序列回归,arima中的order参数是order(p,d,q),由(e)结果看出p=1
summary(y.arima)





猜你喜欢

转载自blog.csdn.net/symoriaty/article/details/78397037