网站大量收购独家精品文档,联系QQ:2885784924

格兰杰因果关系检验实现.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

格格兰兰杰杰因因果果关关系系检检验验实实现现方方法法详详解解

一一、、基基本本概概念念与与原原理理

格兰杰因果关系检验(GrangerCausalityTest)是计量经济中用于分析时间序列变量间预测关系的重要方法,由诺贝尔经济

奖得主CliveGranger于1969年提出。该方法的核心思想是:若变量X的滞后项能够显著改善对变量Y的预测精度,则称X是Y

的格兰杰原因。需要注意的是,这种因果关系并非哲意义上的真正因果,而是基于统计预测有效性的概念。

检验的理论基础建立在向量自回归(VAR)模型框架下,主要依赖以下基本假设:1.时间序列平稳性:要求检验变量满足平

稳性条件或存在协整关系2.信息完整性:所有相关变量都应包含在模型中3.线性关系假设:默认变量间存在线性影响关系4.

无隐藏变量:模型应包含所有可能影响系统的变量

二二、、数数建建模模基基础础

设两个平稳时间序列{X_t}和{Y_t},建立双变量VARp)模型:

Y_t=α_0+Σ_{i=1}^pα_iY_{t-i}+Σ_{i=1}^pβ_iX_{t-i}+ε_tX_t=γ_0+Σ_{i=1}^pγ_iX_{t-i}+Σ_{i=1}^pδ_iY_{t-i}+η_t

检验X是否为Y的格兰杰原因时,原假设H0为:β_1=β_2=...=β_p=0对应的备择假设H1为:至少存在某个β_i≠0

检验统计量构造采用F检验形式:F=[RSS_rRSS_ur)/p]/[RSS_ur/T-2p-1)]其中RSS_r表示受限模型(不含X滞后项)的残

差平方和RSS_ur表示非受限模型(包含X滞后项)的残差平方和p为滞后阶数,T为样本容量

三三、、检检验验实实施施步步骤骤

((一一))数数据据预预处处理理

1.平稳性检验:使用ADF检验、PP检验等方法验证序列平稳性

2.差分处理:对非平稳序列进行差分直至平稳

3.协整检验(非必需):当原始序列非平稳但存在协整关系时可直接检验

((二二))模模型型设设定定

1.滞后阶数选择:信息准则法:通过AIC、BIC、HQIC等准则确定最优滞后阶数似然比检验:比较不同滞后阶数模型的显

著性经验法则:通常取季度数据滞后4阶,月度数据滞后12阶

2.模型形式确认:确定是否包含趋势项、截距项处理季节性因素(如有必要)

((三三))假假设设检检验验流流程程

1.构建受限模型(RestrictedModel):Y_t=α_0+Σ_{i=1}^pα_iY_{t-i}+ε_t

2.构建非受限模型(UnrestrictedModel):Y_t=α_0+Σ_{i=1}^pα_iY_{t-i}+Σ_{i=1}^pβ_iX_{t-i}+ε_t

3.计算残差平方和:分别估计两个模型得到RSS_r和RSS_ur

4.构造F统计量:根据前文公式计算检验统计量

5.显著性判断:将计算的F值与临界值比较或通过p值判断(常用5%显著性水平)

((四四))结结果果解解释释

1.若拒绝原假设,则认为X是Y的格兰杰原因

2.需同时检验Y对X的因果关系,可能存在四种结果:单向因果关系双向因果关系无因果关系独立关系

四四、、Python实实现现示示例例

importnumpyasnp

importpandasaspd

fromstatsmodels.tsa.stattoolsimportgrangercausalitytests

#生成模拟数据

np.random.seed(123)

n=200

x=np.random.normal(size=n)

y=0.5*x.sift(1)+np.random.normal(scale=0.5,size=n)

data=pd.DataFrame({X:x,Y:y}).dropna()

#执行格兰杰检验

max_lag=4#最大滞后阶数

test_result=grangercausalitytests(data[[Y,X]],maxlag=max_lag)

#结果解读

forlaginrange(1,max_lag+1):

print(f\nLag{lag}:)

p_value=test_result[lag][0

文档评论(0)

eureka + 关注
实名认证
内容提供者

好好学习,天天向上

1亿VIP精品文档

相关文档