【应用时间序列】第三次上机——随机模拟AR(1)模型

目录

一、SAS

1.代码

         2.结果

(1)延迟阶数、协方差函数、自相关函数 

(2)逆自相关系数

​(3)偏自相关系数 ​

(4)自相关图

           (5)偏自相关图

二、R语言

1.代码

2.结果

(1)时序图

(2)自相关图

(3)偏自相关图

三、python

1.代码

2.结果

(1)自相关图

(2)偏自相关图

四、MATLAB

1.代码

2.结果

(1)时序图

(2)自相关图

(3)偏自相关图

五、STATA

1.代码

2.结果

(1)自相关图

(2)偏自相关图

六、EVIEWS


任务:绘制AR(1):x_{t}=0.8x_{t-1}+\epsilon _{t}的自相关图和偏自相关图。

一、SAS

1.代码

//第一步:随机模拟ARMA模型
//开启数据步,将后面产生的序列值存入数据集b中 
data b; 
//对初始序列赋值,随机模拟之前的序列值均赋值为0,x_1代表x_t-1                                                                                                                                  
x_1=0;
//启动循环命令   
//产生循环指针t变量,从-100开始赋值,循环一次自动加一,直到t=1000循环结束       
do t=-100 to 1000;   
//每次循环产生一个服从标准正态分布的随机数,赋值给e,e代表随机项,12345是任意给的随机数迭代初始值                                                                                                                           
e=rannor(12345);      
//产生随机项后,给序列t时刻的序列值赋值                                                                                   
x=0.8*x_1+e;   
//这次循环即将结束,在下一次循环时,这些序列值又会变成延迟一阶的历史信息,所以在本次循环结束前,将本次产生的序列值赋给下一次要用到的延迟一阶序列值                                                                                                                      
x_1=x;  
//随机模拟会有伪随机的问题,且主要出现在开始阶段,所以多产生了100个随机数(t=-11),对于前100个随机模拟值,忽略不要,只输出最后1000个随机模拟结果                                                                                                                                
if t>0 then output;  
//结束本次循环                                                                                                                   
end;  
//再启动一个data步是简化数据集,只保留我们要的序列数据和时间标识                                                                                                                                
data b;                                                                                                                                 
set b;                                                                                                                                  
keep t x;                                                                                                                               
run; 
 
//第二步:绘制自相关图和偏自相关图
//计算随机序列的自相关系数和偏自相关系数,并按照指定延迟阶数输出自相关图和偏自相关图                                                                                                                                  
proc arima data=b;      
//调用ARIMA程序中的identify语句,对随机模拟序列进行统计性质的识别,将每个程序的识别结果存入指定的数据集                                                                                                                
identify var=x nlag=20 outcov=out1;                                                                                                     
run;   
//identify的默认输出内容已包含自相关图和偏自相关图,但是默认输出格式中包含2倍标准差的阴影部分。有时候输出信息太多,反而不容易看出拖尾和截尾细节
//如果对细节精度要求更高,可以按照自己指定的格式绘制自相关图和偏自相关图
//绘制自相关图和偏自相关图                                                                                                                                 
symbol c=red i=needle v=none;                                                                                                           
proc gplot data=out1;                                                                                                                   
plot corr*lag partcorr * lag;                                                                                                           
run; 

2.结果

        identify命令输出的数据集包括如下8个信息:

(1)延迟阶数、协方差函数、自相关函数 

(2)逆自相关系数

(3)偏自相关系数 

(4)自相关图

(5)偏自相关图

二、R语言

1.代码

e=rnorm(1000,0,1)
x=filter(e,filter = 0.8,method="recursive")
ts.plot(x)
acf(x)
pacf(x)

2.结果

(1)时序图

(2)自相关图

(3)偏自相关图

三、python

1.代码

from statsmodels.tsa.ar_model import AutoReg
import numpy as np

# 生成N(0,1)随机正态分布(白噪声)
noise = np.random.randn(1000)
wnoise = (noise-np.mean(noise))/np.std(noise)

# 生成AR(1)线性序列 X(t)=0.8X(t-1)+e(t)
X = [20]  # 初值
for i in range(1000):
    x2 = 0.8*X[i]+wnoise[i]
    X.append(x2)
XX=np.array(X)
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
plot_acf(XX)
plot_pacf(XX)

2.结果

(1)自相关图

 

(2)偏自相关图

四、MATLAB

1.代码

x=randn(1,1000);
y=linspace(0,1,1000);
for i=1:999
    y(i+1)=0.8*y(i)+x(i);
end
n=1:1000;
m=[n,y];
figure
plot(n,y)
figure
autocorr(y)
figure
parcorr(y)

2.结果

(1)时序图

(2)自相关图

(3)偏自相关图

五、STATA

1.代码

save "D:\个人成长\学业\课程\大三下课程\时间序列分析\作业\2\STATAA.dta"
tsset 日期
ac y
pac y

2.结果

(1)自相关图

(2)偏自相关图

六、EVIEWS


个人见解,还请各位读者批评指正! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值