想通过滚动回归计算每只个股的贝塔值,以一只个股为例,设定滚动窗口为10,用到的数据如下:
stkcd | month1 | rmrf | y | t |
1 | 1998m01 | 1.7568 | 1.874535 | 1 |
1 | 1998m02 | -2.4577 | -2.26762 | 2 |
1 | 1998m03 | 2.1369 | -5.25981 | 3 |
1 | 1998m04 | 8.6675 | -3.53161 | 4 |
1 | 1998m05 | 5.2511 | -4.02716 | 5 |
1 | 1998m06 | -6.2535 | -14.9386 | 6 |
1 | 1998m07 | -1.5742 | 0.585253 | 7 |
1 | 1998m08 | -12.8888 | -6.7215 | 8 |
1 | 1998m09 | 7.7968 | -2.52494 | 9 |
1 | 1998m10 | -1.3172 | -5.81272 | 10 |
1 | 1998m11 | 1.8573 | 6.349095 | 11 |
1 | 1998m12 | -8.3349 | -5.84057 | 12 |
1 | 1999m01 | -1.2407 | -3.63704 | 13 |
1 | 1999m02 | -4.5619 | -6.31405 | 14 |
1 | 1999m03 | 6.4726 | 0.503331 | 15 |
tsset stkcd t
rolling _b ,window(10) keep(month1) saving(E:\beta_test.dta): reg y rmrf
得到的回归结果如下:
stkcd | start | end | date | _b_rmrf | _b_cons |
1 | 1 | 10 | 1967m12 | 0.304613 | -4.29646 |
1 | 2 | 11 | 1968m1 | 0.326015 | -3.85467 |
1 | 3 | 12 | 1968m2 | 0.323787 | -4.0214 |
1 | 4 | 13 | 1968m3 | 0.335881 | -3.74004 |
1 | 5 | 14 | 1968m4 | 0.427045 | -3.38006 |
1 | 6 | 15 | 1968m5 | 0.509976 | -2.81295 |
想请教两个问题:
1)我的命令写得对吗?还是应该tsset的时候用month1而不是t写成如下这种形式呢?
tsset stkcd month1
rolling _b ,window(10) keep(month1) saving(E:\beta_test.dta): reg y rmrf
2)为什么得到的回归结果date显示有问题,比如第一个date为1967m12,但是按理来说此date应该对应样本10的日期也就是1998m10才对啊?