我使用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
是否有人熟悉此方法以及如何继续?
感谢。
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
答案 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
。