Valuation: VC edition - London School of Economics

Download Report

Transcript Valuation: VC edition - London School of Economics

Testing Factor Models
Downloads
 Today’s work is in: matlab_lec07.m
 Functions we need today:
 Datasets we need today: ff3fact.m,
ff6ret.m, aggret.m, pdin.m,
data_sandp.m
Factor Models
 Suppose factors are good proxies for risk
 Suppose factors are uncorrelated
 Suppose factors themselves can be represented by
excess returns (ie Rm-Rf or Ri-Rk)
 E[Ri-Rk]=B1iE[F1]+B2iE[F2]+… +εit where
B1i=Cov[Ri-Rk,F1]/Var[F1] …
 This implies that in a regression:
Rit-Rft=αi+β1iF1t+β2iF2t+εit and αi=0 for all assets!
(this part does not need factors to be uncorrelated)
 If α≠0 for some asset, either (1) This is model does
not do a good job or (2) This asset, for some reason,
has an abnormal return
What are
Size and B/M?
 Book value is the value of the firm based on
accounting numbers
 Market value is the value of the firm based on
its stock price
 Firms with low book to market values have little
accounting value, but high market value,
market believes they have many growth
opportunities not reflected in accounting
numbers, they are growth firms
 Firms with high book to market values are value
firms
 Size is just the market value of the firm
Sorting
Portfolios
 Fama and French calculate each firm’s size and
B/M each year and then sort them according to
those quantities
 This is called a double sort
 They then create 6 portfolios (3x2), ie (highest
B/M+lowest size), (middle B/M+highest size), etc
 They calculate each portfolio’s return for one year
 Next year they resort and form new portfolios
 This is a strategy that a market participant (ie
mutual fund) could follow as well
FF factors
 They use the sorted portfolios to create new,
long/short portfolios
 SMB (small minus big) goes long in the small
portfolio, and finances this by going short in the
large portfolio, its return is RS-RB
 HML (high minus low) goes long in the high B/M
(value) portfolio, and finances this by going
short in the low B/M (growth) portfolio, its
return is RB-RL
 Note, these are zero cost portfolios, other than
transaction costs, these portfolios cost you
nothing
Download Returns
and Factors
 Load the files ff3fact.m and ff6ret.m into Matlab
 Alternately, save files into your matlab directory
and type their names into the matlab prompt
 This data comes from Kenneth French’s website:
http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html
%
Small
Big
% Low
2
High
Low
2
High
>>disp(mean(FF6ret(:,2:7)));
1.0234 1.3215 1.5255 0.9237 1.0125 1.2404
% Mkt-RF
SMB
HML
RF
>>disp(mean(FFfactors(:,2:5)));
0.6511 0.2314 0.4097 0.3064
What is Risk?
 Small and Value stocks have higher
average returns, does this imply market
is inefficient? No!
 They should have higher average
returns, if they are more risky? Are they
more risky? What is risk?
 Assets that covary with aggregate risk
are more risky. What is aggregate risk?
 CAPM says the market return is a proxy
for aggregate risk
Test CAPM on FF6
 The CAPM says that the average return on any
asset (or portfolio of assets) should depend on
the covariance of that asset (or portfolio) with
the market return
E[R-Rf]=[Cov(R,Rm)/Var(Rm)]*E[Rm-Rf]
 Think back to the definition of regression: if
we regress Rt-Rtf=α+β*(Rtm-Rtf)+εt, then
β=[Cov(R-Rf,Rm-Rf)/Var(RmRf)]=[Cov(R,Rm)/Var(Rm)]
and α=E[R-Rf]-B*E[Rm-Rf]
 Thus, CAPM predicts α=0 for each asset
