一、问题
对中国上市公司高送转行为及影响因素进行分析,构建上市公司高送转预测模型,并根据预测结果设计量化投资策略及进行分析。数据获取可通过tushare金融大数据社区API获得。
二、基本思路
1.高送转行为:
高送转一般被定义为股利高派现。上市公司进行高送转的目的多种多样,有的是为了进行股本扩张,保持公司良好的形象;另外有些没有基本稳固业绩支撑的上市公司利用高送转的热点新闻炒高股价,导致在高送转分红公告预案日后股价连续下跌,将众多中小投资者套牢。
送转股即送红股以及公积金转增股本的简称,这两种股利分配方式常常同时运 用,且两者之间存在着很大的相似性,因此人们往往将这两个做法合称为“送转”。送股是指上市公司根据本年度的利润情况,依据公司目前的股本情况按一定比例发放股票红利给股东的行为。
送股在会计科目上的处理即在借方科目上记为未分配利 润,而在贷方记为股本;由此可以看出公司的资产方、负债方以及所有者权益并未发 生变化,仅仅是在所有者权益的内部发生了两个科目间的调整,实现了会计上的利润 到股本的转化。
转股则是公积金转增股本的简称,其中公积金主要指资本公积。上市公司根据所发布公告的内容,将过去企业所形成的资本公积或盈余公积按照一定的比例无偿赠送 给股东,无形中给股东分发的股票股利,达到了增加股本的作用。不过从本质上来说,转股如同送股一样,并没有将实实在在的利润分配给股东,而是会计科目上的调整。
送股和转股的最终目的是扩大了公司的股本,不过两者之间还是有一点点区别。送股来源于公司未分配的利润,如果该年度亏损或者不存在未分配利润,则送股就不 可能实现;转股来源于公司的资本公积,不受到本年度利润的影响。在税收方面两者 也存在着区别,送股需要上市公司缴纳税,而转股则不需要缴税。
在我国,送股和转股具有高度相似的分配效应,所以习惯将二者视为同种股利分
配方式。本文按照约定俗成的习惯,加上我国资本市场上送红股比转股的比例要小一 些,从送股和转股的共同点及共性问题着手,合二为一得进行研究和探讨。 “高送转”顾名思义高比例送股或者转增股,比如每 10 股转股 7 股,每 10 股送 2 股加转增 8 股等等。目前专家学者对“高送转”具体比例还没有形成统一的意见, 但在过去年份的大多数文献中,都将每 10 股送转股 5 股及以上定义为股利“高送转” (田建中,2007)。鉴于创业板推出后, “高送转”的公司数量以及送转比例有了很大 程度的提高,本文为保持与市场情况的一致性,将 10 送(转增)10 股及以上的情况 定义为高送转。
2.影响因素:
基准因子: 每股资本公积(capital_rese_ps)和每股未分配利润(undist_profit_ps)。在预测“高送转”时,两者并没有实质 上的区别,本文将两个指标的值相加,得到一个新的指标方便描述——潜在送转能力 因子。利用该因子对所有股票降序排列,筛选出指标值最高的一部分股票。
成长性因子:净资产收益率(roe),流通股本(float_share),市值(total_mv)
3.总结:
在“高送转”的预测中,本文将公司是否高送转这个虚拟变量(有高送转设置成 1,没有高送转定义为 0)设置成被解释变量(y),因此采用 logit 模型能有效的拟合该虚拟变量与各个预测因子之间的关系。解释变量的构成包括每股资本公积(capital_rese_ps),每股未分配利润(undist_profit_ps),净资产收益率(roe),流通股本(float_share),市值(total_mv)。
4.注意:
被解释变量由以下公式计算可得:
每股公积金>2元
每股未分配利润>2元
净资产收益率在3%以上
流通股本<=3亿
市值<=100亿
三、程序(Python)
1.数据获取

#基本面数据
import tushare as ts
import pandas as pd
import time
#基本面数据
ts.set_token('929adb18d5044d93deaba1638f3f1cf8e88de52ae6983bf5076753a1')
pro = ts.pro_api()
#股票基本信息获取
stkcode = pro.stock_basic(exchange='',list_status='L',fields='ts_code,symbol,name,area,industry')
data=pd.DataFrame()
for ts_code in stkcode.iloc[:,0]:try:#每股公积金,每股未分配利润,净资产收益率a=pro.fina_indicator(ts_code=ts_code ,fields='ts_code,capital_rese_ps,undist_profit_ps,roe')a=a.drop_duplicates(subset=['ts_code'])#流通股本、总市值b=pro.daily_basic(ts_code=ts_code,fields='ts_code,float_share,total_mv')b=b.drop_duplicates(subset=['ts_code'])c=pd.merge(a,b,how='inner',on='ts_code')data=data.append(c,ignore_index=True)except:time.sleep(4)
data.to_excel('enddata.xlsx')

2.逻辑回归

import pandas as pd
data=pd.read_excel('enddata.xlsx')
#设置参数和过滤值
#每股公积金>2元
capital_rese_ps = data.capital_rese_ps >=2
#每股未分配利润>2元
undist_profit_ps=data.undist_profit_ps>2
#净资产收益率在3%以上
roe=data.roe>=3
#流通股本<=3亿
float_share = data.float_share <= 300000000
#市值<=100亿
total_mv = data.total_mv <= 100000000
#取并集结果
allcrit = capital_rese_ps & undist_profit_ps & roe & float_share & total_mv
#allcrit=list(allcrit)
#selected = data[allcrit]
import numpy as np
y=np.zeros(len(data))
for i in range(len(y)):if allcrit[i]==True:y[i]=1else:y[i]=0
y=pd.DataFrame(y)
data=pd.concat([data,y],axis=1)
data=data.dropna()
#逻辑回归
x=data.iloc[:3600,1:-1]
y=data.iloc[:3600,-1]
x1=data.iloc[3600:,1:-1]
y1=data.iloc[3600:,-1]
from sklearn.linear_model import LogisticRegression as LR
lr=LR()#创建逻辑回归模型类
lr.fit(x,y)#训练数据
R=lr.score(x,y)#模型准确率(针对训练数据)
r=lr.predict(x1)#预测结果
Z=r-y1
Rs=len(Z[Z==0])/len(Z)
print('预测结果为:',r)
print('预测准确率为:',Rs)

