股票收益率与现金分红行为之间的关系,及半强制分红政策评价

​ 基于中国上市公司分红意愿不强以及分红水平较低的现实背景, 中国证监会从 2001 年起将上市公司再融资资格与股利分配水平相挂钩, 不满足股利分配要求的上市公司将不能进行再融资 。我们将该政策理解为半强制分红。

​ 那么,半强制分红政策对上市公司会产生什么影响呢?本文将会探究半强制分红政策与上市公司的股票收益率之间的关系,从半强制分红政策对股票收益率的影响的角度出发,对半强制分红政策进行评价。

1.准备探究如下两个假设是否正确:

假设一:如果该报告期内股票收益率高,则公司在该报告期会倾向于采取现金分红行为;

假设二:如果上一报告期公司采取了现金分红,那么当前报告期内公司股票收益率较高;

一:首先,对假设一进行分析。

假设一个上市公司有分红的报告期内股票的收益率与无分红的报告期内股票的收益率有显著区别,进行研究。每6个月报告一次,报告期内的收益率即为半年内的收益率。

假设报告期内收益率的取值在分红与否的报告期中都服从正态分布且各个观测数据相互独立;

那么对零假设“分红与否的报告期内的收益率的均值相等” 的检验统计量就可以采用t统计量进行检验。

首先对原始数据进行处理,把各公司分红与否的报告期筛选出来,并合并各公司的报告期数据;

