ECON 5069 Empirical Asset Pricing
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)
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 = .
2022-02-23