Test CAPM on FF6
>>[T w]=size(FFfactors);
>>X=[ones(T,1) FFfactors(:,2)];
>>for i=1:6;
Y=FF6ret(:,1+i)-FFfactors(:,5);
[regcoef sterr]=regress(Y,X);
outcapm(i,:)=[regcoef(1) sterr(1,1) sterr(1,2)];
end;
>>disp(outcapm);
>>plot(mean(FF6ret(:,2:7)),mean(FF6ret(:,2:7)),'k-');
>>hold on;
>>plot(mean(FF6ret(:,2:7)),
mean(FF6ret(:,2:7))-outcapm(:,1)','b.');
Predicted
vs actual
Test FF 3 factor
 A multifactor model is similar to a one factor
model
 FF 3-Factor Model suggests market is not the
only source of risk, SMB and HML also proxy for
risk
 The regression
Rt-Rtf=α+β1*(Rtm-Rtf)+β2*SMBt+β3*HMLt +εt
should have α=0 for each asset
 Note that the factors are all excess returns, so
this conforms to definition in first slide
 F1=Rm-Rf, F2=RS-RB, F3=RH-RL
Test FF 3 factor
>>[T w]=size(FFfactors);
>>X=[ones(T,1) FFfactors(:,2:4)];
>>for i=1:6;
Y=FF6ret(:,1+i)-FFfactors(:,5);
[regcoef sterr]=regress(Y,X);
out3f(i,:)=[regcoef(1) sterr(1,1) sterr(1,2)];
end;
>>disp(outcapm);
>>plot(mean(FF6ret(:,2:7)),mean(FF6ret(:,2:7)),'k-');
>>hold on;
>>plot(mean(FF6ret(:,2:7)),
mean(FF6ret(:,2:7))-out3f(:,1)','rx');
Predicted
vs actual
Return
Predictability
 Returns seem to be weakly predictable
 The predictability becomes stronger when we
aggregate returns over longer horizons
 Several variables have predictive power, among
these are P/D, P/E, cay, long-term component
of consumption growth
 This does not necessarily violate EMH
 For example, expected returns may be higher
during recessions, but these are also times
when investors face the most risk, and when
they are most likely to be constrained
Getting P/D data
(optional)
From CRSP get the Market, Value Weighted Return, including
distributions, and excluding dividends for 1926-2008
 Since you need to enter the name of a security, use GE (it existed for all
those years)
 This is used to make the dataset aggret.m (on my website). This dataset
contains return (including dividends) in the 3rd column, and return
(excluding dividends) in the 4th column. Load this into matlab
>>[T b]=size(aggreturn);
>>price(1)=1; dividend(1)=0;
>>for t=2:T;
timeline(t)=round(aggreturn(t,2)/10000);
price(t)=price(t-1)*(aggreturn(t,4)+1);
%calculate price of firm next year using the ex-dividend return
dividend(t)=price(t-1)*(aggreturn(t,3)+1)-price(t);
%calculate dividend by subtracting ex-dividend price from
%cum-dividend price
end; dividend(1)=dividend(2); %use some number other than zero
 This creates a monthly time series for prices (Jan 1926 normalized to 1)
and dividends

Download
Predictors
 Load the data from pdin.m on my website
>>pdin;
 matrix called pddata (996x5), contains monthly data for
Jan 1926-Dec 2006
 Its columns are date, price (normalized to Jan 1926
being 1), dividend, price/dividend, aggregate return
 Gordon Growth Model: P/D high implies prices are high
relative to payouts, so high growth expected
>>subplot(2,1,1); plot(pddata(:,5));
>>in=1:12:T;
>>subplot(2,1,2);
plot(round(pddata(in,1)/10000),pddata(in,4));
 Note that P/D has increased over the period, have
distributions changed so dramatically?
 P/E is a better measure, firms are paying less dividends,
but investors are getting paid in other ways
Monthly Predictability
 In practice want to use most recent data
 In historical analysis, use extra lags to make
sure you are not using contemporaneous
information
>>[T a]=size(pddata);
>>Y=pddata(7:T,5);
>>X=[ones(T-6,1) pddata(1:T-6,4)/12];
>>[regcoef sterr a3 a4 rsq]=regress(Y,X);
>>disp([regcoef sterr]); disp(rsq(1));
 Regression coefficient is negative (high prices
today lead to low returns in future), but not
significant
 R2 is very small
Annual
Predictability
 What if we try to predict the cumulative annual return
rather than just a monthly return?
 Calculate cumulative annual return for year t, regress it on
the P/D ratio in July of t-1
>>T1=floor(T/12); %number of years in our data
>>for i=2:T1;
in=(i-1)*12+1:(i-1)*12+12; %selective index for year i
Y(i,1)=sum(pddata(in,5));
X(i,1)=1;
X(i,2)=pddata((i-1)*12+1-7,4);
end;
>>[regcoef sterr a3 a4 rsq]=regress(Y(2:T1),X(2:T1,:));
>>disp([regcoef sterr]); disp(rsq(1));
 R2=7.3%, annual returns over this period are predicted by
P/D!
Daily
Predictability
 Technical Analysis: Claims the ability to
forecast the future direction of stock
prices through the study of past market
data, primarily price and volume.
 “I realized technical analysis didn't work
when I turned the charts upside down
and didn't get a different answer”
 Warren Buffet
 “Market really went down [up] today, I
bet its going up [down] tomorrow!”
 My dad
Daily
Predictability
>>data_sandp; %daily s&p data, date in 1st column, return
in 2nd
>>T=length(rsandp);
>>i=0; j=0; clear outlow outhigh;
>>for t=1:T-1;
if rsandp(t,2)<-.02;
i=i+1;
outlow(i,1)=rsandp(t+1,2);
end;
if rsandp(t,2)>.02;
j=j+1;
outhigh(j,1)=rsandp(t+1,2);
end;
end;
Daily
Predictability
>>disp([mean(rsandp(:,2)) mean(outlow) mean(outhigh)
std(outlow) std(outhigh)]);
0.0003
0.0004
0.0033
0.0226
>>rmin=min(rsandp(:,2));
>>rmax=max(rsandp(:,2));
>>subplot(2,1,1);
>>hist(outlow,[rmin:.01:rmax]);
>>subplot(2,1,2);
>>hist(outhigh,[rmin:.01:rmax]);
0.0134
Daily Predictability