这是一个用于执行交互式面板向量自回归 (Interacted Panel VAR, IPVAR) 分析的 Streamlit Web 应用程序。
IPVAR 模型允许 VAR 模型的系数随着一个“交互变量”(例如,政策不确定性指数、利率水平、市场情绪等)的变化而变化。本工具旨在帮助研究人员和学生(特别是经济学和金融学领域)快速实现和可视化 IPVAR 模型,而无需编写复杂的估计代码。
- 面板 VAR 估计:使用固定效应 (
PanelOLS) 估计 IPVAR 模型。 - 状态依赖的动态分析:
- 脉冲响应函数 (IRF):分析在一个给定的交互变量水平下(例如“高利率” vs “低利率”),一个变量的冲击对其他变量的动态影响。
- 预测误差方差分解 (FEVD):分析在特定状态下,各变量冲击对其他变量预测误差的贡献度。
- 用户友好的界面:
- 无需编写 Python 代码即可运行。
- 支持上传您自己的 CSV 数据。
- 内置示例数据集(政策利率对 GDP 增长和通胀的影响)。
- 可自定义内生变量、交互变量和滞后阶数。
本项目为不同背景的用户提供了两种启动方式。
此方案专为不熟悉 Python 环境配置的用户设计。
前提条件:
- 您的系统上必须安装了 Python (版本 3.7 或更高)。
- 重要:在安装 Python 时,请务必勾选 "Add Python to PATH" 或 "Add py to PATH" 的选项。
启动步骤:
- 确保
ipvar_app.py和run_app.bat两个文件位于同一个文件夹中。 - 双击
run_app.bat文件。 - 一个黑色的命令行窗口将会打开。在首次运行时,它将自动执行以下操作:
- 检查 Python 环境。
- 创建
requirements.txt文件。 - 创建一个名为
.venv的本地虚拟环境。 - 安装所有必需的依赖库 (如
streamlit,pandas等)。 - (此过程可能需要几分钟,请耐心等待)。
- 安装完成后,脚本会自动启动 Web 服务。
- 您的默认浏览器将自动打开,显示分析工具的界面。
- 您可以开始使用该工具。完成后,只需关闭黑色的命令行窗口即可停止服务。
此方案适用于熟悉 Python 虚拟环境和 pip 的开发者。
启动步骤:
- 将本项目克隆 (clone) 或下载到本地。
- 打开您的终端 (Terminal / Command Prompt)。
- 创建虚拟环境:
# (Windows) py -m venv .venv # (macOS / Linux) python3 -m venv .venv
- 激活虚拟环境:
# (Windows) .\.venv\Scripts\activate # (macOS / Linux) source .venv/bin/activate
- 安装依赖:
(如果
requirements.txt不存在,请先手动创建它,内容见下文)pip install -r requirements.txt
- 运行应用:
streamlit run ipvar_app.py
- 终端会显示一个
Local URL(通常是http://localhost:8501),在浏览器中打开它即可。
当应用程序在您的浏览器中运行后,请按以下步骤操作:
- 上传数据或使用示例:在左侧边栏,点击“上传您的 CSV 数据文件”,或直接勾选“使用示例数据”来熟悉功能。
- 定义列:
- 选择个体 (Entity) 列:代表不同个体(如
country,firm_id)的列。 - 选择时间 (Time) 列:代表时间(如
year,quarter)的列。
- 选择个体 (Entity) 列:代表不同个体(如
- 设置模型:
- 选择内生变量:您关心的、希望在模型中互为因果的核心变量(例如
gdp_growth,inflation)。 - 选择交互变量:您认为会改变上述内生变量间关系的那个变量(例如
policy_rate)。此变量不应被包含在内生变量中。 - 选择滞后阶数 (Lags):模型中包含的滞后项数量。
- 选择内生变量:您关心的、希望在模型中互为因果的核心变量(例如
- 运行分析:点击 "运行分析" 按钮。
- 这将在下方显示 IPVAR 模型的固定效应回归结果(
PanelOLS)。
- 这将在下方显示 IPVAR 模型的固定效应回归结果(
- 运行动态分析 (IRF & FEVD):
- 在“动态分析”部分,您会看到交互变量的分布统计图(用于参考)。
- 设置交互变量的值:使用滑块选择一个您感兴趣的特定值(例如,25% 分位数的低利率 vs 75% 分位数的高利率)。
- 设置分析期数 (Horizon):您希望脉冲响应图显示多少期。
- 点击 "运行动态分析" 按钮。
- 下方的图表将自动更新,显示在该交互水平下的脉冲响应函数 (IRF) 和方差分解 (FEVD)。
- 数据格式:您的数据必须是长面板 (Long Panel) 格式。每一行代表一个“个体”在某一个“时间点”的观测值。
- 数据量:面板 VAR (特别是 IPVAR) 需要估计大量参数。请确保您的数据集(尤其是时间 T)足够大。如果可用数据点过少,程序将报错。此时请尝试减少内生变量的数量或减少滞后阶数。
.
├── ipvar_app.py # Streamlit 应用主程序
├── run_app.bat # (Windows) 自动启动脚本
├── requirements.txt # Python 依赖列表
└── README.md # 本说明文件
本项目依赖于以下主要的 Python 库:
streamlitpandasnumpylinearmodelsaltair