1. 引言
在当今复杂多变的金融市场中,股票分析一直是投资者、分析师以及学者关注的焦点。随着大数据和机器学习技术的飞速发展,传统的股票分析方法正逐渐被更高效、更智能的模型所取代。其中,lasso回归作为一种强大的统计学习工具,正逐渐成为股票分析领域的一颗新星。
lasso回归,全称为least absolute shrinkage and selection operator (最小绝对收缩和选择算子),与传统的线性回归相比,模型中加入了惩罚项,是一种能够在拟合模型的同时自动进行特征选择的方法,通过调整lasso回归中的正则化参数,将那些对目标变量预测贡献不大的特征系数压缩到零,从而有效减少模型的复杂度,提高模型的泛化能力和预测精度[1]。
在股票分析领域,特征选择尤为重要。因为股票市场受多种因素影响,这些因素相互交织,共同作用于股票价格的变化。然而,并非所有因素都对股票价格具有显著影响,因此过多的变量不仅会增加模型的计算复杂性,还可能引入影响模型的噪声,导致模型过拟合。因此,通过lasso回归进行特征选择,筛选出对股票价格预测最关键的特征,对于提高股票分析的准确性和效率都具有重要意义。
随着数据规模的增大,求解lasso问题需要更为先进的算法。最新的算法有梯度下降法、坐标下降法、交替方向乘子法[2]和邻近梯度算法(proximity gradient algorithm)等。本文主要介绍了邻近梯度算法,该算法可以看作是投影梯度算法的推广。1962年,moreau在投影算子中采用凸映射代替恒等映射,引入了邻近算子的概念,将投影梯度算法推广为邻近梯度算法,具体是将目标函数中可微的部分进行二阶展开,并保留非光滑部分,然后求解极小值作为下一步的估计。这种方法特别适用于求解非光滑约束优化问题。本文旨在利用邻近梯度算法求解lasso回归的系数,通过实证分析展示其在提高股票预测精度和效率方面的作用,为投资者和分析师提供一种更加智能化的股票分析算法[3]。
2. 预备知识
2.1. lasso的基本思想
breiman在1995 [4]年提出nonnegative garrote方法,是用来解决变量选择的回归模型。主要核心思想是对数据集
作回归拟合,其中
,
,即
为自变量,
为因变量。变量选择即从所有的变量因子中选择一小部分作为回归变量,而这部分回归变量构成的回归函数也可以让我们有效地预测结果。由于每增加一个回归因子,回归方程的方差都会增加,因此变量选择变得很有必要,可以减小估计方差的同时又简化回归模型。
而斯坦福大学统计学教授robert tibshirani于1996 [5]年在nonnegative garrote方法的基础上首次提出lasso回归方法,对于上述的数据集
,假设是
标准化的,即:
考虑如下线性模型:
写成矩阵形式为:
这里,被解释变量y是
的向量,解释变量x是
的矩阵,而我们得到误差项
是
的向量。lasso估计为:
其中
是估计参数。
等价表示为标准的lasso问题:
(1)
其中
,
,
为正则化参数,
,a记为解释变量构成的矩阵,b为被解释变量构成的向量。可以看出lasso模型还是以最小二乘法计算残差,但引入了l1范数作为惩罚项用来减少模型的回归系数。
2.2. 邻近算子
定义2.2.1:[6]设
是
上的实值凸函数。对于任意给定的t > 0,
的邻近映射定义为:
称映射
为
的邻近算子。
对于
,
,l1范数的邻近算子为:
(2)
3. 邻近梯度算法
求解问题(1)困难在于
的不可微性,这使得传统的光滑优化算法不能得到直接应用,由此邻近算法被moreau于1962年提出,rockafellar [7]随后对邻近算子做出进一步研究,并应用于优化问题。具体如下:
优化问题模型为:
(3)
其中
为损失函数,本文使用最小二乘作为损失函数,即
,则优化模型为:
(4)
邻近梯度算法的迭代格式为:
其中
为迭代步长,步长可以通过线搜索得到。
邻近梯度算法的迭代格式简单,适用于求解大规模问题,能够处理非光滑且目标函数为广义实值函数的问题。邻近梯度算法广泛应用于图像处理、压缩传感、机器学习、系统识别、协同预测、低维嵌入、数据挖掘和模式识别等领域[8] [9]。
3.1. 求模型参数过程
算法1:迭代算法 |
邻近梯度算法 |
初始化:设置
,
,
,
。 迭代过程: 计算
(5) 如果满足:
则
,否则设置
并回(5)。 停机准则:
或者达到最大的迭代次数(maxiter)。 |
3.2. 邻近梯度算法的收敛性
定义3.2.1 (p稳定点) [10]:存在一个
使得
(6)
则称
为问题(3)的p稳定点。
引理3.2.2:设序列
由邻近梯度算法产生,则:
(i)
;
(ii) 函数值序列
具有下降性质,即
是非递增的。
证明:
迭代停机准则知,迭代最多到100次,k有上限,记n为k值的集合。从算法中可知:
,累加有:
,
令k趋于
,可得(i)。
由算法的迭代过程可知,产生的
要满足式子
,因此有:
,
,
说明
是非递增的。
定理3.2.3:邻近梯度算法产生的序列
收敛到p稳定点。
证明:设
为序列
的累积点,即当k趋于
,有
,由迭代算法可知:
,
两边同时取极限有:
,
根据定义3.2.1知
为p稳定点,因此序列
收敛到p稳定点。
4. 基于邻近梯度算法用lasso回归对沪深300指数回归拟合
金融市场是经济体系的重要组成部分,其发展与宏观经济状况密切相关。经济增长、通货膨胀、利率变动等经济因素直接影响金融市场的走势。而金融市场指数是衡量特定金融市场或行业整体表现的重要工具,评判市场健康程度、活跃度以及经济发展状况的重要依据,它综合了众多相关资产的价格变动,为投资者和分析师提供了市场走势的直观参考。
主要的金融市场指数包括股票市场指数、债券市场指数和商品市场指数等。这些指数通过计算样本股票的价格平均值或市值加权平均值,来反映市场的总体走势和估值水平。本文以沪深300指数为例进行数据拟合试验,沪深300指数由证监会于2005年4月8日正式推出,是中国a股市场的一个重要基准指数,它涵盖了沪深两市中市值最大、流动性最好的300只股票,涵盖了金融、消费、工业、能源等多个行业,具有广泛的市场代表性,这些行业之间的关联性和差异性为lasso回归提供了丰富的变量选择空间。同时沪深300指数及其成分股的历史数据丰富,这为使用lasso回归进行建模提供了坚实的基础。
但沪深300指数的构成复杂且权重为动态权重,因此,构建一个稀疏的组合对指数进行拟合来提高效率。我们运用lasso方法对沪深300指数作回归拟合,从沪深300的成分股中找出小部分股票就可以达到几乎相同的拟合效果。在此过程中,我们用邻近梯度算法进行优化迭代。
本文选取数据从2024年7月8日至2024年9月6日,共计45个交易日的数据,在各个价格数据中,收盘价代表了一天交易结束的买卖方的均衡价格,最具有代表性以及信息量,所以选取收盘价作为拟合价格,包含沪深300指数及其300支成分股的所有收盘价数据。数据来源为choice金融终端。
4.1. 基于邻近梯度算法的lasso问题实例
我们用邻近梯度算法进行优化迭代,设第j支股票在第i天的收盘价为
,记矩阵
,
,
,第i天的沪深300指数的收盘价为
,
。则lasso模型为:
4.1.1. 数据预处理
在lasso方法中,均假设数据是标准化的,即
,
。因此,我们首先要对每一支股票的收盘价格和沪深300指数的收盘价进行标准化处理,即令
,
,其中
为
的标准差,则标准化后的模型为:
通过求解此惩罚回归问题,希望通过邻近梯度算法构建其成分股的稀疏回归,数学表达式如下:
其中
是全部股票的指标集,t为回归系数非零的股票指标集合,
为回归系数,
为各成分股的收盘价。
4.1.2. 数据分析
在收集到数据后用matlab进行处理,所有数值实验均使用matlab (r2018b)在联想pc上进行(intel (r) core (tm) i5-9500 cpu (3.00 ghz), 8.00 gb (ram))。
参数设定为
,
,
,
,(最大迭代次数),在此参数下,对数据进行拟合并分析。从图1可以看出,大多数成分股的回归系数为0,只有28个非零的回归系数,从而达到了稀疏的目的,可以从这28个成分股来拟合沪深300指数。
figure 1. component regression coefficient
图1. 成分股回归系数
列出了回归系数不为零的28个成分股的股票代码,名称和回归系数,见表1。
table 1. names of constituent stocks and regression coefficients at
表1.
时的成分股名称以及回归系数
股票代码 |
股票名称 |
回归系数 |
股票代码 |
股票名称 |
回归系数 |
300418 |
昆仑万维 |
0.0330 |
000625 |
长安汽车 |
0.0058 |
600489 |
中金黄金 |
0.0549 |
600016 |
民生银行 |
0.0598 |
688008 |
澜起科技 |
0.0565 |
600085 |
同仁堂 |
0.0118 |
002142 |
宁波银行 |
0.0505 |
603195 |
公牛集团 |
0.0023 |
600887 |
伊利股份 |
0.0415 |
000157 |
中联重科 |
0.0340 |
002415 |
海康威视 |
0.0213 |
000063 |
中兴通讯 |
0.0134 |
002371 |
北方华创 |
0.0112 |
000977 |
浪潮信息 |
0.0028 |
002241 |
歌尔股份 |
0.0347 |
600346 |
恒力石化 |
0.0758 |
002648 |
卫星化学 |
0.0036 |
603501 |
韦尔股份 |
0.0563 |
603986 |
兆易创新 |
0.0265 |
600584 |
长电科技 |
0.0316 |
600745 |
闻泰科技 |
0.0028 |
000568 |
泸州老窖 |
0.0778 |
000786 |
北新建材 |
0.0013 |
300782 |
卓胜微 |
0.0370 |
000938 |
紫光股份 |
0.0531 |
600183 |
生益科技 |
0.0008 |
002916 |
深南电路 |
0.0293 |
600426 |
华鲁恒升 |
0.0293 |
此参数下稀疏拟合回归和原始数据的对比如图2,可以看出两条曲线差值不大,最大的差值为0.5639,说明拟合效果理想,两条曲线是趋于重合的。
figure 2. regression fitting versus raw data
图2. 回归拟合和原始数据对比
同时还采用控制变量法,分析了不同的参数对于拟合结果的影响。对于不同的参数
下得到的回归系数非零个数不同,如图3,可以看出惩罚因子
增大非零系数个数会减少,
在0到5之间有一个相对大的减小。
figure 3. different corresponding number of non-zero regression coefficients
图3. 不同
对应的非零回归系数个数
在其他参数不变的情况下,设置
回归系数的非零个数为17个,成分股名称在表2:
table 2. stock code and name at
表2.
时的成分股代码和名称
股票代码 |
股票名称 |
股票代码 |
股票名称 |
300418 |
昆仑万维 |
600489 |
中金黄金 |
600016 |
民生银行 |
688008 |
澜起科技 |
002142 |
宁波银行 |
600887 |
伊利股份 |
002415 |
海康威视 |
000063 |
中兴通讯 |
002241 |
歌尔股份 |
600346 |
恒力石化 |
603501 |
韦尔股份 |
603986 |
兆易创新 |
000568 |
泸州老窖 |
300782 |
卓胜微 |
000938 |
紫光股份 |
600183 |
生益科技 |
002916 |
深南电路 |
|
|
从表中可以看出这17个也在
时的28个非零回归系数对应的成分股中,说明随着的
增大,剩下的变量对拟合结果重要性更高,不容易被惩罚掉。而保留影响相对较大的变量,它们对于结果的相关性更高,对拟合效果的贡献更大。
5. 总结
在证券市场中,构建一种高效的指数跟踪资产组合,以紧密跟随目标指数的表现,对于无论是个人还是机构投资者而言,都具有重要的实践意义。本文致力于探索并应用一种创新的方法,即通过模型和变量选择技术来寻找稀疏解,特别是采用邻近梯度算法来求解lasso回归模型,本文实现了仅利用少数精选股票来拟合并复现一个原本包含数百支股票的复杂指数指标,从而构建出一个稀疏而高效的指数追踪资产组合。这种方法为投资者提供了一种更为灵活且成本效益高的指数复制和跟踪策略,通过这种方式,投资者不仅能够显著降低投资成本,还能够有效分散风险,并最终提升整体的投资效率。这一研究成果为证券市场中的指数跟踪实践提供了新的视角和有力的工具支持。
基金项目
国家自然科学基金(12261020),贵州省科技计划(黔科合基础zk [2021]一般009)和贵州省高层次留学人才创新创业择优资助重点项目([2018] 03)。