处理公司是否有现金分红的数据集
proc import  out=work.fhyfDatafile='D:\mySASDATA\期末大作业\分红数据 修改\分红.xlsx'DbmS=xlsx replace;getnames=yes;
run;
%macro fhyfcl;/*进行分红数据的处理,有分红的为1,无分红的为0*/
data fhyf1;
set fhyf;
%do i=10 %to 20;
if c&i.='--' or  . then c&i.=0;
else c&i.=1;
if d&i.='--' or . then d&i.=0;
else d&i.=1;
%end;
%mend fhyfcl;
%fhyfcl;
run;
proc sort data=fhyf1;
by var1;
run;
/*收益率中有些股票的数据没有,把这些股票的分红情况删去*/
data fhyf1;
modify fhyf1;
if _n_<=2408 then remove;
run;
对各年度各股票的数据计算收益率并进行汇总
data WORK.sj2010_1;                                                                                    %let _EFIERR_ = 0; /* set the ERROR detection macro variable */                                                                    infile 'D:\mySASDATA\期末大作业\分红数据 修改\2010.1.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;                      informat VAR1 $9. ;                                                                                                           informat VAR2 $8. ;                                                                                                              informat VAR3 yymmdd10. ;                                                                                                       informat VAR4 comma12.0 ;                                                                                                      format VAR1 $9. ;                                                                                                             format VAR2 $8. ;                                                                                                               format VAR3 yymmdd10. ;                                                                                                       format VAR4 best12. ;                                                                                                         input   VAR1 $  VAR2 $    VAR3      VAR4 ;                                                                                                                                                                                                                                                                                                  if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */      run;
%macro sy(x);
data sj20&x.;
modify  sj20&x.;
if var4=.  then remove;
data sj20&x.;
set sj20&x.;
rename var4=close;
year=year(var3);
month=month(var3);
proc sort data=sj20&x.;
by var1 year month;
data sj20&x.;
set sj20&x.;
by var1 year month;
if last.var1=1 or first.var1=1;
data sj20&x.;
set sj20&x.;
by var1;
lag_close=lag(close);
a=first.var1;
if first.var1 then lag_close='.';
r_pct=(close-lag_close)/lag_close;
data  sj20&x.;
modify  sj20&x.;
if a=1  then remove;
data sj20&x.;
set sj20&x.;
keep var1 var2 close year month lag_close r_pct;
%mend sy;
%sy(10_1);
run;
proc import out=WORK.sj2010_7                                                                               Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2010.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(10_7);
run;
proc import out=WORK.sj2011_1                                                                               Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2011.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(11_1);
run;
data WORK.sj2011_7;                                                                                    %let _EFIERR_ = 0; /* set the ERROR detection macro variable */                                                                    infile 'D:\mySASDATA\期末大作业\分红数据 修改\2011.7.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;                      informat VAR1 $9. ;                                                                                                           informat VAR2 $8. ;                                                                                                              informat VAR3 yymmdd10. ;                                                                                                       informat VAR4 comma12.0 ;                                                                                                      format VAR1 $9. ;                                                                                                             format VAR2 $8. ;                                                                                                               format VAR3 yymmdd10. ;                                                                                                       format VAR4 best12. ;                                                                                                         input   VAR1 $  VAR2 $    VAR3      VAR4 ;                                                                                                                                                                                                                                                                                                  if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */      run;
%sy(11_7);
run;
proc import out=WORK.sj2012_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2012.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(12_1);
run;
proc import out=WORK.sj2012_7                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2012.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(12_7);
run;
proc import out=WORK.sj2013_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2013.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(13_1);
run;
proc import out=WORK.sj2013_7                                                                          Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2013.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(13_7);
run;
proc import out=WORK.sj2014_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2014.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(14_1);
run;
proc import out=WORK.sj2014_7                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2014.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(14_7);
run;
proc import out=WORK.sj2015_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2015.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(15_1);
run;
proc import out=WORK.sj2015_7                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2015.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(15_7);
run;
proc import out=WORK.sj2016_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2016.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(16_1);
run;
proc import out=WORK.sj2016_7                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2016.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(16_7);
run;
proc import out=WORK.sj2017_1                                                                           Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2017.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(17_1);
run;
proc import out=WORK.sj2017_7                                                                          Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2017.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(17_7);
run;
proc import out=WORK.sj2018_1                                                                          Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2018.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(18_1);
run;
proc import out=WORK.sj2018_7                                                                        Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2018.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(18_7);
run;
proc import out=WORK.sj2019_7                                                                        Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2019.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(19_7);
run;
data WORK.sj2019_1;                                                                                    %let _EFIERR_ = 0; /* set the ERROR detection macro variable */                                                                    infile 'D:\mySASDATA\期末大作业\分红数据 修改\2019.1.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;                      informat VAR1 $9. ;                                                                                                           informat VAR2 $8. ;                                                                                                              informat VAR3 yymmdd10. ;                                                                                                       informat VAR4 comma12.0 ;                                                                                                      format VAR1 $9. ;                                                                                                             format VAR2 $8. ;                                                                                                               format VAR3 yymmdd10. ;                                                                                                       format VAR4 best12. ;                                                                                                         input   VAR1 $  VAR2 $    VAR3      VAR4 ;                                                                                                                                                                                                                                                                                                  if _ERROR_ then call symputx('_EFIERR_',1);  /* set ERROR detection macro variable */      run;
%sy(19_1);
run;
proc import out=WORK.sj2020_1                                                                      Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2020.1.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(20_1);
run;
proc import out=WORK.sj2020_7                                                                      Datafile='D:\mySASDATA\期末大作业\分红数据 修改\2020.7.xlsx'                    DbmS=xlsx replace;getnames=yes;
run;
%sy(20_7);
run;
data hz;
set sj2010_1 sj2010_7 sj2011_1 sj2011_7 sj2012_1 sj2012_7 sj2013_1 sj2013_7
sj2014_1 sj2014_7 sj2015_1 sj2015_7 sj2016_1 sj2016_7 sj2017_1 sj2017_7 sj2018_1 sj2018_7 sj2019_1 sj2019_7 sj2020_1 sj2020_7;
run;
proc sort data=hz;
by var1 year month;
run;

分红数据与收益率数据的拼接

