1. Introduction

It’s a widely held belief by the general public that housing prices are negatively correlated with interest rates. There are three different scenarios when it comes to correlation:

In order to verify the association between the housing prices and the interest rates, I will dive into a dataset to study how housing prices and interest rates interact with each other. One variables I use is slightly different than what researchers normally use, the nominal/real interest rate. Instead, I will look at the effective interest rate quoted by mortgage lenders. This is because the effective interest rate is the true cost of buying a home through mortgage, which, in my opinion, is the actualy factor considered in home buyers’ decisions, which in return affects the demand of houses and eventually the house prices.

The analysis of this project uses as reference Professor Ionides’s lecture note “Case study: An association between unemployment and mortality?”[10] and its source code.



2. Data Summary

The data was collected by the Federal Housing Finance Agency through a monthly survey to ask mortgage lenders to report information of interest rates, loan terms, house prices on all single-family, fully amortized, purchase-money, nonfarm loans that close during the last five business days of the month.

The data is downloaded from https://www.fhfa.gov/DataTools/Downloads/pages/monthly-interest-rate-data.aspx.

df=read.csv("MIRS.csv", header=TRUE)
head(df[,c("Year","Month","Purchase_Price","Effective_Interest_Rate")])
##   Year Month Purchase_Price Effective_Interest_Rate
## 1 1973     1           32.8                    7.68
## 2 1973     2           31.1                    7.71
## 3 1973     3           32.2                    7.70
## 4 1973     4           32.8                    7.71
## 5 1973     5           32.2                    7.76
## 6 1973     6           33.6                    7.78

The plot of the time series of the two variables of interest is as follow:

Figure 1. Time series of home purchase prices and effective interest rates in the U.S.

Figure 1. Time series of home purchase prices and effective interest rates in the U.S.



3. Time Domain


3.1 Detrending the Data

To investigate the association between home purchase prices and effective interest rates, we need to assess if they cycle together. For this purpose, Hodrick-Prescott (HP) filter can help us achive the goal by separating the trend and cyclical components.

For a time series \({y_{1:N}^*}\), the HP filter is the time series \({s_{1:N}^*}\) constructed as[10]: \[ {s_{1:N}^*} = \arg\min_{s_{1:N}} \left\{ \sum^{N}_{n=1}\big({y_n^*}-s_{n}\big)^2 + \lambda\sum^{N-1}_{n=2}\big(s_{n+1}-2s_{n}+s_{n-1}\big)^2 \right\}. \] There is no smoothing when the smoothing parameter \(\lambda\) is 0. As \(\lambda\) increases, the smoothed time series becomes more linear. This turns into a linear trend when \(\lambda\) approaches infinity. The appropriate value of the smoothing parameter \(\lambda\) depends on the frequency of the time series, and the reference value in monthly data is \(\lambda = 14400\)[7].

require(mFilter)
p_hp <- hpfilter(df$Purchase_Price,freq=14400,type="lambda",drift=F)$cycle
i_hp <- hpfilter(df$Effective_Interest_Rate, freq=14400,type="lambda",drift=F)$cycle
plot(df$Date,p_hp,type="l",xlab="Year",ylab="")
par(new=TRUE)
plot(df$Date,i_hp,col="red",type="l",axes=FALSE,xlab="",ylab="")
axis(side=4, col="red")
legend("top", legend=c("Home Purchase Price", "Effective Interest Rate"),
       col=c("black", "red"), lty=1, cex=0.8)
Figure 2. Detrend home purchase price (black) and detrend effective interest rate (red).

Figure 2. Detrend home purchase price (black) and detrend effective interest rate (red).

  • The two detrend time series look mean stationary, but not covariance stationary.

  • It looks like that the detrend home purchase price has higher variance after about 2003, while the detrend effective interest rate swings more between 1980 and 1990.

  • It is hard to see from the detrend time series plot whether home purchase prices and interest rates cycle together, because the plot is too dense and both home purchase prices and effective interest rates have high variability.


3.2 Linear Regression with ARMA Errors

