时间序列上机作业
统计学 1001 班
杨宸暐
U201010071
1. (p96 习题一 1.5)已知平稳序列的自协方差函数
(
0
2
,
,
1
)
(12.4168, 4.7520,5.2),
k
0,
k
3,
试为这个平稳序列建立 MA(2)
模型。
解:利用公式可以计算自协方差函数是:
2
b
1
b b
1 2
)
2
b
2
)
(1
(
b
1
b
2
k
2
0
2
1
2
2
0,
k
0.36,
a
1
2
编程求解上述方程得到:
a
1
0.65,
2
8
故这个平稳序列 MA(2)模型为:
X
t
t
0.36
t
1
0.65
t
2
,
t
程序代码:
clear,clc
%%
syms b1 b2 sigma2;
[b1 b2 sigma2]=solve('sigma2*(1+b1^2+b2^2)=12.4168',...
'sigma2*(b1+b1*b2)=-4.7520',...
'sigma2*b2=5.2','b1','b2','sigma2');
b1=vpa(b1,4)
b2=vpa(b2,4)
sigma2=vpa(sigma2,4)
2. (p1062.4)给定平稳序列
tX 的自协方差函数
(
0
1
,
,
,
)
4
(5.61, 1.1,0.23,0.43, 0.1)
,试为
tX 建立 ARMA(2,2)模型。
1) 解:利用(2.15)计算出自回归系数
(
,
2
a a
1
)
( 0.0211, 0.3953)
2) 利用(1.12)计算出滑动平均部分的系数和白噪声的方差:
(
,
b b
1
2
)
3) 所要求的模型是:
( 0.1758,0.4539),
2
5.3412
X
t
0.0211
X
0.3953
X
t
0.1758
1
t
0.4539
t
2
,
t
t
2
t
1
其中 t 是 (0,5.3412)
WN
。
主函数程序:
clc,clear
%%
Gama= [ 5.61, -1.1, 0.23, 0.43, -0.1 ];
p = 2;
q = 2;
k = 10;
[ a, b_q, sigma2 ] = ARMA ( Gama, p, q, k );
%%
psi0 = 1;
N = 100;
psi = zeros(N);
psi(1) = b_q(1) + a(1) * psi0;
psi(2) = b_q(2) + a(1) * psi(1) + a(2) * psi0;
for j = 3:N
if j > q
b = 0;
else
b = b_q(j);
end
psi(j) = b + a(1) * psi(j-1) + a(2) * psi(j-2);
end
for i = 5:10
Gama(i) = sigma2 * [ psi0, psi( 1:N-i ) ] * psi( i:N )';
end
函数文件:
function [ a, b_q, sigma2 ] = ARMA ( gamma, p, q, k )
Gamma_pq = diag( gamma(q+1)*ones(p,1) );
for i = 1:p-1
Gamma_pq = Gamma_pq + diag( gamma(q+1+i)*ones(p-i,1), -i )...
+ diag( gamma(q+1-i)*ones(p-i,1), i );
end
gamma_pq = gamma( q+2:q+p+1 )';
a = Gamma_pq \ gamma_pq;
gamma_y = zeros(1,q+1);
a_ = [ -1; a ];
for j = 1:q+1
gamma_kp = diag( gamma(j)*ones(p+1,1) );
for i = 1:p
gamma_kp = gamma_kp + diag( gamma(abs(j-1-i)+1)*ones(p+1-i,1), -i )...
+ diag( gamma(j+i)*ones(p+1-i,1), i );
end
gamma_y(j) = a_' * gamma_kp * a_;
end
[ b_q, sigma2 ] = MA ( gamma_y, q, k );
end
3. (p1271.5)利用公式(2.10),(2.11)计算 ARMA(2,2)模型(2.26)的自协方差函数
k k (p1062.5)
5,6,
,10.
,
解:由上面的 ARMA(2,2)模型可以计算得自协方差函数为 ,
k k :
5,6,
,10.
-0.1679
0.0431
0.0655
-0.0184
-0.0255
0.0078
4. 对于不同的实数 ,
a b 和正态白噪声
( 1,1)
WN
2
(0,2 )
,产生 AR(2)模型
(1
)
b X
)(1
a
,
t
t
t
的 N=200 个数据,计算 NX ,分析 ,a b 的取值怎样影响估计量 NX 的精度。
解:对 ,a b 取不同值计算结果如下:
a
b
NX
0.1
0.5
0.3
0.5
0.5
0.7
0.5
0.9
-0.8938
0.3105
0.6412
2.9052
因此可以发现:随着 a 的增大 NX 增大,随b 的增大 NX 减大。
程序如下:
clc,clear
a=0.5;
b=0.5;
N = 200;
eps0 = normrnd( 0, 2^2 );
eps = normrnd( 0, 2^2, [1,N] );
x0 = eps0;
x(1) = eps(1) + (a+b) * x0;
x(2) = eps(2) + (a+b) * x(1) - a*b * x0;
for i = 3:N
x(i) = eps(i) + (a+b) * x(i-1) - a*b * x(i-2);
end
xmean = mean(x)
5. (p1433.4)设 t 是正态
WN ,对 ARMA(2,2)模型
(0,
)
2
1
c B
1
1
c B X
2
t
1
d B
1
1
d B
2
,
t
t
中的不同参数
c c d d ,在计算机上产生 500 个 ARMA(2,2)数据。用 2
1
2
1
2
,
,
,
1,1
检验方法检验 0H :是白噪声,取 m=6.回答以下问题:当 1
c c d d 取何值时, 2
,
,
,
2
1
2
检验对 0H 的否定率可以达到 90%或以上。
c
解:当取 1
0.1,
c
2
0.9,
c
3
0.9,
c
4
时否定率可以达到 100%。
0.9
主程序:
clear,clc
m=0;
for k=1:20
p(k)=p_k();
if p(k)>=12.59
m=m+1;
end
end
m/k
函数文件:
function p2=p_k()
%%
c1=0.1;
c2=-0.9;
d1=0.9;
d2=0.9;
N = 500;
m=6;
eps0 = normrnd( 0, 2^2 );
eps = normrnd( 0, 2^2, [1,N] );
x0 = eps0;
x(1) = eps(1)-(d1+d2) * eps0 + (c1+c2) * x0;
x(2) = eps(2)-(d1+d2) * eps(1) + c1*c2 * eps0+ (c1+c2) * x(1) - c1*c2 * x0;
%%
for i = 3:N
x(i) = eps(i) + -(d1+d2) * eps(i-1) + c1*c2 * eps(i-2)+(c1+c2) * x(i-1) - c1*c2 *
x(i-2);
end
xmean = mean(x);
s=sum((x-xmean).^2);
%%
for k=1:m
for t=1:N-k
y(t)=(x(t)-xmean)*(x(t+k)-xmean);
p(k)=sum(y)/s;
end
end
p2=N*sum(p.^2)
end
6. 设 t 是[-4,4]上均匀分布的白噪声,AR(4)模型 (
A B X 的参数是
)
t
t
a
1
a
3
0.9,
0.7,
a
2
a
4
1.4,
0.6.
在计算机上产生上述 AR(4)模型的 500 个数据。为这 500 个数据建立 AR 模型:
取阶数的上界 0
P ,分别用 AIC 和 BIC 方法定阶,计算 Yule-Walker 估计。
12
解:当 p=4 时 AIC 与 BIC 同时取得最小值,因此定阶为 4,此时 Yule-Walker 估
计的系数分别为-0.890,-1.327,-0.697,-0.512,可以返现估计效果较好,同时
方差为 1.0043,与标准正态分布几乎相同。
主程序:
clear,clc
%%
P0=12;
N=200;
%%
for k=1:P0
sigma2(k)=AIC_BIC(k);
AIC(k)=log(sigma2(k))+2*k/N;
BIC(k)=log(sigma2(k))+log(N)*k/N;
end
%%
[C1 I1]=min(AIC)
[C2 I2]=min(BIC)
函数文件:
function sigma2=AIC_BIC(p)
%%
a1=-0.9;
a2=-1.4;
a3=-0.7;
a4=-0.6;
N = 200;
eps0 = normrnd( 0, 1 );
eps = normrnd( 0, 1, [1,N] );
%%
x0 = eps0;
x(1) = eps(1) + a1* x0;
x(2) = eps(2) + a1* x(1) + a2 * x0;
x(3) = eps(3) + a1* x(2) + a2 *x(1) + a3* x0;
x(4) = eps(4) + a1* x(3) + a2 *x(2) + a3* x(1) + a4 * x0;
for i = 5:N
x(i) = eps(i) + a1 * x(i-1) + a2 * x(i-2) + a3 * x(i-3) + a4 * x(i-4);
end
%%
xmean = mean(x);
y=x-xmean;
r0=sum(y.^2)/N;
for k=1:p
for j=1:N-k
ss(j)=y(j)*y(j+k);
end
r(k)=sum(ss)/N;
end
for i=1:p
Gama(i,i)=r0;
end
for i=2:p
for j=1:i-1
Gama(i,j)=r(i-j);
Gama(j,i)=Gama(i,j);
end
end
a=inv(Gama)*r';
sigma2=r0-r*a;
7. (p225 3.1)设 t 是正态白噪声 (0,4)
WN
,并且 ARMA(4,2)模型的参数是
a
T
(1.16, 0.37, 0.19,0.18) ,
b
T
(0.5, 0.4) .
设 p=4,q=2,已知用计算机产生上述
的 ARMA 模型的 100 个数据。
1) 用公式(3.5)计算自回归部分的参数估计,用逆性关系数的方法计算运动平均