The New Irish House Price Index

May 14, 2011
By

(This article was first published on TimeSeriesIreland » R, and kindly contributed to R-bloggers)

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 Statistic1 Pct5 Pct10 PctNo. Lags
\tau_{ct}-3.409031-4.04-3.45-3.1510
\tau_{c}-1.534216-3.51-2.89-2.5810
\tau_{n}-1.167147-2.60-1.95-1.6111

KPSS Tests:

Test Statistic1 Pct5 Pct10 PctNo. Lags
\mu0.98150380.7390.4630.3473
\mu0.36998920.7390.4630.34711
\tau0.47579290.2160.1460.1193
\tau0.18658290.2160.1460.11911

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 Statistic1 Pct5 Pct10 PctNo. Lags
\tau_{ct}-1.9447631-4.04-3.45-3.1510
\tau_{c}-1.2772656-3.51-2.89-2.5810
\tau_{n}-1.0238878-2.60-1.95-1.6110

KPSS Tests:

Test Statistic1 Pct5 Pct10 PctNo. Lags
\mu1.32042110.7390.4630.3473
\mu0.50770050.7390.4630.34711
\tau0.24949310.2160.1460.1193
\tau0.11755530.2160.1460.11911

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()
#

To leave a comment for the author, please follow the link and comment on his blog: TimeSeriesIreland » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , ,

Comments are closed.