In order to find the relationship between these two variables, we can try fitting a linear regression with ARMA errors model. The home purchase price is denoted by \(P^{HP*}_n\), and the effective interest rate is denoted by \(I^{HP*}_n\). The model is specified below, \[ P^{HP}_n = \beta_0 + \beta_1 I^{HP*}_n + \epsilon_n, \] for which \({\epsilon_n}\) is a Gaussian ARMA(p,q) model satisfying a stochastic difference equation

\[ \epsilon_n = \phi_1\epsilon_{n-1}+\phi_2\epsilon_{n-2}+...+\phi_p\epsilon_{n-p}+w_n+\psi_1\omega_{n-1}+\psi_2\omega_{n-2}+...+\psi_q\omega_{n-q}, \]

where \({\omega_n}\) is Gaussian white noise, \(\omega_n\sim N(0, \sigma^2)\).

We construct a table of AIC values to choose a proper model for \(\{\epsilon_n\}\).

MA0 MA1 MA2 MA3 MA4 MA5
AR0 3561.21 3376.87 3354.55 3317.82 3310.83 3311.60
AR1 3312.71 3310.36 3308.89 3305.66 3306.45 3308.44
AR2 3311.82 3311.02 3305.77 3306.69 3308.45 3310.45
AR3 3305.62 3304.91 3306.15 3308.62 3307.18 3280.80
AR4 3304.94 3306.90 3308.13 3308.69 3307.50 3309.50
  • The top 3 choices are ARMA(3,5), ARMA(3,1), and ARMA(4,0).
  • We choose the simplest among the 3 candidate models, which is ARMA(3,1) errors model.
arima_301 = arima(p_hp,xreg=i_hp,order=c(3,0,1))
arima_301
## 
## Call:
## arima(x = p_hp, order = c(3, 0, 1), xreg = i_hp)
## 
## Coefficients:
##          ar1     ar2     ar3     ma1  intercept     i_hp
##       0.0391  0.3034  0.1607  0.5340    -0.0540  -3.0330
## s.e.  0.2730  0.1729  0.0433  0.2772     0.7299   1.2797
## 
## sigma^2 estimated as 29.78:  log likelihood = -1645.46,  aic = 3304.91
  • The detrend home purchase prices and the detrend effective interest rates are negatively correlated.

  • The standard errors calcualted by the observed Fisher information are small for AR(2), AR(3) and detrend effective interest rate, but large for AR(1) and the intercept.

We can examine the roots of the AR and MA polynomials to check causality and invertibility

AR_roots <- polyroot(c(1,-coef(arima_301)[c("ar1","ar2","ar3")]))
cat("The AR roots are:", AR_roots, "\n")
## The AR roots are: 1.349383-0i -1.618819+1.411258i -1.618819-1.411258i
MA_roots <- polyroot(c(1, coef(arima_301)["ma1"]))
cat("The MA root is:", MA_roots, "\n")
## The MA root is: -1.872527+0i
  • Both roots are outside of the unit circle of a complex plane, suggesting we have a stationary, causal, invertible fitted ARMA.

Then we can conduct a likelihood ratio test to test the correlation between home purchase price and effective interest rate:

log_lik_ratio <- as.numeric(
   logLik(arima(p_hp,xreg=i_hp,order=c(3,0,1))) -
   logLik(arima(p_hp,order=c(3,0,1)))
)
LRT_pval <- 1-pchisq(2*log_lik_ratio,df=1)
LRT_pval
## [1] 0.01743322
  • The above likelihood ratio test gives a p-value of 0.01743322, which is statistically signficant at the significance level \(\alpha\) = 0.05.

3.3 Forecasted Value versus the Original Value

The linear regression with ARMA errors model is able to represent the association between the detrend home purchase price and the effective interest rate. Now We can visualize how good the fit it by making forecast.

I refer to the source code from one previous project “A Study on Crude Oil Price and CPI Value” in Winter 2016[11].

require(forecast)
Arima_301 = Arima(p_hp, order = c(3,0,1), xreg = i_hp)
plot(df$Date, Arima_301$x, col = "red", type = "l", xlab="Year", ylab="Home Purchase Price")
lines(df$Date, fitted(Arima_301), col = "blue")
legend("topleft", legend=c("Original Value", "Forecasted Value"),
       col=c("red", "blue"), lty=1, cex=0.8)
