# Quantile **Repository Path**: lei940324/Quantile ## Basic Information - **Project Name**: Quantile - **Description**: 介绍分位数回归,包括分位数Granger因果检验、QVAR及脉冲响应函数 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 2 - **Created**: 2020-04-21 - **Last Updated**: 2025-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Introduction ### 功能介绍 - [x] 分位数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 **第一步**:在当前路径下的命令行输入: ```shell python main.py ``` > 提示:在当前文件夹中,右键点击cmd或者shell打开命令行 **第二步**:点击**导入数据**按钮 输入成功的话,会有导入成功的提示 **第三步**:设定各参数 **第四步**:点击**开始运行**按钮,等待程序运行结束,结果保存在**运行结果**文件夹下的**Granger.xlsx**文件内 ## 项目目录 ``` |-- 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.py**与**func.py**文件 ## 估计原理 ### 使用函数介绍 使用`statsmodels`库进行分位数回归命令: 1) 使用R型公式来拟合模型 | **formula** | **说明** | **示例** | | ----------- | -------------------------------------- | -------------------- | | ~ | 分隔符,左边为响应变量,右边为解释变量 | y ~ x | | + | 添加变量 | y ~ x1 + x2 | | - | 移除变量 | y ~ x - 1(移除截距) | 2) 参数命令 | **属性** | **说明** | **方法** | **说明** | | ---------- | -------------- | -------------------- | -------------- | | res.params | 获取估计参数值 | res.summary() | 展示估计结果 | | res.bse | 获取标准差 | res.cov_params() | 获取协方差矩阵 | | res.resid | 获取残差 | res.f_test("x2 = 0") | Wald检验 | ### 分位数Granger因果检验实现原理 由于github很难展示latex格式的公式,可以[click这里](https://blog.csdn.net/u013289615/article/details/105450785)进行查看。 ## Development Tool | 工具名 | 功能 | 图标icon | 官网下载 | | :----------------: | :-----------: | :----------------------------------------------------------: | :----------------------------------------------------------: | | Qt Creator | GUI界面可视化 | | [click](http://download.qt.io/official_releases/qtcreator/) | | PyCharm | 代码编辑器 | | [click](https://www.jetbrains.com/pycharm/download/#section=windows) | | Visual Studio Code | 代码阅读器 | | [click](https://code.visualstudio.com/) | ## 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](https://github.com/lei940324/Quantile/blob/master/LICENSE) © 热心市民石头