主要内容

拟合Diebold Li模型

本例显示了如何构建1990年至2010年每个月美国收益率曲线的Diebold-Li模型。该示例还演示了如何通过将自回归模型拟合到每个参数的时间序列来预测未来收益率曲线。

该文件可在此处找到:

https://www.nber.org/papers/w10048

加载数据

使用的数据是1990年至2010年1个月、3个月、6个月、1个月、2个月、3个月、5个月、7个月、10个月、20个月、30个月期限的月度国债收益率。

每日数据可在此找到:

https://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yieldAll

数据作为MATLAB文件存储在MATLAB®数据文件中数据集对象

负载数据曲线%提取每个月最后一天的数据MonthYearMat=repmat((1990:2010)”,1,12)”;EOMDates=lbusdate(MonthYearMat(:),repmat((1:12)”,21,1));MonthlyIndex=find(ismember(Dataset.Properties.ObsNames,datestr(EOMDates));Estimationdataset=Dataset(MonthlyIndex,:);EstimationData=double(Estimationdataset);

迪堡-李模型

Diebold和Li从Nelson Siegel模型开始

y β 0 + β 1 + β 2 τ 1 - e - τ - β 2 e - τ

并将其改写为以下内容:

y t τ β 1 t + β 2 t 1 - e - λ t τ λ t τ + β 3. t 1 - e - λ t τ λ t τ - e - λ t τ

通过上述模型,可以将这些因素解释为:Beta1对应于收益率曲线的长期/水平,Beta2对应于短期/斜率,Beta3对应于中期/曲率。 λ 确定曲率上的载荷最大化的成熟度,并控制模型的指数衰减率。

迪堡和李主张设置 λ 使中期因子Beta3在30个月时的负荷最大化。这也将问题从非线性拟合转化为简单的线性回归。

%显式设置时间因子lambda_t=.0609;%构造因子载荷矩阵%与数据相关的期限TimeToMat=[3691224366084120240360];X=[one(size(TimeToMat))(1-exp(-lambda_t*TimeToMat))。/(lambda_t*TimeToMat)...((1 - exp(-lambda_t*TimeToMat))./(lambda_t*TimeToMat) - exp(-lambda_t*TimeToMat))];%绘制因子负荷图情节(TimeToMat X)标题(“Diebold-Li模型的因子载荷,时间因子为.0609”)xlabel(‘到期日(月)’)ylim([0 1.1])图例({“Beta1”,“Beta2”,“Beta3”},“位置”,“东”

图中包含一个Axis对象。时间因子为.0609的Diebold Li模型标题因子加载的Axis对象包含3个line类型的对象。这些对象表示Beta1、Beta2、Beta3。

符合模型

一个DieboldLi对象的开发有助于从产量数据拟合模型DieboldLi对象继承自IRCurve对象,所以getZeroRates,getDiscountFactors,GetParyiels,getForwardRatestoRateSpec方法都已实现fitYieldsFromBetas的实现,以估计给定的lambda参数的Beta参数的观察市场收益率。

DieboldLi对象用于拟合1990年至2010年每个月的Diebold Li模型。

%预分配betaβ= 0(大小(EstimationData, 1), 3);%循环并拟合每个月末的收益率曲线jdx = 1:size(EstimationData,1) tmpCurveModel = dieboldfi . fitbetasfromyields (EOMDates(jdx),lambda_t*12,daysadd(EOMDates(jdx),30*TimeToMat),EstimationData(jdx,:)'); / /β(jdx:) = [tmpCurveModel。Beta1 tmpCurveModel。Beta2 tmpCurveModel.Beta3];结束

Diebold Li适合选定日期,包括在此处

PlotSettles=datenum({“30 - 1997年5月- - - - - -”,31日- 8月- 1998的,截止2001年6月29日的,‘2005年10月31日’}); 图形tmpIdx = find(strcmpi(Estimationdataset.Properties.ObsNames,datestr(PlotSettles(jdx))));tmpCurveModel = DieboldLi.fitBetasFromYields (PlotSettles (jdx) lambda_t * 12,...daysadd(PlotSettles(jdx),30*TimeToMat),EstimationData(tmpIdx,:)';scatter(daysadd(PlotSettles(jdx),30*TimeToMat),EstimationData(tmpIdx,:))保持在…上PlottingDates=(PlottingSettles(jdx)+30:30:PlottingSettles(jdx)+30*360);(PlottingDates,tmpCurveModel.getParYields(PlottingDates),的r -)头衔([“收益率曲线”datestr (PlotSettles (jdx)))) datetick结束

图中包含4个轴对象。1997年5月30日具有标题收益率曲线的Axis对象1包含两个类型为散布、直线的对象。1998年8月31日具有标题收益率曲线的Axis对象2包含两个类型为“散布”、“直线”的对象。2001年6月29日具有标题收益率曲线的轴对象3包含两个类型为散布、直线的对象。2005年10月31日具有标题收益率曲线的Axis对象4包含两个类型为散布、直线的对象。

预测

Diebold-Li模型可用于预测未来收益率曲线。Diebold和Li建议将AR(1)模型拟合到每个贝塔参数的时间序列中。然后,该拟合模型可用于预测每个参数的未来值,进而预测未来收益率曲线。

对于本例,使用MATLAB函数回归用于估计每个β的AR(1)模型的参数。

回归拟合的置信区间也用于生成两个额外的收益率曲线预测,作为收益率曲线的额外可能情景。

MonthsLag变量可以进行调整,以作出不同时期的提前预测。例如,更改值from16将预测从1个月前改为6个月前。

月间隔=1;[tmpBeta,bint]=回归(β(月间隔+1:end,1),[1(月间隔+1:end,1))β(月间隔+1:end,1)];预测贝塔(1,1)=[1贝塔(结束,1)]*tmpBeta;预测贝塔(1,1)=[1贝塔(结束,1)]*bint(:,1);预测贝塔(1,1)=[1贝塔(结束,1)]*bint(:,2);[tmpBeta,bint]=回归(β(月间隔+1:end,2),[1(月间隔+1:end,2))β(月间隔+1:end,2)];预测贝塔(1,2)=[1贝塔(结束,2)]*tmpBeta;预测贝塔(1,2)=[1贝塔(结束,2)]*bint(:,1);预测贝塔(1,2)=[1贝塔(结束,2)]*bint(:,2);[tmpBeta,bint]=回归(β(月间隔+1:end,3),[1(月间隔+1:end,3))β(月间隔+1:end,3)];预测贝塔(1,3)=[1贝塔(结束,3)]*tmpBeta;预测贝塔(1,3)=[1贝塔(结束,3)]*bint(:,1);预测贝塔(1,3)=[1贝塔(结束,3)]*bint(:,2);%预测收益率曲线figure set = daysadd(EOMDates(end),30*MonthsLag);DieboldLi_Forecast = DieboldLi (“ParYield”,结算,[ForecastBeta lambda_t*12]);迪博尔德利(DieboldLi_Forecast_Up=DieboldLi(“ParYield”,解决ForecastBeta_Up lambda_t * 12]);DieboldLi_Forecast_Down = DieboldLi (“ParYield”,解决ForecastBeta_Down lambda_t * 12]);PlottingDates =(解决+ 30:30:解决+ 30 * 360)';情节(PlottingDates DieboldLi_Forecast.getParYields (PlottingDates),“b-”)持有在…上绘图(绘图日期,DieboldLi\u Forecast\u Up.getParYields(绘图日期),的r -)绘图(绘图日期,DieboldLi\u预测值\u下降。getParYields(绘图日期),的r -)头衔([李国宝预测未来收益率曲线日期(EOMDates(end))“对”datestr(解决)])传说({的预测曲线,“其他场景”},“位置”,‘东南’)datetick

图中包含一个轴对象。以diboldli预测的2010年12月31日至2011年1月30日的收益曲线为标题的轴对象包含3个线型对象。这些对象表示预测曲线,附加场景。

参考书目

本示例基于以下论文:

[1] 弗朗西斯·迪博尔德,李灿林。“预测政府债券收益率的期限结构。”计量经济学杂志,第130卷,第2期,2006年2月,337-364页。

另请参阅

|||||||||

相关的例子

更多关于