Figure 3. Residual Plot

Figure 3. Residual Plot

  • There is significant discrepancy between the forecast and the data. It requires further diganostics of the model to know how we could improve the model fit.

3.4 Model Diagnostics

For model diagnostics, we create the residual plot, Q-Q plot, and the sample ACF of both residuals and squared residuals:

Figure 4. Residual plot

Figure 4. Residual plot

Figure 5. Q-Q plot

Figure 5. Q-Q plot

Figure 6. ACF plot of residuals (left) and squared residuals (right)

Figure 6. ACF plot of residuals (left) and squared residuals (right)

  • The residual plot reveals heteroskedasticity: the variance of the residuals increases with time, and the volatility clusters in periods around 100, 200 and after 400.
  • The Q-Q plot shows the residuals have a short tail.
  • The ACF of the residuals shows that the residuals are deviant from Guassian white noise because 4 out of 26 ACF values fall outside the 95% CI denoted by dotted lines.
  • The ACF of the squared residuals confirms the cluster of volatility at some points in time

3.5 Linear Regression with ARMA-GARCH errors

To remedy the problems stated above, we need a generalized autoregressive conditional heteroskedasticity (GARCH) model that can capture the time-varying variance. The GARCH model is constructed as[9]: \[ \omega_n = \sqrt{\lambda_n}u_n,\\ \lambda_n = \alpha_0 + \sum^{q}_{i=1}{\alpha_i \omega_{n-i}^2} + \sum^{p}_{j=1}{\beta_j \lambda_{n-j}}, \\ \] where \({u_n}\) is a Gaussian white noise, \({u_n}\sim N(0, \sigma^2)\). Here, _n denotes the residuals from the linear regression with ARMA errors. For stationarity, we assume that \(\alpha_0 > 0\), \(\alpha_i >= 0\), \(\beta_j >= 0\), and \(\sum^{max(p,q)}_{l=1}({\alpha_i+\beta_j}) < 1\)

Similar to choosing the order for ARMA errors, we can constrauct a table of AIC values to choose the order for GARCH errors

GARCH(,0) GARCH(,1) GARCH(,2) GARCH(,3) GARCH(,4) GARCH(,5)
GARCH(0,) NA 3179.88 3159.18 3195.96 3176.05 2991.11
GARCH(1,) 3289.12 3231.40 3225.51 3193.13 3172.33 3153.65
GARCH(2,) 3285.75 3221.99 3215.21 3187.78 3165.36 3145.43
GARCH(3,) 3282.51 3212.92 3204.83 3182.18 3158.60 3137.36
GARCH(4,) 3279.26 3203.97 3193.94 3171.16 3151.63 3129.01
  • The top 3 candidate models, according to the AIC values, are (in order): GARCH(0,5), GARCH(4,5), and GARCH(3,5).
  • The GARCH(0,5) is the simplest among the 3 models, so we chose GARCH(0,5) model.

Therefore, we model the residuals of linear regression with ARMA(3,1) errors using GARCH(0,5).

## 
## Call:
## garch(x = r, order = c(0, 5), trace = F)
## 
## Model:
## GARCH(0,5)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -4.40391 -0.59703 -0.06035  0.53733  4.37869 
## 
## Coefficient(s):
##     Estimate  Std. Error  t value Pr(>|t|)    
## a0   1.78768     0.46041    3.883 0.000103 ***
## a1   0.29586     0.04677    6.326 2.52e-10 ***
## a2   0.10081     0.05384    1.872 0.061143 .  
## a3   0.33241     0.06798    4.890 1.01e-06 ***
## a4   0.29229     0.03564    8.200 2.22e-16 ***
## a5   0.29175     0.04234    6.891 5.53e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Diagnostic Tests:
##  Jarque Bera Test
## 
## data:  Residuals
## X-squared = 201.61, df = 2, p-value < 2.2e-16
## 
## 
##  Box-Ljung test
## 
## data:  Squared.Residuals
## X-squared = 0.31351, df = 1, p-value = 0.5755
  • The p-values for all the parameters are all smaller than 0.05 except for a2, suggesting that they are statistically significnat.
  • The p-value from the Box-Ljung test is greater than 0.05, so we cannot reject the null hypothesis that the residuals are independently distributed. Therefore, our GARCH(0,5) model represents the residuals pretty well.


