Asset Pricing [8a : Time Series Predictability]

According to classic market efficiency,stock prices (which are not predictable) follow a random walk and hence financial returns, which are basically percentage price changes, are similarly unpredictable. If this view of the world is true,then one would expect to see b=0 and R-squared=0 for any variable x(t) in the simple regression : R(t+1) = a+bx(t)+e(t+1). Intuitively,competition in stock markets should drive out any predictable movement in stock prices. If b were greater than 0, individual investors should buy when x(t) is high and sell when x(t) is low. However if every market participant adhered to this logic, prices would be driven up (down) on the basis of a high (low) x(t) until today’s price is the same as the price expected in the next period. The more competitive an asset market, the greater the degree of informational efficiency,the greater the speed at which pertinent material information is impounded in today’s stock price, the lower the likelihood of predicting stock price movements.

Implicit in these statements is a distinction between individual versus equilibrium perspectives. Assuming b>0, an individual would look towards a positive signal (x) as an indication to buy the stock and reap subsequent returns. If everybody followed this same logic, stock prices would be bid up until current and expected prices are equal and the incentive for further action eliminated. An asset for which b>0 cannot describe a market in equilibrium. It is tempting but erroneous to conclude that predictability implies inefficient markets. Nothing in the definition of market efficiency requires that expected returns remain constant over time.In fact, predictability is equivalent to variation in expected returns. Consider a regression model of excess stock returns on the Div/Price ratio over time :

gki

Taking expectations,this means that at time t, the expected returns is:

aw

This implies that expected returns vary over time and are not constant as long as returns are predictable (b not equal to 0). As far as I understand this, if the regression produces a zero slope coefficient, then expected returns would be reduced to a constant (a). Hence,as long as the estimated slope coefficient is non zero, one can link variation in expected returns to predictability of returns. As usual, all these posts may be riddled with mistakes and misunderstandings on my part;far better to look at the sources for yourself : Discount Rates,Chicago Lectures.

The first generation of tests suggest that basically nothing can forecast stock returns. The following section gives a sense of this from regressions of returns on lagged returns for : [a] CSRP stock data ; [b] T-bill rate ; [c] Excess returns. Observations are annual for the period from 1952 to 2008. Data sources come from the Chicago lecture problem sets linked to above. Additional variables such as the D/P,Div Growth and Cay are also imported for later use.

l

#####################################################################################
#Data import & handling
#####################################################################################

#Import CSV file(s)
ret.csv<- read.csv('ps1_data.csv',header=T)
cay.csv <- read.csv('cay.csv',header=T)
ret.ts <- ts(data=ret.csv,start=c(1926),end=c(2011),frequency=1)
cay.ts <- ts(data=cay.csv,start=c(1952,1),end=c(2009,1),frequency=4)

#Subset data
row.idx <- 1:nrow(cay.ts)
ret.sub <- window(ret.ts,start=c(1952),end=c(2008),frequency=1)
cay.sub <- ts(cay.ts[row.idx%%4==0,],start=c(1952),end=c(2008),frequency=1)

#Save individual series
idx.ret <- ret.sub[,1]
dp <- ret.sub[,2]
dg <- ret.sub[,3]
tbill <- ret.sub[,4]
cay <-cay.sub[,4]
exc <- idx.ret-tbill

#Save log series
log.ret <- log(1+idx.ret)
log.dp <- log(dp)
log.dg <- log(1+dg)
rho=0.96
###################################################################################

l

Running regressions of stock,tbill,excess returns on their one period lagged values :

###################################################################################
# Initial Regression & Test
###################################################################################

#Initial regressions on lagged values
idx.temp <- cbind(idx.ret,lag(idx.ret,-1))
idx.reg<-lm(idx.temp[,1]~idx.temp[,2])

tbill.temp <- cbind(tbill,lag(tbill,-1))
tbill.reg<-lm(tbill.temp[,1]~tbill.temp[,2])

exc.temp <- cbind(exc,lag(exc,-1))
exc.reg<-lm(exc.temp[,1]~exc.temp[,2])

#Extract regression values
reg.list <- list(idx.reg,tbill.reg,exc.reg)
estim <-RegExtractor(reg.list,'est')
pvals <-matrix(RegExtractor(reg.list,'pval'),ncol=2)
tvals <-matrix(RegExtractor(reg.list,'tval'),ncol=2)
rsq <-matrix(RegExtractor(reg.list,'rsq'),ncol=1)

#Variation of expected returns with the level of expected returns
std.vals=sapply(reg.list,function(v) sd(fitted(v)))*100
mean.vals=sapply(reg.list,function(v) mean(fitted(v)))*100

#Plots&Table
asset.names<-c('Returns','Tbill','Excess')
col.names<-c('Intercept','Beta','t-stats','p-vals','R2','E(R)','Std(Fitted)')
reg.table=cbind(estim,(tvals[,2]),(pvals[,2]),rsq,mean.vals,std.vals)

windows()
layout(matrix(c(1,1,2),nrow=3))
plot(idx.ret,ylab='Returns',xlab='',cex.main=0.85,cex.lab=0.75,cex.axis=0.75,main='Timeseries plots',col='darkgreen',type='l',lwd=2)
lines(tbill,col='blue')
lines(exc,col='red')
legend(bty='n',y.intersp=1,'bottomleft',fill=c('darkgreen','blue','red'),legend=asset.names,ncol=1,bg='white',cex=0.75)

est.tab <- round(reg.table,5)
est.tab <- apply(est.tab, 2, rev)
est.tab <- cbind(rev(asset.names),est.tab)
par(mai=c(0.35,0.15,0.5,0.15))
TableMaker(row.h=1,est.tab,c('Single Period',col.names),strip=F,strip.col=c('green','blue'),col.cut=0.05,alpha=0.7,border.col='lightgrey',text.col='black',header.bcol='gold',header.tcol='black',title=c('Regression of returns on lagged returns\nAnnual data for 1952-2008'))
###################################################################################

cc

The table beneath the time series plot summarises the typical regression estimates. Stock returns are basically unpredictable,if returns go up 100% this year,one would expect a rise of just about 4% next year,a trivial amount of momentum. While the slope coefficient is statistically insignificant this has no significance in terms of economic interpretation. The R-squared which measures the proportion of return variance that can be forecast one year ahead is tiny. Results for the t-bill regression provide an interesting contrast with a large slope parameter estimate that is statistically significant with a R-squared of 72%. This is visually corroborated by the relatively smooth time series plot for interest rate returns. The last row in the table presents results for the excess return regression. The results clearly mimic that of the pure stock return. Excess return separates willingness to consume less and save from the willingness to bear risk. The last 2 columns of the table compare how much expected returns vary over time with the level of expected returns. This can be thought of as another economic measure of how much expected returns vary over time. While these findings may have been revolutionary in the 1970s,they were upended by two new facts a decade later: [a] long horizon regressions and [b] new variables.

Leave a comment