最近初步接触了下如何用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变量的时间序列图", xla