4. Frequency Domain

Analyzing frequency components present in our data can help us detect cycles from a different perspective.


4.1 Spectrum Analysis

We use the detrend time series of home purchase prices and effective interest rates to create a spectral plot:

p_ts <- ts(p_hp,frequency=1)
i_ts <- ts(i_hp,frequency=1)

p_spectrum = spectrum(p_hp,spans=c(5,8),main="Smoothed Periodogram")
par(new=TRUE)
i_spectrum = spectrum(i_hp,spans=c(5,8),col="red",main="",axes=FALSE,xlab="",ylab="",ci.col="red")
axis(side=4, col="red")
legend("top", legend=c("Home Purchase Price", "Effective Interest Rate"),
       col=c("black", "red"), lty=1, cex=0.8)

1/0.02592593
## [1] 38.57142
1/0.01851852
## [1] 54
  • From the periodogram, we can see that the detrend home purchase prices and the detrend interest rates don’t seem to have a common cycle, because their peaks are all at different frequencies.

  • Both have a dominant cyclic frequency: the detrend home purchase prices have a dominant period of 38 months, whereas the detrend interest rates have a dominant period of 54 months. They differ by a lot, even though they look close to each other in the periodogram.



5. Conclusion

In summary, the time domain analysis shows us that the home purchase prices and the effective interest rates are negatively correlated. We found a linear regression model with ARMC(3,1)-GARCH(0,5) errors that has a relatively good fit. The frequency domain, however, doesn’t show any synchronized cyclic pattern.

For future analysis, some ideas I have include:

  1. adding more variables to the regression model, such as GDP, unemployment rate that contain more signal;
  2. using sample cross correlation function (CCF) to identify lags of effective interest rates that might be useful to predict housing prices. Economists Case and Shiller questions and tests the efficiency of the market for single-family home[8]. Although they weren’t able to answer that definitely in 1989, we should keep in mind that there might be a time lag between interest rates and the effects on house prices.


6. Reference

  1. Do Higher Interest Rates Cause Lower House Prices?. Retreived from https://www.integratedmortgageplanners.com/blog/mortgage-market-updates/do-higher-interest-rates-cause-lower-house-prices/

  2. Harris, J.C.. The effect of real rates of interest on housing prices. J Real Estate Finan Econ (1989) 2: 47. https://doi.org/10.1007/BF00161716

  3. Should I Buy A Home In A Rising Interest Rate Environment?. Retrieved from https://www.financialsamurai.com/should-i-buy-a-home-in-a-rising-interest-rate-environment/

  4. When interest rates go up in a healthy economy, history says home prices will rise. Retrieved from https://www.urban.org/urban-wire/when-interest-rates-go-healthy-economy-history-says-home-prices-will-rise

  5. List of recessions in the United States. Retrieved from https://en.wikipedia.org/wiki/List_of_recessions_in_the_United_States

  6. Why Mortgage Rates Once Reached a Sky-high 18.5%. Retrieved from https://finance.yahoo.com/blogs/just-explain-it/why-mortgage-rates-matter-152241574.html

  7. Hodrick-Prescott filter for trend and cyclical components. Retrieved from https://www.mathworks.com/help/econ/hpfilter.html

  8. Case, K., & Shiller, R. (1989). The Efficiency of the Market for Single-Family Homes. The American Economic Review, 79(1), 125-137. Retrieved from http://www.jstor.org/stable/1804778Copy

  9. Ji Eun Choi. Stochastic Volatility Models andSimulated Maximum LikelihoodEstimationby. Retreived from https://uwspace.uwaterloo.ca/bitstream/handle/10012/6045/Choi_Ji_Eun.pdf?sequence=1

  10. Ionides, E. (n.d.). Stats 531 (Winter 2016) “Analysis of Time Series”. Retrieved from http://ionides.github.io/531w16/

  11. A Study on Crude Oil Price and CPI Value. Retrieved from https://ionides.github.io/531w16/midterm_project/project1/Stats_531_Midterm_Project.html