[Stata]单因素资本资产定价模型CAPM在Stata中的实现 |
- // 单因素资本资产定价模型在stata中的实现
- // 数据来自25个资产池账面市值、无风险利率以及SP&500指数,数据来自Ken French主页,详见附件
- // http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html
- *version 13.1
- clear all
- // 设置日志文件
- capture log close
- qui log using capm,replace
- // 添加数据标签
- use fama_french.dta, clear
- label variable rm "Market Return"
- label variable rf "Risk Free Rate"
- // 时间序列设定
- tsset dateid01
- // 描绘市场预期收益率和无风险利率
- twoway (tsline rm) (tsline rf), name(factors0, replace) ///
- xlabel(192607(000800)201312,angle(forty_five)) xtitle("")
- graph export "../factors0.pdf", as(pdf) replace
- //将图片保存为pdf格式
- // plot return on market and rf on same graph using different y-axes
- twoway (tsline rm, yaxis(1)) (tsline rf, yaxis(2)), name(factors, replace) ///
- xlabel(192607(000800)201312,angle(forty_five)) xtitle("")
- graph export "../factors.pdf", as(pdf) replace
-
- drop if _n>1021
- // 产生超额收益
- local N = 25
- forvalues i = 1/`N' {
- qui gen z`i' = r`i' - rf
- }
- //
- drop r1-r9
- // 对第一个基础资产池回归
- reg z1 rm_rf
- // 如果alpha=0,表示市面价格(book-market-value)准确反映其内在价值,未被高估也未被低估。
- //如果beta=1,表示该组合收益风险与市场波动状况一致
- test _cons
- test rm_rf=1
- test (_cons=0) (rm_rf=1)
- // 另外4种检验方法
- local N=25
- forvalues i = 1/`N' {
- qui regress z`i' rm_rf
- }
- //使用mvreg OLS
- mvreg z* = rm_rf
- test _cons
- //使用似不相关回归
- sureg z* = rm_rf
- test _cons
- // 使用statby命令,结果保存在simplecapm.dta中
- reshape long z, i(dateid01) j(portfolio)
- statsby_b _se, by(portfolio) saving(simplecapm, replace): reg z rm_rf
- qui log close
复制代码
|
|