贝叶斯FAVAR模型在Python中的实现及韩国工业生产率分析

需积分: 46 18 下载量 26 浏览量 更新于2024-12-25 4 收藏 26KB ZIP 举报
资源摘要信息:"bvar:贝叶斯VAR模型" 在统计学和经济学领域,VAR(向量自回归)模型是分析多个时间序列数据相互之间关系的一个重要工具。贝叶斯VAR模型则是将贝叶斯统计方法应用于VAR模型中,通过先验分布来整合先验信息,并利用后验分布进行参数估计和推断。 贝叶斯FAVAR模型是一种特定的贝叶斯VAR模型,即因子增强向量自回归(Factor-Augmented Vector Autoregression)模型。这种模型在传统的VAR模型中加入因子分析的元素,利用潜在因子来解释多个时间序列中的共同变动,这对于处理高维数据(例如多个经济指标)尤其有用。 在给出的文件中,描述提到了使用Python语言编写的贝叶斯VAR模型代码,这表明该代码利用了Python的数据分析生态系统,具体使用了两个重要的库:Scipy和Numpy。 Scipy是一个开源的Python算法库和数学工具包,提供许多数学计算相关的功能,如积分、插值、优化、线性代数、统计和矩阵运算等。在统计模型的应用中,Scipy可以用来执行各种数学运算,特别是在贝叶斯统计分析中,它可能被用来计算概率分布、进行优化求解等。 Numpy是Python的一个基础库,它提供了一个强大的N维数组对象ndarray,以及用于对这些数组进行快速运算的相关功能。Numpy是进行科学计算的基础库,尤其是在处理大规模数值数据时,Numpy能够提供高效的数值计算能力。在贝叶斯VAR模型的代码实现中,Numpy可能被用来进行大量的矩阵运算,这些运算是VAR模型参数估计的基础。 从描述中还可以得知,这些代码的具体应用目的是分析韩国的工业生产率溢出效应。VAR模型特别适合分析经济变量之间的动态关系,包括变量之间的相互影响和滞后效应。通过对韩国工业生产率数据的分析,研究者可以理解不同工业部门间的相互作用,以及它们对整体工业生产率的影响。 从文件名“bvar-master”可以看出,这可能是一个版本控制的代码库,通常在版本控制系统如Git中使用“master”分支作为默认的开发分支。这表明提供的代码库可能是一个完整的、可以运行的项目,包含了实现贝叶斯VAR模型的所有必要组件,并且可能有详细的文档和使用说明。 总结来说,贝叶斯VAR模型是统计学和经济学领域中用于分析多个时间序列数据动态关系的模型。其贝叶斯版本通过先验和后验分布的方式整合信息,并对模型参数进行估计。在本文件中,提供了使用Python语言、Scipy和Numpy库实现的代码,用于分析韩国工业生产率的溢出效应。代码的具体实现可能包含了数据预处理、模型设定、参数估计、模型检验以及结果解读等步骤。此外,文件的组织形式可能是一个完整的项目代码库,便于开发者管理和迭代。
2018-09-04 上传
在开始使用代码之前, 请仔细阅读此文件。此文件夹包含以下文件:___________________________________________________________________________________1)其他代码: B. TVP-FAVAR: 估计一个 TVP FAVAR。此代码用于演示只有, 它应该作为一个出发点, 以了解评估的工作原理 (在前往多个使用 DMA 的模型案例) 2)预测代码:a. 竞争 FCIs: 从我们收集的4现有 FCIs 的预测联邦储备银行B. DMA_TVP_FAVAR: 动态模型平均/选择的预测 (DMA/DMS),与相对 noninformative 之前C. DMA_TVP_FAVAR_TS: 动态模型平均/选择的预测 (DMA/DMS),培训样本前(此代码仅用于在线附录)FAVAR_PC_DOZ: homoskedastic FAVAR 与校长的预测组分和 Doz 等 (2011) 因素的估计 3)完整示例代码:DMA_probabilities: 绘制时变 DMA 概率, 预期数量变量和由 DMA 暗示的家庭护理(使用此代码复制图 4 & 5) 此外, 文件夹 "函数" 包含在估计期间调用的有用函数 (例如, mlag2 创建 VAR 滞后, 并且 Minn_prior_KOOP 在系数之前实现我们的明尼苏达州类型). 文件夹数据包含-猜测什么。但是, 要小心, 因为那里有两个数据集。第一个是文章中使用的 (xdata.dat, other_FCIs, ydata.dat)。但是, 我还有一个具有81个财务变量 (xdata_all) 的数据集, 仅由演示代码 TVP FAVAR 调用。在这个代码中, 我给你一个选项来加载这两个数据集中的任何一个来提取家庭护理 (为了了解算法是如何工作的)。变量的名称在. 席子文件 xnames. 垫。 如何使用代码:在每个文件的开头, 我有一个叫做 "用户输入" 的部分。请随时试用它。默认设置是在纸张中使用的, 例如 nlag=4 是 FAVAR 中滞后的数目)。 但是, 默认值的遗忘/衰变因素 (称为 l_1, l_2, l_3, l_4 在代码中, 但表示为本文) 对应于 TVP-FAVAR 模型。为了估计 FAVAR 和 FA-TVP 模型 (见纸), 你需要改变遗忘因子的值。设置 l_3=1 (离开 l_1 = l_2 = 0.96, l_4 = 0.99) 给出了 FA TVP VAR, 而设置 l_3 = l_4 = 1 (离开 l_1 = l_2 = 0.96) 给你 heteroskedastic FAVAR。您还可以通过将所有遗忘因子设置为1来获得 homoscedastic FAVAR, 但这不是本文中使用的模型 (因为我们解释这具有较低的预测性能)。 我已经设置了代码 DMA_probabilities 为了打印文件中显示的数字, 以选择的模型为条件 (例如, 遗忘因素的默认设置会给出 TVP-FAVAR 的概率)。对于预测代码的事情是半自动的, 因为我不喜欢设置 MATLAB 来计算预测结果和打印乳胶表 (更多的编程意味着更多的错误机会, 因此, 我更喜欢在 Excel 中手动计算平均值)。在这方面, 如果你想要 MSFEs 这些可以在数组 MSFE_DMA 中的代码末尾找到 (对于 DMA 情况, 类似于其他文件中的其他预测)。为了获得所有变量的平均 MSFE, 只需在 MATLAB 中使用平均值 () 函数:挤压 (平均 (MSFE_DMA (1: 末端-1,:, 1), 1) '% 为 h=1 步挤压 (平均 (MSFE_DMA (1: 末端-2,:, 2), 1) '% 为 h=2 步挤压 (平均 (MSFE_DMA (1: 末端-3,:, 3), 1) '% 为 h=3 步挤压 (平均 (MSFE_DMA (1: 末端-4,:, 4), 1) '% 为 h=4 步 健康警告:虽然一个 TVP FAVAR 是微不足道的估计, 你很快就会意识到, 预测递归与 219= 524288 模型 (正如我们在 DMA), 是一个相当的任务。您将需要一个非常强大的 PC 和大量的耐心, 或者是一个集群的服务器和 MATLAB 的并行处理工具箱 (这是我实际上做的, 即我是在我的大学中央集群远程提交 PBS 工作)。 在您尝试在您的 PC 上运行 DMA 代码之前, 我建议您在使用单个模型估计和递归预测时需要花费多少时间。您可以使用原始 DMA_TVP_FAVAR 代码来执行此项。在用户输入中有设置: var_no_dma = 1; 选择不应包含在 DMA 中的变量。上面的设置采用第一个变量 (& P500), 检查 varnames 所有20个变量的名称和顺序, 并始终将其包含在每个模型中, 从而使代码在其余的 219模型中进行 DMA。如果设置: var_no_dma = 1:20; 然后所有20个变量都包含在每个模型中, 0 个变量包含在 DMA 中。因此, 这等同于估计没有 DMA 的完整模型。选择: var_no_dma = [1 3 5 9 12 15]; 将始终包含每个因子模型中的变量 (13、59、1215), 并要求代码在剩余的14个变量中执行 DMA (因而 214= 16384 模型, 这对于旧 pc 仍然是很麻烦的)。 运行代码时请小心, 我们不承担对旧 pc 中可能发生的 CPU 过载造成的硬件损坏的责任..。此代码不适合完成初学者。然而, 经验较少的 MATLAB 用户和/或博士生应该能够很容易地理解附加的代码结合仔细研究的论文。我们不提供对此代码的支持。