您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[国际货币基金组织]:辅助宏框架预测的Python包:概念与示例 - 发现报告

辅助宏框架预测的Python包:概念与示例

2025-08-01国际货币基金组织哪***
AI智能总结
查看更多
辅助宏框架预测的Python包:概念与示例

一个用于辅助宏观框架预测的Python包 概念和示例 山崎安东,舒瓦姆·达斯,苏丹·奥拉兹巴耶夫 WP/ 25/172 国际货币基金组织工作人员论文描述作者进行中的研究,并发表以征求评论和鼓励辩论。国际货币基金组织工作论文中表达的看法是作者本人的看法,不一定代表国际货币基金组织、其执行董事会或国际货币基金组织管理层的态度。 2025AUG 研究部IMF工作报告 一个用于辅助宏观框架预测的Python包:概念与示例,由中村安、Shuvam Das和苏丹·奥拉兹巴耶夫*准备 由 Emine Boz 授权发行 2025年8月 国际货币基金组织工作人员论文描述作者正在进行的研究,并发表以征求评论和鼓励辩论。国际货币基金组织工作论文中表达的观点由作者本人(们)持有,并不一定代表国际货币基金组织、其执行董事会或国际货币基金组织管理层的观点。 摘要:在进行经济时间序列预测时,统计模型通常需要补充一个过程,以平滑的方式施加各种约束。系统性地施加约束并保持平滑性非常重要但也具有挑战性。Ando (2024) 提出了一种系统化方法,但尚未开发出实现该方法的用户友好包。本文通过介绍一个Python包,macroframe-forecast,来填补这一空白,该包允许用户生成在时间上平滑且符合用户指定约束的预测。我们通过两个关于预测美国GDP和财政变量的例子展示了该包的功能。 推荐引文:安藤、斋藤、Shuvam Das 和 苏丹·奥拉兹巴耶夫(2025年),“一个用于辅助宏观框架预测的 Python 包:概念和示例,”国际货币基金组织工作论文。 一个用于辅助宏观框架预测的Python软件包 概念和示例 由 SakaI Ando、Shuvam Das 和 Sultan Orazbayev 编写 1. 简介 在进行经济时间序列预测时,统计模型通常需要补充施加约束同时保持时间平滑性的程序。例如,使用自回归模型或决策树模型生成的GDP预测可能与预测者预期的长期增长率不一致。在这种情况下,预测者试图调整时间序列,使其平滑收敛到期望的长期增长路径。然而,临时性的约束施加,例如手动更改长时间序列的终值,可能在倒数第二值和终值之间引入不期望的间断性。在预测总量变量及其子分量时(例如财政平衡、收入和支出)也会出现类似的挑战。仅仅依赖统计模型可能无法确保预测满足会计恒等式约束,并且以一种临时性的方式施加这些约束,例如将一个变量视为残差,会导致预测缺乏期望的平滑性,因为残差变量吸收了其他部分的预测误差。一般来说,调整预测以满足约束通常会破坏平滑性,反之亦然。 在施加约束的同时保持平滑性非常重要但也具有挑战性。约束通常源于会计恒等式和专家判断,因此将其纳入对于内部一致性至关重要。平滑性同样关键,因为最优预测通常比历史数据波动性更低。例如,在一个随机游走中,历史数据是波动的,但最优预测是随时间恒定的,等于最后一个观测值。手动实现这两个目标需要大量资源,尤其是在处理大量变量和约束时,这就提出了如何系统性地施加约束和保持平滑性的问题。 安多(2024)提出了一种系统方法来施加约束并保持平滑性,但尚未开发出用户友好的软件包来实现该方法。基于预测协调文献,特别是阿塔纳索波罗斯等人(2024)的回顾和霍德里克与普雷斯科特(1997)的平滑方法,安多(2024)定义了一个二次规划问题,该方法可以在闭式形式中施加约束和时间平滑性,适用于大型时间序列系统。安多(2024)随后提供了三个示例来说明如何结合统计模型与所提出的平滑协调方法,类似于安多和金(2023)的方法。尽管安多(2024)为论文中使用的示例提供了复制代码,但实现该方法的用户友好软件包仍然是一个差距。 R和Python中现有的包分别支持预测协调和平滑,但不是联合支持。例如,R中的hts(Hyndman等人,2021)和FoReco(Girolimetto和Di Fonzo,2023)包支持协调,但协调后的预测可能不是随时间平滑的。Python中的hierarchicalforecast(Olivares等人,2024)包也存在同样的问题。另一方面,R中的smooth(Svetunkov,2024)和forecast(Hyndman等人,2024)包以及Python中的statsmodels(Seabold和Perktold,2010)包提供了生成平滑预测的方法,但它们不具备施加约束的功能。据我们所知,没有任何包支持同时应用协调和平滑。 本文介绍了macroframe-forecast,一个能够使用户生成时间平滑且满足用户定义约束的预测的Python包。该包按照Ando和Kim(2023)以及Ando(2024)的方法分两步生成预测。该框架在第一步中是与模型无关的,允许用户使用sktime包(Loning等人, 2019年),包括机器学习流水线或传统的计量经济学方法。与丰富的机器学习软件包兼容是使用Python编写软件包的好处之一。在第二步中,这些预测经过Ando(2024)风格的调和过程,该过程强制执行等式或不等式约束,同时在时间上平滑预测轨迹。这种两步方法与Chan等人(2025年)的方法形成对比,后者同时进行预测和调和,但要求所有变量都遵循高斯分布。 该软件包具有即插即用简单性和灵活性,可以微调细节。界面设计得使预测者可以使用软件包的主类MFF,而无需明确地为协调问题提供各种数学输入。例如,用户可以使用字符串指定约束,而不是像其他软件包那样输入矩阵。然而,通过理解概念框架和内部结构,预测者可以独立地微调第一步和第二步。例如,预测者可以在第一步中使用复杂的机器学习模型,或者以外生方式提供第一步预测。然后,预测者可以通过实验不同的约束或平滑度来微调协调步骤。这种灵活性对于希望在最终预测确定之前尝试不同的目标值、不等式约束或平滑度的实践者可能很有用。 我们通过两个例子演示该软件包的功能。第一个例子关注一个简单的情况,其中单个变量U.S. GDP在预测期末增长率符合预定义值的约束条件下进行预测。第二个例子说明一个多变量场景,在遵循会计恒等式的约束下,预测财政变量,即收入、支出和利息支出,其中主要收支平衡的路径是外生的。 本文结构如下:第二部分概述了包中实现的方法的概念框架。第三部分提供了安装和使用包的说明,并附有示例。第四部分总结全文。 2. 概念框架 本节介绍了Python包背后的概念框架。该框架包含两个步骤,第一步为用户提供灵活的预测模型选择,第二步允许用户调整第一步的预测结果,以便预测值随时间平滑且满足各种约束条件,例如会计恒等式和预设目标。关于第二步中协调过程的理论性质和示例,参见Ando (2024)。 2.1. 初步预报 程的第一步是所有未知量在所有范内生成无束。形式上,于每个量 = 1,…,,使用截止到时间 푡 的信息,提前 ℎ ≥ 1 期的单步预测可以表示为 ̂其中 θ 指的是变量 y 的估计参数∗∈ ℝ。每个变量使用的模型可以,ℎ,+ℎ在不同的 和 ℎ 上不同,可以是参数化的或非参数化的,例如普通最小二乘法(OLS)或其他机器学模型。在 Python 包中,用户可以指定自己的模型,也可以使用默认模型。 需要注意的是,第一步预测是无约束的。虽然用户可以灵活地应用任何预测模型,但结果预测可能无法满足基本要求,例如会计恒等式或不等式约束。根据所选模型,无约束预测也可能表现出剧烈波动或与施加的约束不一致的模式。第二步的目的是协调第一步预测,确保最终预测在预测期内更平滑,并且完全符合指定的约束。 2.2. 第二步对账 假第一步生成了个量的,其中每个量 = 1,…,的范ℎ = 1,…,。 ̂ 表示堆叠个量的列向量,푁表示其大小向量 第二步 푦 ̃ ∈ ℝB通过 (1) 对其进行时间平滑和 (2) 确保其满足预定义的约束来调整第一步预测。令约束表示为 其中 퐶、푑、퐶、푑 的维度分别为 퐾 × 푁、퐾 × 1、퐾 × 푁 和 퐾 × 1。二步预测 푦 ̃eq eq ineq ineqeq eq解决 其中 푊 是预测误差协方差的估计量(∗)V y - ŷ . 由于权重 W 反映了预测误差,准确预测的变量在第二步中的变化趋势通常小于预测准确性较低的变量。Φ 是平滑矩阵y - y^ + y′Φf s.t. C y = d, C y ≤ d,eqeqBy∈ℝ 在矩阵퐹为用于计算Hodrick- Prescott的退化五对角矩阵的地方filter (1997). 矩阵퐹表明每个휆控制平滑度,定义为差异有多小in difference 直观地,第二步预测ŷ试图在约束条件下尽可能接近第一步预测ŷ,距离由权重矩阵W的倒数来衡量,时间上的跳跃受到平滑矩阵Φ的惩罚。该问题是二次规划问题,当不等式约束松弛时,它有一个封闭解。{ y − y − y − y }() ()是,如在HP滤波器中。,+1 ,, ,−1 2.2.1. 选择权重矩阵Ф 理论上,最优权重是预报误差协方差(X y∗)= V − ̂ y . (Wickramasuriya等人,2019年;Ando和Narita,2024年) 在实践中,当矩阵相对于样本量较大时,样本协方差 ̂矩阵 Σ 可能不可逆。因此,默认情况下,权重矩阵 푊 使用 Oracle Shrinkage 近似 ̂chen et al. (2010) 的估计器(oas),收缩预测误差的样本协方差矩阵Σ^趋向于对角矩阵,其中所有对角元素是 푡푟 Σ /푁 的平均值() 。具体来说,假设基于历史数据的时间序列交叉验证来估计矩阵的样本量为 푠 。基于OAS的权重矩阵 푊 为 ̂2tr Σ ( )2 ̂s + 1 − [tr Σ2−]() ( ) B B {}或者,权重矩阵可以使用Ando和Xiao(2023)中提出的带有对角目标的原型收缩逼近估计器(OASD),它在不同时间序列具有不同单位时提供了稳健的估计。 用户也可以使用单位矩阵作为权重矩阵 푊 = 퐼 或提供自定义权重。푁×푁2tr Σ (2̂ 2.2.2. 光滑参数的选择 默认情况下,平滑参数 { }√τ√ 2= min {xᵢ, i = 1,…,m}何处 τ∗是相应频率下hp滤波器的标准平滑参数,如1600 直观上,标准HP滤波器参数τ∗用于平滑每个时间序列,但其参数是 进行归一化处理,使得目标函数(4)独立于每个时间序列的单位。当序列的率不可用,件包通每个序列的最小化时间序列交叉验证的均方预测误差。用户也可以提供自定义值。 2.3. 讨论 为了突出概念框架的益处和局限性,本节提出了三点观察结果。 首先,第一步中的模型选择是灵活的,选择合适的模型非常重要。任何模型都可以用作第一步预测。然而,需要注意的是,初始模型规格中的任何缺陷都可能通过第一步预测ŷ和预测误差协方差矩阵Ẏ传递到协调过程中。因此,选择第一步具有高预测精度的模型非常重要。 其次,第二步中约束条件和光滑度的选择是灵活的,选择合适的很重要。约束条件可以反映系统性关系,例如会计恒等式和某些变量的非负性,也可以来自特设性来源,例如专家判断。施加正确的约束条件倾向于通过提供统计模型在第一步中无法推断的额外信息来改进第一步预测,但施加错误的约束条件可能使其恶化。类似地,施加正确的光滑度可以去除第一步预测中的噪声,反之亦然。 第三,macroframe-forecast包目前仅支持点预测。然而,预测者可以通过使用在第一步预测过程中生成的预测误差来构建置信区间。可以从所有时间跨度和变量的预测误差中提取,将其添加到点预测中,然后进行协调过程。重复此程序将生成第二步协调预测的分布,从中可以得出置信区间或预测区间。这种基于模拟生成协调预测分布的方法与协调文献中使用的(例如,Girolimet