[This article was first published on TimeSeriesIreland » R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
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 $\tau_{ct}$$\tau_{ct}$ -3.409031 -4.04 -3.45 -3.15 10 $\tau_{c}$$\tau_{c}$ -1.534216 -3.51 -2.89 -2.58 10 $\tau_{n}$$\tau_{n}$ -1.167147 -2.60 -1.95 -1.61 11

KPSS Tests:

 Test Statistic 1 Pct 5 Pct 10 Pct No. Lags $\mu$$\mu$ 0.9815038 0.739 0.463 0.347 3 $\mu$$\mu$ 0.3699892 0.739 0.463 0.347 11 $\tau$$\tau$ 0.4757929 0.216 0.146 0.119 3 $\tau$$\tau$ 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 $\tau_{ct}$$\tau_{ct}$ -1.9447631 -4.04 -3.45 -3.15 10 $\tau_{c}$$\tau_{c}$ -1.2772656 -3.51 -2.89 -2.58 10 $\tau_{n}$$\tau_{n}$ -1.0238878 -2.60 -1.95 -1.61 10

KPSS Tests:

 Test Statistic 1 Pct 5 Pct 10 Pct No. Lags $\mu$$\mu$ 1.3204211 0.739 0.463 0.347 3 $\mu$$\mu$ 0.5077005 0.739 0.463 0.347 11 $\tau$$\tau$ 0.2494931 0.216 0.146 0.119 3 $\tau$$\tau$ 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)
#
#
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()
#