R语言逻辑回归Logistic选股因素模型交易策略及沪深300指数实证

简介: R语言逻辑回归Logistic选股因素模型交易策略及沪深300指数实证

全文链接:http://tecdat.cn/?p=32071


随着中国的证券市场规模的不断壮大、市场创新不断深化、信息披露不断完善、市场监管不断强化,随着现代投资组合理论的发展和计算机技术的进步,投资者为了在股票交易中取得更多的收益,就需要有合理有效的投资策略,因素模型的基础上发展出众多量化研究模型点击文末“阅读原文”获取完整代码数据


对于这些模型的研究能够帮助投资者有效的跟踪市场的变化,为得出更好的投资策略而提供帮助。Logistic选股模型正是这些众多模型中的一个。


因素模型


因素模型是建立在证券收益率对各种因素或指数变动具有一定敏感性的假设基础之上的一种模型。证券的收益率具有相关性,这种相关性是通过对模型中的一个或多个因素的共同反应而体现出来。证券收益率中不能被因素模型所解释的部分被认为是各种证券的个性,因而与其他证券无关。因素模型也被称为指数模型(Index model)或夏普模型(Sharp model)。


研究思路


本文以多因素模型在股票交易中的应用为背景,帮助客户针对Logistic选股模型的理论基础以及模型原理方面分析Logistic选股模型的可行性与稳定性。为保证模型的可靠和稳定,使用过去五年的历史数据来检测模型。


Logistic模型在股票交易中的选股策略


结合以上多因素模型与Logistic回归分析的知识可以得到基于Logistic选股模型。这里采用沪深300指数作为基准,将沪深300中的个股作为研究对象,研究其收益率超过沪深300股指收益率的概率。

这里Logistic选股模型研究的窗口期选择为一个月,在当月的最后一个交易日以股票或指数投资组合的收盘价买入股票或指数资产组合,在次月的最后一个交易日以股票或指数投资组合的收盘价卖出股票或指数资产组合。

这样将即可以使用Logistic回归分析结合历史数据对组合中每支股票进行回归分析。利用回归分析结果预测每只股票下个月收益率大于指数投资组合收益率的概率,这时我们选取预测中收益率大于基准收益率概率排名前40支股票,等权重组合,在当月的最后一个交易日以收盘价买入,在次月的最后一个交易日以收盘价卖出。如此即为Logistic选股模型的交易策略。


实证结果分析


#读取数据
file=list.files(".",pattern=".Rdata")
 
for(i in file)load(i)
#计算对数收益率
data$return2=c(0,( log((data$CLOSE.y[-1])/data$CLOSE.y[-nrow(data)])))

合并因子数据和收益率数据

经过对模型的检验得到以下结果:


逻辑回归收益分布


逻辑回归收益的直方图 可以看到大部分收益分布在大于0的区域。


点击标题查阅往期内容


R语言金融市场量化交易:布林带、价差策略、RSI交易策略,回测COMP 226


01

02

03

04


图中显示了根据模型所选股票在当期的收益率分布。从图中可以看出大部分股票收益率分布在0%至-10%之间,将近半数的股票在其交易当期内具有小额负收益。

这个图横轴代表时间。纵轴代表使用逻辑回归模型结果在不同时间点的收益。


累计收益

 

组合累积和基准累积

这个图横轴代表时间。纵轴代表使用逻辑回归模型结果在不同时间点的收益率:

通过图中对利用Logistic选股模型选出的组合的收益率和基准收益率的对比可以看出看出通过Logistic选股模型选出的组合具有一个较平稳的收益率,而且在绝大数的时间内收益率超过了基准收益。由此可以看出Logistic选股模型具有一定的稳定性和有效性,在绝大多数的情况下可以选出收益率高于基准收益的组合。


组合和基准每月的收益率的对比图

逻辑回归模型结果


Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.86049  -0.32622  -0.05835  -0.00147   2.24675  
Coefficients:
                      Estimate Std. Error z value Pr(>|z|)
(Intercept)          7.199e+00  9.101e+00   0.791    0.429
SHARE_TOTALTRADABLE -9.482e-10  1.934e-09  -0.490    0.624
MKT_CAP             -4.653e-11  5.952e-11  -0.782    0.434
MV                  -1.687e+00  2.033e+00  -0.830    0.407
pe                  -9.811e-02  1.128e-01  -0.870    0.384
(Dispersion parameter for binomial family taken to be 1)
    Null deviance: 16.081  on 41  degrees of freedom
Residual deviance: 11.560  on 37  degrees of freedom
  (1 observation deleted due to missingness)
AIC: 21.56


总结


构建了Logistic选股模型,并利用历史数据经行回测,验证模型的有效性,并根据实验数据得到结果证明Logistic选股模型可以在大部分情况下为投资者选出一个收益率能够超过基准收益的投资组合。但是本文的研究也可能存在以下问题和漏洞:

  1. 本文选取了过去5年的历史数据,其中会有较多的数据缺失,数据缺失较多的股票不会计入模型,可能会造成结果的偏差。
  2. 对于部分股票具有数据缺失,在经行Logistic回归分析的时候会造成回归结果的不准确,从而影响最终结果。
  3. 本文中只是选取前3年的数据经行Logistic回归分析,在计算更近时期的收益时,并没有加入之后新的因子数据经行计算,可能造成分析的不准确。
  4. 本文只是解析了Logistic选股模型的原理并构建模型加以验证,其中没有对因子的选取进行验证,不能保证所有的因子都具有极大的相关性,其中也可能会有部分因子导致结果的偏差。
  5. 在实验中所用到的数据可能由于现实中信息披露的可靠性、稳定性、时效性等问题导致实验结果不是完全的可靠。
  6. 本文中忽略了如果使用Logistic选股模型经行交易对市场的影响。
  7. 本文采用的是以季度发布的数据,实验中不能对季度中因子变化导致的影响作出分析。


参考文献


[1]:黄志文. Logistic选股模型及其在沪深300中的实证[R].国信证券,2010.

[2]:黄志文.传统多因素模型及其在沪深300 中的实证[R].国信证券,2010.

[3]:滋维·博迪.投资学[M].第九版.机械工业出版社,2012;127-172.

相关文章
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
7月前
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
259 9
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
12月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
244 3
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。