脉冲响应函数与bootrtapped置信区间matlab

时间:2018-01-28 15:09:42

标签: matlab

我使用AR(8)模型对消耗数据进行了脉冲响应。现在我想使用bootstrapping在IRF周围创建一个95%的CI。 我不确定我应该引导什么参数。

此代码一般用于生成bootstraps,但我无法看到如何使用它来绘制图中IRF周围的CI。

mu=20;
sigma=5;
N=250;

rng(1);
x=mu+sigma*randn(N,1)
muhat=mean(x);
e=x-muhat;
for i=1:B
 draw=randi(N,N,1);
 xn=muhat+e(draw);
 mun(i)=mean(xn);
end 

是否有人熟悉此方法以及如何继续?

感谢。

enter image description here

代码

clear;

X=xlsread('data.xls');
% Demean the data 
 mean_u=mean(X);
 X=X-mean_u*ones(length(X),1);
%Construct lag matrix 
 LM=lagmatrix(X,1:L);
 X=X(L+1:end);
 LM=LM(L+1:end,:);
 beta=LM\X;
%Begin calculating irf 
 F=companion(beta)
 e=X-LM*beta;
 sigma=std(e);
 x=zeros(L,T);
 x(1,1)=sigma;
for t=2:T
 x(:,t)=F*x(:,t-1);
end 

1 个答案:

答案 0 :(得分:0)

您可以使用Matlab提供的现成解决方案bootci function。这是一个直接取自官方文档的例子:

y = normrnd(1,1,30,1);
LSL = -3; USL = 3;
capable = @(x)(USL-LSL)./(6* std(x));
ci = bootci(2000,capable,y);

您所要做的就是将当前代码转换为函数,并将其句柄传递给bootci