%macro sjzl;
%do i=10 %to 20;
data a&i.; set fhyf1; year=2000+&i.;month=6; keep var1 var2 c&i.  year month ;rename c&i.= fhyf;run;
data b&i.; set fhyf1; year=2000+&i.;month=12; keep var1 var2 d&i.  year month ;rename d&i.= fhyf;run;
%end;
%mend sjzl;
%sjzl;
run;
data fhyfsj;
set a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20;
run;
proc sort data=fhyfsj;
by var1 year month;
run;
data fhyfsj;
set fhyfsj;
label fhyf="fhyf";
run;
data hzsj;
merge hz fhyfsj;
by var1 year month ;
run;
data hzsj;
modify hzsj;
if close=. or fhyf=. then remove;
run;
proc contents data=hzsj;
run;
判断有无现金分红两种情况下的股票的收益率是否满足正态分布

1.对不进行现金分红的股票进行验证

data hzsj0;
set hzsj;
run;
data hzsj0;
modify hzsj0;
if fhyf=1 then remove;
run;
proc means data=hzsj0;
var r_pct;
run;
/*得到其均值为0.0642490 标准差为0.4412867 最小值为-0.8563339 最大值为12.0952381 */
proc sort data=hzsj0;
by r_pct;
run;
proc contents data=hzsj0;
run;
/*得到该数据集有16067个观测*/
data hzsj0a;
set hzsj0;
p1=_n_/16067;
p2=probnorm((r_pct-0.0642490)/0.4412867 );/*计算每个观测所对应的正态分布概率*/
run;
proc gplot data=hzsj0a;
plot p1*r_pct p2*r_pct/overlay vaxis=axis1 haxis=axis2 vref=1;
symbol11 v=. h=1 I=join L=1 font=swissb c=red h=1;
symbol12 v=none I=join L=1 c=blue;
axis1 label=('prob') order=(0 to 1 by 0.1);
axis2 label=('r_pct') order=(-0.9 to 12.1 by 1);
run;
quit;

由上图可以得到不进行现金分红的股票收益率大体满足正态分布

2.对进行现金分红的股票进行验证

data hzsj1;
set hzsj;
run;
data hzsj1;
modify hzsj1;
if fhyf=0 then remove;
run;
proc means data=hzsj1;
var r_pct;
run;
/*得到其均值为0.0825653标准差为0.4732710 最小值为-0.6722616 最大值为16.0056497 */
proc sort data=hzsj1;
by r_pct;
run;
proc contents data=hzsj1;
run;
/*得到该数据集有9130个观测*/
data hzsj1a;
set hzsj1;
p1=_n_/9130;
p2=probnorm((r_pct-0.0825653)/0.4732710 );/*计算每个观测所对应的正态分布概率*/
run;
proc gplot data=hzsj1a;
plot p1*r_pct p2*r_pct/overlay vaxis=axis1 haxis=axis2 vref=1;
symbol11 v=. h=1 I=join L=1 font=swissb c=red h=1;
symbol12 v=none I=join L=1 c=blue;
axis1 label=('prob') order=(0 to 1 by 0.1);
axis2 label=('r_pct') order=(-0.7 to 16.1 by 1);
run;
quit;

由上图可以得到进行现金分红的股票收益率大体满足正态分布

进行T检验
data hzsjjh;
set hzsj;
keep r_pct fhyf;
run;
proc ttest cochran data=hzsjjh;
class fhyf;
run;

对是否现金分红的检验结果

结论:从上图中可以知道,在当前报告期内有现金分红的股票收益率的均值在0.05的显著性水平下与无现金分红的股票收益率显著不相等,且明显大于无现金分红的股票收益率。在一定程度上,我们可以认为收益率高的股票更倾向于现金分红。也可以发现,收益率高的股票标准差较大,说明收益率高的股票波动性较大。

二:然后,对假设二进行分析。

对数据集hzsj 进行处理,区别出上一报告期有无分红,然后进行对两种类别的股票当期收益率的均值是否相等进行T检验;

