This research aims at exploiting the cointegrating relationship among the Federal Funds Target Rate (hereby “The Fed Fund Rate”), US Short-term Treasury Yields (hereby “2-year Yields”), and US Long-term Treasury Yields (hereby “10-year Yields”). The dicretion over 2-year and 10-year is based on focus of market participants.
The Fed Fund Rate is the so-called overnight rate. In theory there’s a positive term premium added to the Fed Fund Rate for any federal government debt security with longer maturity. In normal times the longer the maturity, the high the term premium also to reflect positive inflation outlook, creating a positive-sloping yield curve.
Since the Fed Fund Rate is a stipulated rate and treasury yields are market-decided, the yield curve is a good barometer of the market’s perspection of future economic prospect.
In times of worsening economic conditions, yield curve may flatten and even inverse because the term premium becomes significantly negative, while the short-end rate is the stipulated Fed Fund Rate. That is, market often reacts before the Federal Open Market Committee meetings.
One often quoted method to decompose the treasury yield is the ACM method, named after three NY Fed Economists Tobias Adrian, Richard Crump, and Emanuel Moench. (can be accessed here: [link] https://www.newyorkfed.org/research/data_indicators/term_premia.html).
They propose any treasury yield can be decomposed into: Nominal Yield = Short-term Interest Rate Expectation + Term Structure.
As shown below, the Fed Fund Rate correlates with the short-term expected interest rate in the ACM method. For generality, in the following study, we will study the relationship between Fed Fund Rate and the Treasury yields of 2 years and 10 years.
In the following I’ll explore relationship of these interest rate variables.
First, I examine the cointergration relationship between 2-year yields and fed fund rate, and 10-year yields and fed fund rate.
lm(data = data_xts, X2Y_nominal ~ Fedfund + X10Y_nominal) %>% residuals() %>% checkresiduals()
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
lm(data = data_xts, X10Y_nominal ~ Fedfund + X2Y_nominal) %>% residuals() %>% checkresiduals()
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
As it shows, both residuals have long-memory structures and thus are not white noises. We turn to analyzing the spread between 2-Year Yield and 10-Year Yield, and 2-Year Yield and Fed Fund Rate
lm(data = data_sprd_xts, X2Y_10Y ~ X2Y_FFR) %>% residuals() %>% checkresiduals()
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
lm(data = data_sprd_xts, X10Y_2Y ~ X10Y_FFR) %>% residuals() %>% checkresiduals()
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
The result above is in line with the autocorrelated term premium from the ACM method.
ACM$X2Y_trmprm %>% checkresiduals()
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.
Two sets of VECM is considered, one in level, and the other in spread.
data %>% dplyr::select(X2Y_nominal, X10Y_nominal, Fedfund) %>%
VECM(lag = 2) %>% summary()
## #############
## ###Model VECM
## #############
## Full sample size: 700 End sample size: 697
## Number of variables: 3 Number of estimated slope parameters 24
## AIC -4920.866 BIC -4802.649 SSR 292.9398
## Cointegrating vector (estimated by 2OLS):
## X2Y_nominal X10Y_nominal Fedfund
## r1 1 -0.4520044 -0.5050918
##
##
## ECT Intercept
## Equation X2Y_nominal -0.0586(0.0302). -0.0077(0.0156)
## Equation X10Y_nominal -0.0584(0.0230)* -0.0091(0.0119)
## Equation Fedfund 0.1434(0.0302)*** 0.0134(0.0156)
## X2Y_nominal -1 X10Y_nominal -1
## Equation X2Y_nominal 0.2415(0.0695)*** -0.0626(0.0831)
## Equation X10Y_nominal 0.2176(0.0531)*** -0.1632(0.0634)*
## Equation Fedfund 0.6924(0.0697)*** -0.3695(0.0832)***
## Fedfund -1 X2Y_nominal -2
## Equation X2Y_nominal -0.0285(0.0405) -0.0938(0.0730)
## Equation X10Y_nominal -0.0276(0.0310) 0.0447(0.0557)
## Equation Fedfund 0.2490(0.0406)*** 0.0635(0.0731)
## X10Y_nominal -2 Fedfund -2
## Equation X2Y_nominal -0.0163(0.0833) 0.0396(0.0338)
## Equation X10Y_nominal -0.1307(0.0636)* 0.0229(0.0258)
## Equation Fedfund -0.0193(0.0834) -0.0751(0.0339)*
data_sprd_xts %>% dplyr::select(X10Y_2Y, X2Y_FFR) %>%
VECM(lag = 2) %>% summary()
## #############
## ###Model VECM
## #############
## Full sample size: 700 End sample size: 697
## Number of variables: 2 Number of estimated slope parameters 12
## AIC -2934.631 BIC -2875.523 SSR 204.2223
## Cointegrating vector (estimated by 2OLS):
## X10Y_2Y X2Y_FFR
## r1 1 -0.5345992
##
##
## ECT Intercept X10Y_2Y -1
## Equation X10Y_2Y -0.0168(0.0119) 0.0125(0.0136) 0.0267(0.0399)
## Equation X2Y_FFR 0.1091(0.0226)*** -0.0896(0.0258)*** 0.7186(0.0755)***
## X2Y_FFR -1 X10Y_2Y -2 X2Y_FFR -2
## Equation X10Y_2Y -0.0482(0.0196)* -0.0546(0.0425) 0.0198(0.0181)
## Equation X2Y_FFR 0.1151(0.0370)** 0.2281(0.0804)** -0.1395(0.0342)***
data_sprd_xts %>% dplyr::select(X10Y_2Y, X10Y_FFR) %>%
VECM(lag = 2) %>% summary()
## #############
## ###Model VECM
## #############
## Full sample size: 700 End sample size: 697
## Number of variables: 2 Number of estimated slope parameters 12
## AIC -2961.222 BIC -2902.113 SSR 214.3326
## Cointegrating vector (estimated by 2OLS):
## X10Y_2Y X10Y_FFR
## r1 1 -0.5572344
##
##
## ECT Intercept
## Equation X10Y_2Y 0.0249(0.0195) -0.0085(0.0112)
## Equation X10Y_FFR 0.2689(0.0380)*** -0.0829(0.0219)***
## X10Y_2Y -1 X10Y_FFR -1 X10Y_2Y -2
## Equation X10Y_2Y 0.0363(0.0431) -0.0397(0.0199)* -0.1023(0.0435)*
## Equation X10Y_FFR 0.5551(0.0840)*** 0.1114(0.0389)** 0.2054(0.0850)*
## X10Y_FFR -2
## Equation X10Y_2Y 0.0269(0.0184)
## Equation X10Y_FFR -0.0754(0.0360)*
From the results above, excluding formulas with positive EC term, it seems the level ECM for 10-Year Yield is the more ideal result. In general, the coefficient of -0.0584 can be intepreted by the speed of reversion is -0.058% every month.