Skip to content

介绍分位数回归,包括分位数Granger因果检验、QVAR及脉冲响应函数

License

Notifications You must be signed in to change notification settings

lei940324/Quantile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

功能介绍

  • 分位数 Granger 因果检验:计算各分位区间 Sup-Wald 统计量。

  • 分位数 VAR 模型估计:自回归分布滞后模型

  • 脉冲响应函数计算

  • 各分位点脉冲图绘制

代码实现原理

  • 使用pyqt5生成 GUI 界面

  • 使用statsmodels进行分位数回归

  • 使用pandas将结果保存在 excel 文件

Display

主窗口界面

主要包括:

  • 工具栏

    • 导入数据:点击该按钮,选择路径导入数据,如没有导入数据,默认导入测试数据

    • 开始运行:点击后进行分位数 Granger 因果检验,计算 Sup-wald 统计量

    • 终止运行:点击后终止程序

    • 查看数据:点击查看导入数据

    • 初始化:点击后初始化各参数设定

    • QVAR 估计:点击后进行 QVAR 模型参数设定

  • 区间设定:区间起点、中点、个数设定以及生成区间按钮

    注意:个数是点的个数,比如设定 17 个,则会生成 16 个分位区间

    例子:

    起点=0.1,终点=0.9,个数=2,则会生成区间:[0.1, 0.9]

    起点=0.1,终点=0.9,个数=3,则会生成区间:[0.1, 0.5]、[0.5, 0.9]

  • 参数设定

    • 日期:勾选表示第一列为日期序列,在进行计算 wald 统计量时会将其删除;若取消勾选,则不会删除第一列数据

    • 模式设定:代表循环模式,默认模式为单因素对各市场

      注意:数据要根据模式进行相应的排序

      假定 p=1,q=2,估计方程形式则为:Y=c1+c2Y-1+c3X-1+c4X-2

      模式选择 内容说明 数据排序 计算规则描述
      单因素对各市场 研究单一因素对各市场的因果关系,比如房价对股票,汇率市场的因果关系 data=[X,Y1,Y2,Y3] X 对 Y1回归;X 对 Y2回归;X 对 Y3回归
      相互影响 研究两因素之间的因果关系,比如房价与股票,汇率市场的相互因果关系 data=[X,Y1,Y2,Y3] X 对 Y1回归;X 对 Y2回归;X 对 Y3回归;Y1对 X 回归;Y1对 Y2回归;Y1对 Y3回归;.........
      多因素对单市场 研究多因素对单个市场的因果关系,比如各情绪对汇率市场的因果关系 data=[X1,X2,X3,Y] X1对 Y 回归,X2对 Y 回归;X3对 Y 回归
    • 信息准则:表示确定最优滞后阶数所选用的信息准则,包括 AIC 或 BIC 准则

      AIC(p, q) = lnS(θ) + (p+q+1)/T

      BIC(p, q) = lnS(θ) + (p+q+1)×lnT/(2T)

      其中 S(θ)表示分位数非对称绝对值残差和,T 为样本容量,p,q 均为滞后阶数。

    • 滞后估计数:计算最优滞后阶数时,需要分区间计算 AIC/BIC 值,选取该区间最小 AIC/BIC 值所对应的滞后阶数,则为最优滞后阶数。该参数是设定在整个分位区间选择计算的分位点个数,默认选取 30 个点

    • 最大阶数:表示选取的最大滞后阶数,默认选取 5 阶

    • wald 估计数:计算 wald 统计量时,在分位区间选择计算的分位点个数,默认选取 1000 个点

    • 有效数字:表示保留的小数点位数,默认保留三位小数

    • 输出日志:勾选后输出运行细节.txt文件,默认勾选

  • 估计信息显示:展示运行信息

QVAR 估计界面

  • 工具栏

    • 开始运行:点击后进行 QVAR 模型估计

    • 绘制脉冲图:点击计算各分位点脉冲响应示意图

    • 导入数据:如需增加控制变量,则需点击该按钮导入控制变量数据集

  • 滞后阶数

    • p:被解释变量 y 的滞后阶数

    • q:解释变量 x 的滞后阶数

  • 分位点:默认选取 5 个分位点[0.1, 0.25, 0.5, 0.75, 0.9]

    • √:点击增加分位点

    • ×:点击减少分位点

    注意:最多计算 10 个分位点

  • 控制变量:加入控制变量的回归公式

  • 信息显示:显示提示信息

Usage

第一步:在当前路径下的命令行输入:

python main.py

提示:在当前文件夹中,右键点击 cmd 或者 shell 打开命令行

第二步:点击导入数据按钮

输入成功的话,会有导入成功的提示

第三步:设定各参数

第四步:点击开始运行按钮,等待程序运行结束,结果保存在运行结果文件夹下的Granger.xlsx文件内

注:***、**、* 分别代表 1%、5%、10% 显著水平

项目目录

|-- Quantile
    |-- beauty_UI.py             // 美化 GUI 界面代码    
    |-- func.py                  // 主函数代码,定义分位数 Granger 因果检验计算    
    |-- main.py                  // 主程序       
    |-- README.md                // 说明文件        
    |-- data                     // 数据保存文件夹
    |   |-- output.xlsx          // 测试产生的结果文件   
    |   |-- Sup_wald_lag.xlsx    // 检验 Sup_wald 显著性文件   
    |   |-- 测试数据.xlsx         // 可以使用该文件进行测试,查看结果  
    |   |-- 运行细节.txt          // 测试日志  
    |-- pyqt5 界面                // 使用 Qt Creator 建立窗口产生的文件
    |   |-- GUI                  // 主窗口
    |   |-- child_GUI            // 子窗口
    |-- 运行结果                  // 运行结果存储文件夹

代码主体为main.pyfunc.py文件

估计原理

使用函数介绍

使用statsmodels库进行分位数回归命令:

  1. 使用 R 型公式来拟合模型
formula 说明 示例
~ 分隔符,左边为响应变量,右边为解释变量 y ~ x
+ 添加变量 y ~ x1 + x2
- 移除变量 y ~ x - 1(移除截距)
  1. 参数命令
属性 说明 方法 说明
res.params 获取估计参数值 res.summary() 展示估计结果
res.bse 获取标准差 res.cov_params() 获取协方差矩阵
res.resid 获取残差 res.f_test("x2 = 0") Wald 检验

分位数 Granger 因果检验实现原理

可以参考 econometrics 项目中的 分位数 Granger 因果检验

Development Tool

工具名 功能 图标 icon 官网下载
Qt Creator GUI 界面可视化 click
PyCharm 代码编辑器 click
Visual Studio Code 代码阅读器 click

reference

  • 书籍:

    • 《Python Qt GUI 与数据可视化编程》

    • 《陈强高级计量经济学》

  • 文献:

    • Koenker & Machado1999 Inference QuantileReg

    • Asymmetric Least Squares Estimation and Testing

    • Tests-for-Parameter-Instability-and-Structural-Change-With-Unknown-Change-Point

    • 房地产价格与汇率的联动关系研究———基于分位数 Granger 因果检验法

    • 基于分位数 Granger 因果的网络情绪与股市收益关系研究

  • 其他:

    • Eviews 8 帮助文件

    • 张晓峒分位数回归讲义

License

MIT © 热心市民石头

About

介绍分位数回归,包括分位数Granger因果检验、QVAR及脉冲响应函数

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published