四、结果(截图)

模型表现均优于基准沪深300指数,模型的准确率益较髙,可以接受的范围内,这表明借助集成学习构建的“高送转”交易模型具备投资价值。

基于Python构建上市公司高送转预测模型相关推荐

  1. 泰迪杯挑战赛优秀论文-A题-基于数据挖掘的上市公司高送转预测

    目 录 第 1 章 绪论 1.1问题背景 1.2问题重述 1.3本文主要工作与创新点 1.4模型假设 1.5本文研究意义 第 2 章 相关理论 2.1高送转相关知识介绍 2.1.1高送转的实质 2.1 ...

  2. 大数据分析练习-第八届泰迪杯A题-基于数据挖掘的上市公司高送转预测

    报告书-pdf 本实验在Anaconda环境下进行编程,使用jupyter. 具体有以下注意点: 文件结构 : 主文件目录 - |-- Main.ipynb 主文件 ​ |-- ReadMe.md ​ ...

  3. 上市公司高送转预测在线实验闯关

    第1关:基于股票交易数据检测年度"高送转""行为,构造标识因变量Y 任务描述 本关任务:基于2018年日交易数据表,设计一个简单算法,用于检测上市公司在2017年度报告中 ...

  4. 基于python的搜索引擎论文_技术分享 - 基于python构建搜索引擎系列——(四)检索模型...

    构建好倒排索引之后,就可以开始检索了. 检索模型有很多,比如向量空间模型.概率模型.语言模型等.其中最有名的.检索效果最好的是基于概率的BM25模型. 给定一个查询Q和一篇文档d,d对Q的BM25得分 ...

  5. python考试系统的设计与实现开题报告_基于Python新闻定制推送系统设计与实现开题报告...

    2.国内外研究现状综述: 国外在新闻个性化推送跨平台开发领域方面起步较早,同时也有着相对完整的结构体系,在这种具有领先地位的研究以及企业级别应用中都是有所体现的.在2008年HTML_5草案的发布,是 ...

  6. 机器学习系列8 基于Python构建Web应用以使用机器学习模型

    课前测验 本文所用数据及源码免费下载 目录 一.内容介绍 二.应用构建 1.构建机器学习Web应用的思考 ①思考问题 ②几种构建机器学习模型 Web 应用的方法. 2.工具安装 3.数据预处理 ①数据 ...

  7. 基于Python的消息推送(钉钉、微信、QQ)

    文章目录 前言 一.钉钉机器人 1. 新建群聊 2. 添加机器人 3. 设置机器人 4. 程序编写 二.Server酱(微信) 1. 注册登录 2. 获取设置 3. 程序编写 二.Qmsg酱(QQ) ...

  8. python用户名和密码登录函数_基于Python构建用户ID和密码存储查询系统,python,建立,一个,用户名,UserID,Password,的...

    大家好,本篇博客目的是建立存储和查询用户名和密码的python系统,基础好的可跳过中间小干货,源码在末尾,喜欢的留下小赞哦! 系统主要功能 主要功能如下: 创建一个新用户及其密码 修改值定用户的密码 ...

  9. QQrobot -- 基于Python的智能推送助手

最新文章

  1. unity 继承了 获取_Unity游戏开发——设计模式概述
  2. 根证书和中间证书的区别
  3. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
  4. Java基础——组合关系
  5. Java最大的优势真的在于跨平台吗?
  6. python 正则表达式 re.findall()方法
  7. 关于迪杰斯特拉算法(最短路)的PHP实现
  8. 实用的java代码生成器,开箱即用(基于mybatisplus的AutoGenerator)
  9. 信号与系统实验:用Matlab表示常用连续时间信号
  10. 深度学习(六十七)metal forge深度学习库使用
  11. 接口与抽象类区别和接口jdk8新特性
  12. iOS成长之button
  13. c语言链表死循环,单项循环链表解决Joseph 问题,死循环了,求帮忙
  14. Echarts制作动态K线图和分时图
  15. git创建本地ssh密匙
  16. CUBA使用Spring查询接口
  17. mysql skewed_Hive分区字段含中文报错问题解决方案
  18. python装饰器带参数函数二阶导数公式_【计算机程序的构造和解释】使用函数构建抽象——5. 高阶函数...
  19. 蓝牙耳机啥牌子好?口碑好、音质好的蓝牙耳机推荐
  20. matplotlib: 绘制平面图/表格

热门文章

  1. 2021第十二届蓝桥杯Python组国赛/决赛 题解
  2. 《PostgreSQL开发指南》电子版PDF免费下载
  3. 使用XSell上传、下载文件到Linux服务器
  4. 道路裂缝伸缩缝灌缝选用沥青灌封胶的另外一个原因
  5. 使用高德地图获取省市区信息
  6. 任天堂Switch游戏发售时如何获得警报
  7. windows配置nginx反向代理
  8. 微信小程序之聊天室(多人聊天室)总结
  9. 俄罗斯方块TC版移植VC
  10. 中专生边旅游边办网站年赚30万