时间序列作业

 

第二次上机实验:模拟MA模型和ARMA模型

 作业内容请访问:http://www.doc88.com/p-209946619868.html

参考解答:

#2--5上机结果
n<-100;     
x1<-0;
a2<-0;
a3<-0;
x<-0;      
for(i in -50:n)          
{a1<-rnorm(1);          
x1<-a1+0.65*a2+0.24*a3;
a3<-a2;
a2<-a1;                    
if(i>0)
x[i]<-x1}        
x
mean(x)#-0.007158113
var(x)#1.532393
fivenum(x)#-2.33380162 -0.96968524  0.01153527  0.78820663  2.37949770
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture1

par(mfrow=c(1,2))
acf(x)
pacf(x)#see picture 2

#6
set.seed(100)
n<-100;     
x1<-0;
a2<-0;
a3<-0;
x<-0;      
for(i in -50:n)          
{a1<-rnorm(1);          
x1<-a1-0.65*a2-0.24*a3;
a3<-a2;
a2<-a1;                    
if(i>0)
x[i]<-x1}        
x
mean(x)#0.009997361
var(x)# 1.745586
fivenum(x)#-3.54820575 -0.91206753 -0.02810196  0.85317906  3.06819255
par(mfrow=c(1,1))
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture3

par(mfrow=c(2,1))
acf(x)
pacf(x)#see picture 4

#7
set.seed(100)
n<-100;     
x1<-0;
a2<-0;
a3<-0;
x<-0;      
for(i in -50:n)          
{a1<-rnorm(1);          
x1<-a1-0.65*a2+0.24*a3;
a3<-a2;
a2<-a1;                    
if(i>0)
x[i]<-x1}        
x;
mean(x)#-0.04177703
var(x)# 1.864563
fivenum(x)#-3.46235063 -1.03775369 -0.06152364  0.93842732  2.96942047
par(mfrow=c(1,1))
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture 5

par(mfrow=c(2,1))
acf(x)
pacf(x)#see picture 6

#8
set.seed(100)
x<-arima.sim(n = 100, list( ma = c(0.65, -0.24)))
mean(x)#-0.03727247
var(x)# 1.401805
fivenum(x)#-3.54417536 -0.69506541 -0.04359503  0.66448787  3.33484756
par(mfrow=c(1,1))
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture 7

par(mfrow=c(2,1))
acf(x)
pacf(x)#see picture 8

#8 use function in R directly
set.seed(100)
x<-arima.sim(n = 100, list(ar=c( ma = c(0.65, -0.24)))
mean(x)#-0.03727247
var(x)# 1.401805
fivenum(x)#-3.54417536 -0.69506541 -0.04359503  0.66448787  3.33484756
par(mfrow=c(1,1))
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture 7

par(mfrow=c(2,1))
acf(x)
pacf(x)#see picture 8

#9
set.seed(100)
x<-arima.sim(n = 100, list(ar=c(-0.75,-0.5), ma = c(0.3, 0.4)))+5
mean(x)#4.98
var(x)# 1.692439
fivenum(x)# 1.658756 4.142209 4.996332 5.941509 8.064161
par(mfrow=c(1,1))
plot(x,type="b",xlab="i",ylab=expression(X[i]),col=2)#see picture 9

par(mfrow=c(2,1))
acf(x)
pacf(x)#see picture 10
#10回到graph窗口观察各种序列图形的异同。
#acf均是2步截尾的(ARMA不是)pacf均是拖尾的,arma的acf也是拖尾的
#acf衰减情况不同,有指数衰减的,也有震荡衰减的

#11 模拟其他随机序列,体会不同类型随机序列的样本自相关函数和样本偏自相关函数的差异,尤其是拖尾性与截尾性的区分。
require(graphics)

x1<-arima.sim(n = 63, list(ar = c(0.8897, -0.4858), ma = c(-0.2279, 0.2488)),
          sd = sqrt(0.1796))
# mildly long-tailed
x2<-arima.sim(n = 63, list(ar=c(0.8897, -0.4858), ma=c(-0.2279, 0.2488)),
          rand.gen = function(n, ...) sqrt(0.1796) * rt(n, df = 5))
par(mfrow=c(2,1))
acf(x1)
pacf(x1)
par(mfrow=c(2,1))
acf(x2)
pacf(x2)
#截尾性与拖尾性其实也没有那么好判断,这与acf的衰减幅度有关。如果衰减幅度特别大的时候,用ARMA拟合效果也不错
#思考:如何利用样本自相关函数和样本偏自相关函数识别序列类型?
#看截尾性与拖尾性,也可以使用广义自相关函数eacf去判断


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值