Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Empirical Asset Pricing, ECON 5069

1 Data

Monthly stock prices on 85 UK companies over the period of Jan 1985. – Dec. 2006 (264 months). Thus total number of observations is 22,440. Following variables contained in our dataset. We use FTSE100 index as proxy for the market portfolio and 3-month Treasury Bill for the risk-free rate. Followings are variable definitions:

● nid: individual index

● tid: date index (1985m1 - 2006m12)

● yid: year index (1985-2006)

● mid: month index (1-12)

● entityname: company name

● keyindex: key index

● sp: UK company stock price

● ftse100: FTSE100 index

● tb3m: 3-month Treasury Bill rate

● size: company size

2 Portfolio Construction

1.  Generate excess returns:

rit = Rit _ Rft, Rit = ln Pit _ ln Pi,t − 1                                                           (1)

rmt = Rmt _ Rft, Rmt = ln Pmt _ ln Pm,t − 1 ,                                   (2)

where Pit  denotes a stock price for company i and Pmt  the price of the market portfolio.

2.  Start with 1985-1989 (60 months)



Table 1: Time-series test of 10 portfolios

1st

2nd

3rd

4th

Portfolio

5th 6th

7th

8th

9th

10th

βˆp

1.3645

1.0339

0.9658

0.9574

0.8685

0.8692

0.8843

0.7608

0.5722

0.6181

p

-0.0012

-0.0011

-0.0004

-0.0009

-0.0026

-0.0003

0.0008

0.0003

0.0017

-0.0015

t (p )

-0.2626

-0.3374

-0.1497

-0.3038

-0.8396

-0.1072

0.2741

0.1189

0.6269

-0.4960

0.0005

0.0002

0.0007

0.0003

-0.0016

0.0008

0.0019

0.0013

0.0024

-0.0007

σ (rp)

0.0850

0.0613

0.0579

0.0560

0.0571

0.0539

0.0548

0.0495

0.0457

0.0497



(a) Estimate beta for each company by applying time-series regression:

rit = αi + βirmt + cit .


(3)



(b)  Rank stocks by estimated betas and form portfolio, 1st – 10th.

(c)  Calculate monthly returns for each of 12 months in 1990 for 10 portfolios:


Np

rp = N1         ri, p = 1, . . . , 10,                                          (4)

i=1

Np  is the number of stocks within the portfolio.

3.  Recalculate the portfolio returns for  1991,...,2006 by repeating  (a)-(c).   Then we have  12 monthly returns for 17 years (204 months).




1. For the full sample, calculate alpha for each portfolio by estimating rpt = αp + βprmt + cpt, p = 1, . . . , 10.

2.  Then test H0  : αp = 0 for each portfolio.

3. From Table 1, t-statistic has not been rejected for all portfolios.



4 Cross-sectional Test

1.  Calculate mean excess portfolio returns, p  for each of the 10 portfolios.

2.  Regress p  against βˆp  obtained in the previous time-series test:



(5)




p = λ0 + λ 1 βˆp + ξp .


(6)



Table 2: Cross-sectional test

Regression 1 denotes OLS with normal standard error while Regression 2 with bias-corrected

standard error.  (.) stands for the standard error of estimate.  * indicates that the estimate is

significant at 10% level.

0

Regression 1 0.0013 (0.0017)

Regression 2

0.0013 (0.0019)

1

-0.0009 (0.0013)

-0.0009 (0.0018)

m H0 : γ0 H0 : γ1

= 0, F-test [p-value]

= m, F-test [p-value]

0.65 [0.4433] 1.32 [0.2846]

0.0068

0.49 [0.5021] 1.29 [0.2889]


3.  Then test


H0  : λ0 = 0                                                               (7)

H0  : λ 1 = m                                                                                     (8)


4. From Table 2, none of above hypotheses have been rejected. 0  is -2.4% which is actually much deviated from 0%. 1  is 3.3% which is also much deviated from m, 0.7%.  Why have been they rejected in spite of large deviations from the targets?



5 STATA Program Guide

● Stata batch file ‘lab2.do ’ contains all necessary commands to perform Black-Jensen-Scholes test.

● Key Stata commands:  MATA function, forvalues, collapse.  Please type help ‘command’ at the command window of Stata to find detailed description.

✹ Clear all in memory and tell STATA to pause for more messages:

clear all

set more off

✹ MATA function starts with mata: and ends with end. void defines a function name which requires input. real scalar (colvec, rowvec, matrix) defines the type of the variable which will be used in the MATA function: real scalar – scalar, real colvec – column vector, real rowvec – row vector and real matrix – matrix. Ideal location for the MATA function will be after clear and set

commands or at the end of the STATA code.

mata:

viod function_name(string scalar variable_name) {


Figure 1: Average monthly excess return versus systemic risk


real scalar

real colvec

real rowvec

real matrix

...

...

...

}

end

✹ Create log file: If the log file already exists, then it will be replaced with the update. Type help log in the STATA command window for the detail information:

log using “log_file_name.smcl”, replace

✹ Load dataset and declare a monthly panel data. The panel data declaration makes the operation of variable easier.  Type help use and help tsset in the STATA command window for the detail information:

use “ukstock.dta”, clear

tsset nid tid, monthly

✹ Generate the logarithm of stock prices using  STATA command generate and a natural log function ln. We can also use ge, the abbreviation of generate :


generate lsp = ln(sp)

generate lftse = ln(ftse)

✹ Generate the first-difference of the logarithms of stock prices using a difference operator d. generate ri = d.lsp

generate rm = d.lftse

✹ Generate a monthly risk-free rate by dividing annualized percentage 3-month treasury bill rate by 12 × 100.

generate rf = tb3m/(12*100)

✹ Delete two variables using STATA command drop :

drop lsp lftse

✹ Generate excess returns:

generate ui = ri-rf

generate um = rm-rf

✹ Generate empty variables using .:

generate beta = .

generate pid = .