troy shu stat 520 pead project writeup final
TRANSCRIPT
Troy ShuSTAT 520 Small
December 19, 2010Final Project
Post Earnings Announcement Drift: Earnings Surprises and Intermediate Term Stock Returns
Introduction
Post earnings announcement drift is the tendency for a stock to drift in the direction of an earnings
surprise for several months—even years—following an earnings announcement. There have been several
academic analyses on this phenomenon (for example “The Extreme Future Stock Returns Following
IBES Earnings Surprises” by Doyle, Lundholm, and Soliman, 2004) and a strong association between
larger, more positive earnings surprises and higher future returns has been confirmed. We will examine
the post earnings announcement drift effect in the intermediate term, specifically the effect of earnings
surprises on returns during the 30 days after the earnings announcement.
Sample and Methodology
Sample
In this study we use the 500 stocks comprising the S&P 500, a subset of all stocks in the universe.
The S&P 500 is an index of 500 actively traded large capitalization stocks that vary across industries. Our
time frame is January 1, 1998 to January 1, 2009. Each data point in our sample is an earnings
announcement event for a stock in the S&P 500.
Data
Earnings release and median analyst estimate figures were obtained from IBES. Since our time frame
is January 1, 1998 to January 1, 2009, price data from January 1, 1997 to January 1, 2010 for each stock
1
in the S&P 500 was downloaded from CRSP to ensure that past and future price metrics could be
calculated for any earnings release date between 1998 through the end of 2008. Also, price data for
^GSPC, the index symbol for the S&P 500, for the same timeframe (January 1, 1997 to January 1, 2010)
was downloaded from Yahoo Finance. GSPC’s price data was used to market-adjust returns as will be
explained in the next section. We will be using the terms GSPC and S&P 500 interchangeably.
Methodology
Our tentative multiple regression model is:
FutureReturn30 = β0 + β1ROC30 + β2Volatility30 + β3Surprise (1)
FutureReturn30 is the stock’s market adjusted return
(StockPrice30DaysFromNow/CurrentStockPrice – GSPCPrice30DaysFromNow/CurrentGSPCPrice)
over the next 30 days after its earnings announcement. ROC30 is the market adjusted rate of change of the
stock’s price 30 days prior to the earnings announcement date. Volatility30 is the price adjusted standard
deviation (SD(Last30Days’Prices)/CurrentStockPrice) of the stock’s price in the last 30 days. Surprise
for a stock on an earnings release date is the price adjusted difference between actual earnings per share
and analysts’ median earnings per share estimate, or (ActualEPS –
MedianEstimatedEPS)/CurrentStockPrice.
Analysis
Constructing the Model
Model (1) was constructed and a plot showing each data point’s Cook’s distance was drawn:
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.014842 0.001595 9.308 < 2e-16 ***ROC30 0.030096 0.011114 2.708 0.00678 ** Volatility30 -0.097253 0.021259 -4.575 4.8e-06 ***
2
Surprise 0.002179 0.005227 0.417 0.67679
We can see several high leverage points. After removing these points, the coefficients on our model’s
covariates became much more significant and Cook’s distance plot looked like the following:
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.014924 0.001593 9.366 < 2e-16 ***ROC30 0.025014 0.011134 2.247 0.02468 * Volatility30 -0.098852 0.021310 -4.639 3.53e-06 ***Surprise 0.167108 0.060626 2.756 0.00585 **
3
Plotting the component residual plot:
crPlots(regmodel,ylim=c(-1,1)) #component residual plots
We can see that a transformation of ROC30 and/or Volatility30 will allow our model to fit better.
Surprisingly, neither log nor polynomial transforming the above covariates had much of an effect on the
residual standard error of the model, but log transforming Volatility30 did decrease the residual standard
error of the model slightly from 0.1746 to 0.1745. After log transforming Volatility30, this is what the
resulting component residual plot looked like:
4
Next, we checked the least squares regression assumptions:
We see that the mean model and the constant variance assumption hold reasonably well and that there
are no high leverage points. However, the distribution of the residuals does not seem to be normal. This
suggests that we use a nonparametric bootstrap test to estimate the confidence interval for the regression
coefficient of Surprise.
Inference and Interpretation
We are interested in examining if corporate earnings surprises have an effect on stock returns over the
next 30 days after the announcement.
Our current model is:
FutureReturn30 = β0 + β1ROC30 + β2 log(Volatility30) + β3Surprise (1)
5
The null and alternative hypotheses are as follows:
H0: β3 = 0Ha: β3 ≠ 0
We build a nonparametric bootstrap test to obtain the 95% confidence interval for the regression
coefficient of Surprise (R code in appendix). The 95% confidence interval for β3 , or the coefficient of
Surprise, is:
lci.beta 2.5% 0.01393616 uci.beta 97.5% 0.3595436
(0.0139,0.3595). There seems to be a significant positive association between a higher Surprise and a
higher FutureReturn30. In other words, for every 1 point increase in Surprise is associated with a 0.0139
to a 0.359 point increase in FutureReturn30.
The interpretation of this confidence interval is tricky because since Surprise is price adjusted, we
must consider both the price of the stock and its earnings per share in order to make comparisons. The
values of Surprise were on the order of 0.001; so for a 0.001 increase in Surprise, the amount that
FutureReturn30 increases is 0.000139 to 0.00359. Using this information, consider an example:
Surprise Stock Price
Actual EPS
Median EPS
Surprise %
0.001 20 1.02 1 2%0.002 20 1.04 1 4%0.006 20 1.12 1 12%
In the above table we hold stock price and median earnings per share constant (all of them have a
price/median EPS ratio, or estimated P/E ratio, of 20) and vary the value of Surprise. The Surprise % is
then calculated for each stock so that we can better understand what a change in Surprise means in terms
of actual percentage EPS surprise. We can see that for stocks with an estimated P/E ratio of 20 that a
0.001 point increase in Surprise is equivalent to a 200 basis point higher surprise percentage. Using our
6
confidence interval, this means that, ceteris paribus, a 20 P/E stock with an earnings surprise 200 basis
points higher than another 20 P/E stock will in general have a 1.4 basis point (0.014%) to a 36 basis point
(0.36%) higher 30-day return. In reality, earnings surprise percentages vary a lot more; let us compare a
20 P/E stock with a Surprise of 0.001 points to one with a Surprise of 0.006 points. In other words, we are
comparing a stock with a 2% earnings surprise to one with a 12% earnings surprise, respectively. Since
Surprise has increased by 0.005, the stock with the 12% earnings surprise will in general have a 1.4*5=7
basis point (0.07%) to a 36*5=180 basis point (1.8%) higher future 30-day return than a stock with a 2%
earnings surprise. Of course the relationship between percentage earnings surprise and 30-day returns will
vary based on the P/E ratio of the stocks being compared, but the positive association remains.
Let us look at a quantile regression:
qmodel=rq(Future30 ~ ROC30 + log(Volatility30) + Surprise,data=data2,tau=c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9));plot(summary(qmodel));
We can see that the positive association between Surprise and FutureReturn30 stays relatively
constant across the many different actual FutureReturn30 that each stock experiences.
7
Conclusion
There is a significant association between larger, more positive earnings per share surprises and larger
returns that the stock experiences in the 30 days after the earnings announcement. We first removed
several high leverage points and transformed our original model to ensure that the mean model
assumption of least squares regression held. Our hypothesis that EPS surprise has a significant effect on
future returns was supported by a bootstrap test to find the 95% confidence interval for the regression
coefficient of Surprise and by a quantile regression of our model.
Researchers have proposed several explanations for the post earnings announcement drift effect. The
most widely accepted one is that market participants under-react to the long term effects of a unexpected
earnings growth surprise. Whatever the reasons, post earnings announcement drift is one of major market
anomalies that support the counterargument to market efficiency theory.
A consideration for future studies includes the observation that our model seems to behave differently
for positive Surprise than for negative Surprise as evidenced by the Surprise component residual plot.
Perhaps fitting a new model for positive only EPS surprises would allow us to examine the effect of
positive EPS surprises on future returns better than our generalized model for both negative and positive
EPS surprises. A future study could also incorporate more covariates into the model, such as a company’s
market capitalization, to control for effects outside the true influence of EPS surprise on future stock
returns.
8
Appendix
#bootstrapdata = read.csv("C:\\Users\\Troy Shu\\Documents\\School\\Penn\\2010\\
courses\\stat520\\project\\java workspace\\STAT 520 PEAD\\finaldata.csv");
#removing high leverage pointsdata2 = data[-15405,];data2 = data2[-16955,];data2 = data2[-9373,];
#set number of bootstrap samplesnumboots = 500;#set the sample sizeN = length(data2$Surprise);#create vector to hold bootstrapped betasbetas = c(rep(0,numboots));
#for each bootstrap samplefor (i in 1:numboots) {
#sample with replacement from original student sampleindices = sample(1:N,replace=TRUE);
#regressregmodel = lm(Future30[indices] ~ ROC30[indices] + log(Volatility30)
[indices] + Surprise[indices],data=data2);
#get the beta for Surprise and storebetas[i] = coefficients(regmodel)[4];
}
lci.beta = quantile(betas,0.025)uci.beta = quantile(betas,0.975)
lci.betauci.betamean(betas)
9