https://uqer.io/community/share/5784b3d1228e5b8a09932d9e
Fama-French三因子模型无疑是量化领域最经典的模型之一,该模型的提出是在论文《commom risk factors in returns on bonds and stocks>里,本帖本着学习的精神对其进行了学习,并使用论文中的方法在中国A股市场上进行了实证。\begin{align}E(R(t))=R_f(t)+bE(R_M(t)-R_f(t))+sE(SMB(t))+hE(HML(t))\end{align}
RM−Rf 表示的是市场因子, SMB 表示的是规模(市值)因子, HML 表示账面市值比因子
资本资产定价模型(CAPM)问世以后,许多学者对其进行了实证研究,如Black和Scholes(1972)及Fama(1973)的检验证明,对1969年以前的数据而言,资本资产定价模型是有效的,而对之后的数据,却缺乏说服力。在横截面数据里,股票的平均收益和市场 β 相关性很低,因而更多影响股票收益的因素亟待发掘。
Fama和French(1992)研究了市场 β , 市值(size), 账面市值比(book-to-market equity),财务杠杆(leverage) 和市盈率(E/P)对平均收益的影响。横截面回归后发现,在独立检验四者对平均收益的影响时,四者都表现出了很强的解释能力,而 β 很弱;在进行多变量回归时,市值和账面市值比这两个因子吸收了另两个因子的解释能力,成为了解释平均收益的决定性变量
1993年,Fama和French的论文《commom risk factors in returns on bonds and stocks〉正式标志着三因子模型的建立。在该论文里,他们不仅研究了影响股票收益的因子模型,还研究了对债券收益的因子模型;更重要的是,不同于以往的横截面回归,该论文使用了Black,Jensen和Scholes的时间序列回归方法,对影响股票收益的市场超额收益,规模和账面市值比三个因子进行了实证研究。
下面,本帖就论文里对股票三因子模型的研究思路,在优矿平台上对中证800成分股从2007.6到2016.5的数据进行了实证研究,以验证三因子模型的有效性。
横截面回归大家都非常熟悉,无论是单变量还是多变量回归,都是在研究解释变量对响应变量的解释能力。Black-Jensen-Scholes时间序列回归的方法是Black,Jensen和Scholes所提出来验证CAPM的。早期的验证方法是先使用一个单只股票的时间序列回归估计贝塔,再用横截面回归验证CAPM推出的假设。但是这样回归会有误差项存在相关性,贝塔非平稳等问题,时间序列回归则避免了这些问题。即根据前一期估计的贝塔值对股票排序再进行分组,分别估计各投资组合的阿尔法和贝塔,每五年重新估计贝塔,然后检验各个投资组合的阿尔法是否显著为0,从而验证CAPM\begin{align}E(R(t))=R_f(t) +\beta(E(R_M(t))-R_f(t))\end{align}
解释变量就是我们需要验证的三个因子,市场超额收益,规模和账面市值比。我们要按照论文里的思路对其进行处理。
把股票按每年5月末时的市值(size)大小进行排序,按照50%分位值把股票分为S(small)和B(big)两组;
再依据5月末时的账面市值比(我们取1/PB)大小对800只股票进行排序,分为L(low,30%),M(medium,40%),H(high,30%)三组;
再分别对S,B和L,M,H取交集,股票即被分为了SL,SM,SH,BL,BM,BH六组。
也就是说,分组每年5月末进行一次,800只股票每次被重新分为了SL,SM,SH,BL,BM,BH六组,前一年6月到第二年5月重新分组时的投资组合都是一样的
这里为什么要按市值分为两组,按账面市值比分为三组呢?是因为账面市值比有更强的作用,我们要把它分得更细。
(PS:论文里是6月末按照市值大小分组,账面市值比依据的是前一年末时的数据,个人以为5月末也没事)
下面我们要计算每个投资组合的月收益率,计算投资组合的月收益率时,要算市值加权的收益率,这是为了最小化方差(风险)
市值因子:\begin{align}SMB = 1/3(SL+SM+SH)-1/3(BL+BM+BH)\end{align}表示的是由于公司规模不同造成的风险溢价
账面市值比因子:\begin{align}HML = (SH+BH)/2-(SL+BL)/2\end{align}表示由于账面市值比不同造成的风险溢价
可以看出因子的值是一个市值加权月收益率序列,我们研究了九年的数据,所以因子的长度是9*12=108
下面我们先看一看我们得到的六个组合的市值加权月收益率的情况,直观上符合常理
市场因子:\begin{align}R_M-R_f\end{align}RM取的就是中证800指数的收益,Rf取的是银行间质押式回购利率_同业拆借中心R007
三个因子我们都得到了,再来看看三个因子的状况:
到这里,我们的三个因子就处理完了,三个解释变量都做成了数组,下面可以分析一下各个因子之间的相关系数
MF | SMB | HML | |
---|---|---|---|
MF | 1.000000 | 0.212499 | -0.031912 |
SMB | 0.212499 | 1.000000 | -0.424261 |
HML | -0.031912 | -0.424261 | 1.000000 |
首先我们将股票按之前的方法分为25个组合,即:
在每年5月末,按照市值大小将股票排序并分为5组,然后按照账面市值比大小把股票分为5组,交叉取交集,得到5*5=25个股票组合
也就是说,我们将作25个回归,每次回归时的解释变量都一样,响应变量不同
计算25个股票组合,每个组合的市值加权月收益率序列
我们看一下25个组合平均每年的公司数:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 12.888889 | 27.888889 | 35.777778 | 41.333333 | 41.888889 |
1 | 25.333333 | 34.666667 | 36.777778 | 34.555556 | 28.666667 |
2 | 39.555556 | 34.222222 | 34.444444 | 25.555556 | 25.555556 |
3 | 44.111111 | 36.666667 | 27.333333 | 28.000000 | 23.888889 |
big_size | 38.111111 | 26.222222 | 25.111111 | 30.222222 | 40.000000 |
还可以看一下25个组合平均每年的总市值大小,验证一下分组的正确性:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 6.007957e+10 | 1.175193e+11 | 1.455794e+11 | 1.798913e+11 | 1.646767e+11 |
1 | 1.745471e+11 | 2.368089e+11 | 2.355071e+11 | 2.167016e+11 | 1.717474e+11 |
2 | 3.920921e+11 | 3.309705e+11 | 3.278397e+11 | 2.391956e+11 | 2.118269e+11 |
3 | 7.007655e+11 | 5.851388e+11 | 4.300714e+11 | 4.208436e+11 | 4.202868e+11 |
big_size | 2.054059e+12 | 2.041996e+12 | 2.416426e+12 | 3.877098e+12 | 7.510095e+12 |
上面的股票组合从左到右,账面市值比越来越大;从上往下,市值越来越大,说明我们的分组是正确的
看一下25个组合超额收益的均值和方差:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.025433 | 0.022799 | 0.043428 | 0.022999 | 0.019819 |
1 | 0.019233 | 0.022419 | 0.023366 | 0.022356 | 0.016953 |
2 | 0.016595 | 0.015579 | 0.017392 | 0.017074 | 0.020958 |
3 | 0.019433 | 0.012199 | 0.014942 | 0.013659 | 0.009995 |
big_size | 0.006133 | 0.000801 | 0.006065 | 0.007580 | 0.005248 |
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.125990 | 0.111912 | 0.216930 | 0.111223 | 0.109084 |
1 | 0.110347 | 0.113726 | 0.110196 | 0.116036 | 0.111958 |
2 | 0.104115 | 0.105876 | 0.110242 | 0.112561 | 0.110588 |
3 | 0.106525 | 0.106846 | 0.107491 | 0.102590 | 0.110776 |
big_size | 0.097351 | 0.097236 | 0.100561 | 0.102553 | 0.092128 |
CAPM回归模型:\begin{align}R(t)-R_f(t) = a+b(R_M(t)-R_f(t))+e(t)\end{align}这就是经典的CAPM模型,我们可以检验一下它在中国A股市场的有效性:
先看一下这25个回归的判定系数R2,它度量了拟合程度的好坏。
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.594353 | 0.714150 | 0.350486 | 0.824708 | 0.825360 |
1 | 0.716048 | 0.731942 | 0.791529 | 0.828343 | 0.859161 |
2 | 0.718364 | 0.745072 | 0.884344 | 0.860049 | 0.804825 |
3 | 0.745227 | 0.870885 | 0.906794 | 0.895085 | 0.878805 |
big_size | 0.795297 | 0.894826 | 0.834521 | 0.783604 | 0.786575 |
25个回归的R2大多处于0.7~0.9之间,已经是比较好的结果了,这点可以和其它的回归模型对比。
下面看一下市场因子的系数 β :
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 1.014500 | 0.987796 | 1.341376 | 1.054965 | 1.035088 |
1 | 0.975273 | 1.016236 | 1.023992 | 1.103041 | 1.083893 |
2 | 0.921680 | 0.954528 | 1.082809 | 1.090298 | 1.036224 |
3 | 0.960486 | 1.041443 | 1.069108 | 1.013754 | 1.084644 |
big_size | 0.906779 | 0.960705 | 0.959496 | 0.948184 | 0.853405 |
我们可以看到 β 大多处于1左右。下面我们来检验其显著性,回归系数的显著性检验用的是t检验:原假设为t=0,若t统计量的值大于给定显著水平下的t分位值,则拒绝原假设,说明该系数显著大于0
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 12.462385 | 16.273421 | 7.562993 | 22.331745 | 22.382173 |
1 | 16.349394 | 17.012826 | 20.061476 | 22.616582 | 25.428921 |
2 | 16.443012 | 17.601218 | 28.469459 | 25.522643 | 20.906988 |
3 | 17.608419 | 26.738941 | 32.113328 | 30.072274 | 27.724048 |
big_size | 20.293403 | 30.030898 | 23.120656 | 19.591878 | 19.765164 |
我们可以看到所有回归里 β 的t统计量的值都大于临界值,我们应该拒绝原假设,即表明 β 系数显著
以上,说明资本资产定价模型是有效的,市场因子的影响是显著的
如上,我们检验了CAPM模型的有效性,现在我们不妨检验一下另外两个因子对股票超额收益的解释作用。\begin{align}R(t)-R_f(t) = a+sSMB(t)+hHML(t)+e(t)\end{align}SMB和HML分别代表规模(市值)因子和账面市值比因子。
同样,我们看一下25个回归的判定系数R2的情况:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.429206 | 0.393804 | 0.121499 | 0.298528 | 0.280941 |
1 | 0.373788 | 0.387774 | 0.291721 | 0.291967 | 0.232686 |
2 | 0.398290 | 0.319392 | 0.222978 | 0.207927 | 0.249022 |
3 | 0.242946 | 0.190158 | 0.152270 | 0.161753 | 0.129395 |
big_size | 0.116128 | 0.005802 | 0.004471 | 0.062431 | 0.124630 |
从R2可以看到,基本都在0.5以下,这个回归的结果比回归一差了很多,这个模型并不好,也就是说只用市值因子和账面市值比因子来解释股票超额收益是不合适的
这里的回归模型就是我们经典的三因子模型
\begin{align}R(t)-R_f(t) = a+b(R_M(t)-R_f(t))+sSMB(t)+hHML(t)+e(t)\end{align}
R(t)−Rf(t) :市场因子
SMB(t) :规模(市值)因子
HML(t) :账面市值比因子
我们先看一下回归的R2:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.850504 | 0.932359 | 0.401501 | 0.952128 | 0.942172 |
1 | 0.928505 | 0.947654 | 0.928649 | 0.949936 | 0.943393 |
2 | 0.960149 | 0.924252 | 0.962277 | 0.926240 | 0.903547 |
3 | 0.916107 | 0.945470 | 0.944791 | 0.933945 | 0.924949 |
big_size | 0.932492 | 0.929273 | 0.901979 | 0.933192 | 0.942885 |
我们可以看到R2基本上都在0.9以上,三因子模型的拟合程度非常好,说明三因子模型是比CAPM更有效的模型
如上三因子模型的有效性已经得到验证,确实能够解释股票收益来源,那么A股市场对这些因子有什么偏好呢?比如:长期来看,小盘股跑赢大盘股,还是大盘股能跑赢小盘股呢?
我们可以从第一个回归(CAPM)的截距项找到答案:
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 0.024177 | 0.021577 | 0.041768 | 0.021694 | 0.018538 |
1 | 0.018026 | 0.021162 | 0.022099 | 0.020991 | 0.015612 |
2 | 0.015455 | 0.014398 | 0.016052 | 0.015725 | 0.019676 |
3 | 0.018244 | 0.010911 | 0.013619 | 0.012405 | 0.008653 |
big_size | 0.005011 | -0.000388 | 0.004878 | 0.006406 | 0.004192 |
small_BE/ME | 1 | 2 | 3 | big_BE/ME | |
---|---|---|---|---|---|
small_size | 3.101816 | 3.712481 | 2.459500 | 4.795915 | 4.186454 |
1 | 3.156042 | 3.699929 | 4.521662 | 4.495019 | 3.825185 |
2 | 2.879519 | 2.772733 | 4.407769 | 3.844395 | 4.145978 |
3 | 3.493139 | 2.925629 | 4.272353 | 3.843262 | 2.309965 |
big_size | 1.171278 | -0.126530 | 1.227596 | 1.382485 | 1.013901 |
可以看到25个回归里只有最后5个回归的a值是显著为0的,其余a值我们可以认为是不显著为0的,也就是说超额收益没有被完全解释,这也是三因子模型存在的必要。
我们从市值的角度来分析一下,以上结果,从上到下组合的市值越来越大,a值越来越小,a代表的是超额收益,也就是说市值越小的股票越容易获得超额收益,这点和我们的认知相同
从左到右,组合的账面市值比越来越大,a值从趋势上是越来越大,但也有很多反转,也就是说账面市值比越高的组合越容易获得超额收益这个结论并不准确。
通过对三个模型的回归进行对比,我们可以看到,从R2来看,拟合结果最差的是第二个模型(只用市值因子和账面市值比),拟合结果最好的是第三个模型,也就是fama三因子模型。
综上,我们验证了Fama三因子模型在中国A股市场是有效的,也印证了市值小的股票更容易获得超额收益这一点。
本帖重在过程,学习交流。