matlab_格兰杰因果关系检验

      格兰杰因果关系检验:“依赖于使用过去某些时点上所有信息的最佳最小二乘预测的方差。"

       主要适用于经济变量。

       其统计学本质上是对平稳时间序列数据一种预测,仅适用于计量经济学的变量预测,不能作为检验真正因果性的判据。

       基本步骤:

      1)将当前的y对所有的滞后项y以及别的什么变量(如果有的话)做回归,即y对y的滞后项yt-1,yt-2,…,yt-q及其他变量的回归,但在这一回归中没有把滞后项x包括进来,这是一个受约束的回归。然后从此回归得到受约束的残差平方和RSSR。

      2)做一个含有滞后项x的回归,即在前面的回归式中加进滞后项x,这是一个无约束的回归,由此回归得到无约束的残差平方和RSSUR。
      3)零假设是H0:α1=α2=…=αq=0,即滞后项x不属于此回归。
      4)为了检验此假设,用F检验,即:
     它遵循自由度为q和(n-k)的F分布。在这里,n是样本容量,q等于滞后项x的个数,即有约束回归方程中待估参数的个数,k是无约束回归中待估参数的个数。
     5)如果在选定的显著性水平α上计算的F值超过临界值Fα,则拒绝零假设,这样滞后x项就属于此回归,表明x是y的原因。
     6)同样,为了检验y是否是x的原因,可将变量y与x相互替换,重复步骤(1)~(5)。
function granger(x,y,alpha,max_lag)
T = length(x);
BIC = zeros(max_lag,1);
RSSR = zeros(max_lag,1);
i = 1;
while i <= max_lag
    ystar = x(i+1:T,:);
    xstar = [ones(T-i,1) zeros(T-i,i)];
    j = 1;
    while j <= i
        xstar(:,j+1) = x(i+1-j:T-j);
        j = j+1;
    end
    [b,bint,r] = regress(ystar,xstar);
    BIC(i,:) = T*log(r'*r/T) + (i+1)*log(T);
    RSSR(i,:) = r'*r;
    i = i+1;
end
%RSSR不加滞后项x的受约束的残差平方和
x_lag = find(min(BIC));
BIC = zeros(max_lag,1);
RSSUR = zeros(max_lag,1);
i = 1;
while i <= max_lag
    ystar = x(i+x_lag+1:T,:);
    xstar = [ones(T-(i+x_lag),1) zeros(T-(i+x_lag),x_lag+i)];
    j = 1;
    while j <= x_lag
        xstar(:,j+1) = x(i+x_lag+1-j:T-j,:);
        j = j+1;
    end
    %加入滞后项
    j = 1;
    while j <= i
        xstar(:,x_lag+j+1) = y(i+x_lag+1-j:T-j,:);
        j = j+1;
    end
    [b,bint,r] = regress(ystar,xstar);
    BIC(i,:) = T*log(r'*r/T) + (i+1)*log(T);
    RSSUR(i,:) = r'*r;
    i = i+1;
end
y_lag = find(min(BIC));
F_num = ((RSSR(x_lag,:) - RSSUR(y_lag,:))/y_lag);
F_den = RSSUR(y_lag,:)/(T-(x_lag+y_lag+1));
F = F_num/F_den;
c_v = finv(1-alpha,y_lag,(T-(x_lag+y_lag+1)));
p = 1-fcdf(F,y_lag,(T-(x_lag+y_lag+1)));
end





  • 10
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值