The New Irish House Price Index
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
On Friday, the CSO released a new house (and apartment) price index, for the national, Dublin, and national excluding Dublin regions. The release has been noted and covered by the great Irish Economy and Namawinelake blogs. I want to briefly look at some of the statistical properties of this series in more detail.
Below is a plot of national property prices, the stock of mortgage debt, and the rent index from the consumer price index (CPI) sub-index group 04, where I have indexed the mortgage debt and rent series to the same base as the property index (January 2005).
The national property price index looks non-stationary, though any I(d)/I(0) analysis will be somewhat unsatisfactory due to the small sample size. Below is the autocorrelation and partial autocorrelation functions, respectively, of the national property price series.
We can see a clear linear decline in the ACF, and a near unity value in the first lag of the PACF, indicating a unit-root.
Augmented Dickey-Fuller (ADF) Tests:
Test Statistic | 1 Pct | 5 Pct | 10 Pct | No. Lags | |
-3.409031 | -4.04 | -3.45 | -3.15 | 10 | |
-1.534216 | -3.51 | -2.89 | -2.58 | 10 | |
-1.167147 | -2.60 | -1.95 | -1.61 | 11 |
KPSS Tests:
Test Statistic | 1 Pct | 5 Pct | 10 Pct | No. Lags | |
0.9815038 | 0.739 | 0.463 | 0.347 | 3 | |
0.3699892 | 0.739 | 0.463 | 0.347 | 11 | |
0.4757929 | 0.216 | 0.146 | 0.119 | 3 | |
0.1865829 | 0.216 | 0.146 | 0.119 | 11 |
In all ADF tests, we cannot reject the null of a unit root, and we reject the null of stationarity with short-lag KPSS tests, though not at longer lag lengths. Interestingly, this doesn’t look like an I(1) series, based on the same tests on the first-difference of the series:
Augmented Dickey-Fuller (ADF) Tests:
Test Statistic | 1 Pct | 5 Pct | 10 Pct | No. Lags | |
-1.9447631 | -4.04 | -3.45 | -3.15 | 10 | |
-1.2772656 | -3.51 | -2.89 | -2.58 | 10 | |
-1.0238878 | -2.60 | -1.95 | -1.61 | 10 |
KPSS Tests:
Test Statistic | 1 Pct | 5 Pct | 10 Pct | No. Lags | |
1.3204211 | 0.739 | 0.463 | 0.347 | 3 | |
0.5077005 | 0.739 | 0.463 | 0.347 | 11 | |
0.2494931 | 0.216 | 0.146 | 0.119 | 3 | |
0.1175553 | 0.216 | 0.146 | 0.119 | 11 |
This raises some potential problems for any cointegration analysis of house prices and mortgage debt, if the latter series is I(1).
require(tseries) require(urca) require(ggplot2) # a<-read.csv(file="Book1.csv") # Debt<-a[,4] Property<-a[,2] Rent<-a[,5] # debtts<-ts(Debt,start = c(2005, 1), end = c(2011, 3), frequency=12) propts<-ts(Property,start = c(2005, 1), end = c(2011, 3), frequency=12) rentts<-ts(Rent,start = c(2005, 1), end = c(2011, 3), frequency=12) # ddebtts<-diff(debtts) dpropts<-diff(propts) drentts<-diff(rentts) # dates <- as.Date(a$Date, "%d/%m/%Y") df1<-data.frame(dates,Property,Debt,Rent) # gg1.1<-ggplot(df1,aes(dates)) + xlab(NULL) + ylab("Jan 2005 = 100") gg1.2<-gg1.1 + geom_line(aes(y = Debt, colour = "Mortgage Debt")) + geom_line(aes(y = Property, colour = "Property Index")) + geom_line(aes(y = Rent, colour = "Rent")) + scale_colour_hue("Series:") + opts(title="Mortgage, Propery, and Rent Indices") + opts(legend.position=c(.15,0.8)) # png(filename = "prop1.png", width = 1000, height = 600, units = "px", pointsize = 12, bg = "white") gg1.2 dev.off() # png(filename = "propacf.png", width = 600, height = 800, units = "px", pointsize = 12, bg = "white") par(mfrow=c(2,1)) acf(propts,main="ACF of National Property Price Index") pacf(propts,main="PACF of National Property Price Index") dev.off() # summary(ur.df(propts,type="trend",lags = 12, selectlags="AIC")) summary(ur.df(propts,type="drift",lags = 12, selectlags="AIC")) summary(ur.df(propts,type="none",lags = 12, selectlags="AIC")) # summary(ur.kpss(propts,type="mu",lags="short")) summary(ur.kpss(propts,type="mu",lags="long")) summary(ur.kpss(propts,type="tau",lags="short")) summary(ur.kpss(propts,type="tau",lags="long")) # summary(ur.df(dpropts,type="trend",lags = 12, selectlags="AIC")) summary(ur.df(dpropts,type="drift",lags = 12, selectlags="AIC")) summary(ur.df(dpropts,type="none",lags = 12, selectlags="AIC")) # summary(ur.kpss(dpropts,type="mu",lags="short")) summary(ur.kpss(dpropts,type="mu",lags="long")) summary(ur.kpss(dpropts,type="tau",lags="short")) summary(ur.kpss(dpropts,type="tau",lags="long")) # png(filename = "dpropacf.png", width = 600, height = 800, units = "px", pointsize = 12, bg = "white") par(mfrow=c(2,1)) acf(dpropts,main="ACF of FD (National Property Price Index)") pacf(dpropts,main="PACF of FD (National Property Price Index)") dev.off() #
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.