data hzcl;
set hzsj;
by var1;
lag_fhyf=lag(fhyf);
b=first.var1;
if first.var1  then lag_fhyf='.';
run;
data hzcl;
set hzcl;
if lag_fhyf=0 then a=-2;
if lag_fhyf=1 then a=2;
run;
data hzcl;
modify hzcl;
if lag_fhyf=. then remove;
run;
data hzcljh;
set hzcl;
keep r_pct  a;
run;
proc ttest cochran data=hzcljh;
class a;
run;

根据以上结果,可以发现在0.05的显著性水平下,不能拒绝上一报告期有现金分红的股票的收益率与上一报告期无现金分红的股票的收益率均值相等的假设。所以,上一报告期有现金分红的股票的收益率不显著大于上一报告期无现金分红的股票的收益率。

结论:上一报告期是否分红对当期的收益率影响不大;

进一步分析连续两个报告期(上一报告期与当前报告期)无现金分红对股票收益率的影响;

对数据集hzcl进一步进行处理;

data hzcl1;
set hzcl;
if lag_fhyf=0 and fhyf=0 then a=-2;
else  a=2;
run;
data hzcljh1;
set hzcl1;
keep r_pct  a;
run;
proc ttest cochran data=hzcljh1;
class a;
run;

结论:连续两个报告期(上一报告期与当前报告期)无现金分红对股票收益率均值的影响不显著;

进一步分析连续两个报告期(上一报告期与当前报告期)有现金分红的股票收益率与连续两个报告期(上一报告期与当前报告期)无现金分红的股票收益率的区别

对数据集hzcl进一步进行处理;

data hzcl2;
set hzcl;
if fhyf=1 and lag_fhyf=1 then a=2;
if lag_fhyf=0 then a=-2;
if  fhyf=1 and lag_fhyf=0 then a=0;
run;
data hzcl2;
modify hzcl2;
if a=0  then remove;
run;
data hzcljh2;
set hzcl2;
keep r_pct  a;
run;
proc ttest cochran data=hzcljh2;
class a;
run;

结论:连续两个报告期(上一报告期与当前报告期)有现金分红的股票收益率与连续两个报告期(上一报告期与当前报告期)无现金分红的股票收益率之间的差异在显著性水平为0.05的条件下不显著;

根据以上分析,可以得到如果该报告期内股票收益率高,则公司在该报告期会倾向于采取现金分红行为;但是公司所采取的现金分红行为,对下一报告期的股票收益率的影响十分有限,并不显著。

2.对半强制分红政策的评价:

​ 半强制分红政策也许能使得公司的经营更加规范,便于监管者管理,在一定程度上保护投资者利益。半强制分红政策对于引导和规范上市公司分红行为以及保护投资者利益具有积极的意义, 但其局限性亦不容忽视。股市本就是风险由投资者自担,企业只要做到合法经营就行了。并且经过以上分析,半强制政策的实施对公司股票的收益率并无显著影响。这可能是由于半强制分红对企业的现金流管理,再融资等造成了困难。不同的企业的情况本就存在着很大差异,该项政策也没有考虑到企业的自身情况。

​ 但从另一个角度来看,股票收益率高的企业倾向于现金分红,这也许是企业的自身战略,也可能是半强制分红所起的作用,半强制分红对这些企业还是有较好的规范作用的。

​ 总之,仅通过目前的半强制分红政策来规范公司的行为是不太合理的,该政策有待仅一步细分,根据不同类型的公司作出相应的规定,可能会达到比较好的效果。

