楼主: 三十万
1263 2

[实证分析] GARCH-MIDAS样本内、样本外预测代码与原文 [推广有奖]

  • 0关注
  • 0粉丝

已卖:11份资源

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
103 点
帖子
6
精华
0
在线时间
8 小时
注册时间
2022-11-2
最后登录
2025-4-20

楼主
三十万 发表于 2024-9-20 11:33:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本期尝试复刻:

Global financial cycle and the predictability of oil market volatility: Evidence from a GARCH-MIDAS model

该研究使用GARCH-MIDAS框架,考察全球金融周期(GFCy)对石油市场波动性的预测能力。这种模型提供了一种适当采样机制,可以在日频的石油波动预测中纳入月频的数据——金融周期(GFCy),解决了宏观变量与金融数据不同频的问题。
该作者提供的代码与数据较为完整:

但是,有一些关键的步骤需要自己补充,还有一些小错误需要调整才能成功复刻。

第一,缺失关键函数——GARCH-MIDAS.m , 需要自备:

第二,缺失 Diebold and Mariano (1995) test的P值的计算方法


该文章比较GARCH-MIDAS-GFCy模型与GARCH-MIDAS-RV基准预测性能基于Diebold和Mariano(1995)测试统计量。

显著为负的测试统计量表明GARCH-MIDAS-GFCy模型优于GARCH-MIDAS-RV模型:

在作者提供的文件中,提供了DM统计量的计算方法,还需补充P值计算:


from scipy import stats# 输入自由度和t统计量,以h=10为例df = 10  # 自由度,h值t_statistic = -62.61  # t 统计量# 计算双尾 P 值p_value = 2 * (1 - stats.t.cdf(abs(t_statistic), df))print("P 值:", p_value)

根据计算,使用给定的自由度和 t 统计量,双尾 P 值将会非常接近于零,因为 t 统计量的绝对值非常大。逐个套入不同的自由度与h的值,结论与原文一致。

第三,缺失样本外预测的代码,不熟悉该模型的读者可能会蒙圈

作者在代码中只提供了样本内预测的方法,样本外预测需要自己补充:


% Adding out-of-sample forecast n=30outSampleForecast = 30;[estParams_out, EstParamCov_out, Variance_out, LongRunVar_out] = GarchMidas(wti, 'Period', period, 'NumLags', numLags, 'X', xDay, 'ThetaM', 1, 'RollWindow', 1, 'estSample', nobs - outSampleForecast);y_out = NaN(nobs, 1);for t = 1:nobs    if t > nobs - outSampleForecast        y_out(t) = estParams_out(1) + sqrt(Variance_out(t));    endendresidual_out_x = wti - y_out;
[estParams_out, EstParamCov_out, Variance_out, LongRunVar_out] = GarchMidas(wti, 'Period', period, 'NumLags', numLags,  'ThetaM', 1, 'RollWindow', 1, 'estSample', nobs - outSampleForecast);y_out = NaN(nobs, 1);for t = 1:nobs    if t > nobs - outSampleForecast        y_out(t) = estParams_out(1) + sqrt(Variance_out(t));    endendresidual_out = wti - y_out;
xlswrite('PAS_Oil_Gold_GFC_GECON_Residuals.xlsx', residual_out_x, 'DBDA', 'K1:K2104');xlswrite('PAS_Oil_Gold_GFC_GECON_Residuals.xlsx',residual_out,'DBDA','I1:I2104');

用该方法计算出来的数值与论文原文一致 (benchmark model小数点后五位数值有一点偏差,不知道什么原因):

第四,需要解决一个小问题,可能是因为matlab 版本不同的原因引起(也有可能我的函数与作者设置不同):

在这里把yDate的格式改为正常的 1980/1/17即可。

完成以上步骤,即可完整运行GARCH-MIDAS 样本内、外预测+多模型预测误差比较。

随机测试WTI & GFC 在 Full Sample Data的情况:

输出系数、显著性和原文没有差异。图片也对应没问题:

有兴趣的读者可以自行验证其他情况。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:garch-m MIDAS GARCH ARCH MID 金融学 国际金融 计算金融 金融系 金融研究

GARCH-MIDAS.rar
下载链接: https://bbs.pinggu.org/a-4255535.html

5.47 MB

需要: RMB 19 元  [购买]

GARCH-MIDAS样本内、样本外预测代码与原文

沙发
WAIWAICY(未真实交易用户) 发表于 2025-5-13 21:28:57
请问样本外预测的代码是需要购买才有嘛

藤椅
赵安豆(未真实交易用户) 发表于 2025-6-3 18:31:15
为了复刻《Global financial cycle and the predictability of oil market volatility: Evidence from a GARCH-MIDAS model》中的研究结果,我们需要按照以下步骤进行:

1. **获取或自写GARCH-MIDAS函数**:
   - 首先确保你有`GARCH-MIDAS.m`文件。如果作者没有提供这个函数,你需要自己编写或者找到一个开源的实现版本。GARCH-MIDAS模型结合了传统GARCH模型与MIDAS(mixed data sampling)机制,能处理不同频率的数据。

2. **数据准备**:
   - 准备日频石油价格或波动率数据。
   - 收集月频全球金融周期(GFCy)指标。确保这些数据在时间上对齐。

3. **模型训练与预测**:
   - 使用`GARCH-MIDAS.m`函数,以日频的石油市场数据作为主要输入,并将月频的GFCy纳入模型中。
   - 分别进行样本内和样本外预测。样本内预测用于调整参数;样本外预测则是模型的最终测试。

4. **Diebold and Mariano (1995) test**:
   - 这个测试是用来评估两个不同预测方法的相对优势。如果在作者提供的代码中没有找到计算P值的方法,你可能需要自己实现这部分。
   - DM检验的基本思想是对比两种预测方法(在此例中是GARCH-MIDAS-GFCy模型与GARCH-MIDAS-RV基准)的预测误差序列,并检查这些误差之间的差异是否显著。如果测试统计量显著为负,则说明GARCH-MIDAS-GFCy模型在预测石油市场波动性方面表现更优。

5. **结果分析**:
   - 分析样本外预测的准确性,查看GARCH-MIDAS-GFCy模型相对于基准模型的表现。
   - 检查DM测试的结果以确认模型的优势是否统计显著。

6. **撰写报告或论文**:
   - 最后一步是将你的发现整理成报告或学术文章形式。包括方法论、数据处理步骤、模型设定、预测结果以及对比分析等部分。

请注意,实际操作中可能遇到数值优化问题、数据预处理的复杂性等问题,需要耐心调试和修正代码以达到最佳效果。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-31 18:41