股票收益率与现金分红行为之间的关系,及半强制分红政策评价相关推荐

  1. Day-16 面向对象03 类与类之间的关系

    一.类与类之间的依赖关系 我用着你,但是你不属于我,这种关系是最弱的,比如,公司和雇员之间,对于正式员工,肯定要签订劳动合同,还得小心伺候着,但是如果是兼职,那无所谓,需要了你就来,不需要你就可以拜拜 ...

  2. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)

    转载自:https://blog.csdn.net/zhangxinrun/article/details/7332049 简介 LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间 ...

  3. 嵌入式开发之信号采集同步---VSYNC和HSYNC的作用以及它们两者之间的关系

    VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC的作用以及它们两者之间的关系 VSYNC和HSYNC是什么 VSYNC: vertical synchronization,指 ...

  4. 通过构建城市来解释HTML,CSS和JavaScript之间的关系

    by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) 通过构建城市来解释HTML,CSS和JavaScript之间的关系 (The relationship betw ...

  5. Python中怎样改变集合之间的关系?

    Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...

  6. 当支持向量机遇上神经网络:这项研究揭示了SVM、GAN、Wasserstein距离之间的关系...

    选自arXiv 作者:Alexia Jolicoeur-Martineau 编辑:小舟.蛋酱 转载自公众号:机器之心 SVM 是机器学习领域的经典算法之一.如果将 SVM 推广到神经网络,会发生什么呢 ...

  7. https协议必须使用443端口吗_http、https、http2、websocket之间的关系

    http.https.http2.websocket之间的关系 http:目前绝大多数是http1.1版本,最原始的web协议,默认80端口,基于TCP协议. https:加密的http协议,默认44 ...

  8. android 如何获得activity的view对象,Android的Activity 、 Window 、 View之间的关系

    什么是Activity .View . Window? Activity:是Android 四大组件之一, 是存放View对象的容器,也是我们界面的载体,可以用来展示一个界面.它有一个SetConte ...

  9. 作为项目经理,如何处理好与不同类型客户之间的关系?

    作为项目经理,如何处理好与客户之间的关系非常重要.但是究竟如何处理客户关系呢?客户的人员都有哪些类型?不同类型的客户的应对是否都一样呢?下面我们来看看在日常工作中经常遇到的客户类型,应该如何处理跟他的 ...

最新文章

  1. 解决mysql操作1045错误,1153错误和1130错误
  2. Chrome 开发者工具无法显示服务器正常返回的 HTTP 请求 - Failed to load response data
  3. 快速入门人工智能,这波福利不能错过!
  4. Tomcat 6.0 简介
  5. 生活在信息世界,人人都该懂得大数据概念
  6. Linux系统的各种安装方法与修复技巧
  7. (02)Verilog HDL模块
  8. python程序弹出输入框_尝试使Kivy按钮弹出一个文本框
  9. 5年数据总监主动辞职:那些没用可视化报表的人,后来都怎么样了
  10. 转载 - LINUX下查看CPU使用率的命令
  11. python统计频数_python统计单词出现次数
  12. 将Excel中的信息生成奖状
  13. 中科银谷:企查查天眼查的企业工商数据是从哪里来的?
  14. Q2海外收入首次过半 欢聚借Bigo能否再造一个“虎牙”?
  15. 【目标检测】YOLOv5-PyQT可视化例程开发
  16. m基于PSO粒子群优化的柔性制造系统AGV调度模型matlab仿真
  17. 奇妙的AE特效插件之红巨人粒子特效Trapcode Suite
  18. OBPS开发平台——导入功能vb代码解析
  19. JAVA在本地创建一个文件 向文件里面写入内容
  20. ClickHouse在工业互联网场景的OLAP平台建设实践

热门文章

  1. 玩转Redis-HyperLogLog统计微博日活月活
  2. Several anatomical structure pics 一些大脑解剖结构图
  3. The server time zone value ‘� й ��� ׼ʱ ��‘ is unrecognized or represents more than one time zone.
  4. echarts3d饼图
  5. 2022android自定义文本路径选择器java教程
  6. 物联网技术练习题(二)——多选题与简答题
  7. [VC] 冒号(:)与C/C++
  8. 如何给SCI收录的文章分区?
  9. matplotlib 绘制三角函数图像
  10. 【立创开源】RY3730-带充电的恒流驱动LED照明灯