问题提出与分析

随着我国金融市场的形成和发展壮大,股票投资已成为我国居民日常生活中的一个热门话题。同时股票市场的日益成熟,对股票投资的绩效评价与未来走势的预测也为人们所关注。年中国股市的迅速发展,完成了中国证券市场发展的一次历史性的跨越。中国宏观经济持续高速增长带来的上市公司业绩大幅提高,为中国的股票市场的良好发展打下了坚实基础。在中国证券市场在一步步趋向完善和成熟的过程中,需要的不仅是国家宏观政策的引导,更需要广大的投资者具备合理的投资理念和方法。

研究目的及意义

降维问题最近越来越受到统计学家的重视而且在实际中有很广泛的应用,比如说、计算生物学中的基因选择金融统计分析等等。主成分分析是一种常用的数据处理方法。在高维数据分析中,它是重要的降维技术,在生物统计,社会科学,经济和金融领域有着广泛的作用。主成分的主要原理是对原始变量做一个线性变换,得到一组新的变量,而这组新的变量对原始数据的解释方差逐步减小。从而我们说,我们就得到了一系列方差逐步递减的主成分,更重要的是每个主成分互相正交,这样对问题的分析非常明了。然而主成分分析有它自身的缺点,主成分分析最终得到的主成分是所有原始变量的线性组合,而且,所有线性组合的系数通常非0,从而,主成分分析得到的每一个主成分就没有实际的解释意义。

稀疏主成分分析是在PCA 的基础之上对负载因子进行稀疏化,即使得大部分负载因子为0,从而使得主成分更具解释能力。SPCA综合考虑了主成分的方差与负载因子的稀疏化,从而弥补了传统PCA的缺陷。其次,稀疏主成分分析改善了原有主成分分析存在的某些缺陷。是一种流行的处理数据分析、数据压缩、数据可视化的方法,在科学和工程领域中应用极广。本质上讲,是通过寻找原始变量的线性组合使得数据在各方向上的方差达到最大,一般通过原始数据矩阵的分解或者其协方差矩阵的特征值分解来求解。由于主成分分析在各方向上的方差达到最大,因此提供了一种使得数据信息损失最小的压缩方法。其次各主成分是不相关的,这就便于解释或后续的统计分析。但是,从另一方面看,有一个明显的缺点,即各主成分是所有原始变量的线性组合,载荷通常非零。同时,主成分的载荷符号通常有正有负,当对应于实际问题出现效应的抵消时,用其给出的解释就很难达到很好的效果。在许多应用中,如果载荷中有许多零元素,那么主成分的解释将非常方便。因此,寻找有零元素的载荷向量即稀疏主成分有重要的实际意义。

稀疏主成分分析

SPCA是基于主成分分析可以转化为带二次罚回归问题而被提出的。即直接将主成分的求解问题转化为Lasso回归问题,这样,稀疏主成分的求解就有效地转化成了线性模型的变量选择问题,在此基础上再引入弹性网惩罚结构就可以得到稀疏主成分,即考虑优化问题:

β^=argminβ||Zi−Xβ||2+λ||β||2+λ1||β||1

\hat{\beta } =argmin_{\beta }||Z_{i}-X\beta ||^{2}+\lambda ||\beta ||^{2}+\lambda _{1}||\beta ||_{1}
则稀疏载荷 v1 v_{1}的近似解为 Vi^=β^||β^|| \hat{V_{i}}=\frac{\hat{\beta }}{||\hat{\beta }||},因此第个稀疏主成分为 XVi^ X\hat{V_{i}}.显然,给定一个 λ \lambda ,就可以得到一个稀疏向量 β^ \hat{\beta },进而得到稀疏载荷 Vi^ \hat{V_{i}} 由于对所有的 λ1 \lambda _{1},都可以用LARS-EN算法求解,所以可以灵活地选择第i个主成分载荷的稀疏性。

SPCA算法

由于稀疏主成分的求解可以有效转化为惩罚回归问题,而一般的惩罚回归问题又可以通过最小角回归算法来解决,因此稀疏主成分的求解也可以利用最小角回归算法给出。一个典型的稀疏主成分算法是Zou(2006)提出的,它是一种基于弹性网惩罚结构的算法。策略是寻找一个的回归优化框架,再通过应用带弹性网的lasso惩罚直接修正,就可以得到稀疏主成分。算法如下设观测值个数为g,变量数为p,当 g≥p g \geq p时:

  1. 计算一般主成分的前k个主成分对应的向量 aj(j=1,2,3...,k) a_{j}(j=1,2,3...,k)
  2. 在给定义 A=(a1,a2,a3,...,ak) A=(a_{1},a_{2},a_{3},...,a_{k})的情况下,求解回归问题:
    β^=argminβ(aj−β)TXTX(aj−β)+λ1||β||1

    \hat{\beta } =argmin_{\beta }(a_{j}-\beta )^{T}X^{T}X(a_{j}-\beta )+\lambda _{1}||\beta ||_{1}其中 ||β||2=βTβ ||\beta ||^{2}=\beta ^{T}\beta , ||β||1 ||\beta ||_{1}表示 β \beta 各分量的绝对值之和。 λ,λj \lambda ,\lambda _{j}是参数需要先给定一系列 λj \lambda _{j},计算出后,再回头确定最优的 λj \lambda _{j}

  3. 对于给定的 B=(β1^,β2^,...,βk^) B=(\hat{\beta _{1}},\hat{\beta _{2}},...,\hat{\beta _{k}}),对矩阵进行奇异值分解:
    XTXB=UDVT

    X^{T}XB = UDV^{T}其中, UUT=I,VVT=I UU^{T} = I,VV^{T} = I,令 A=UVT A = UV^{T}

  4. 重复步骤2、3至收敛;
  5. Vi^=β^||β^|| \hat{V_{i}}=\frac{\hat{\beta }}{||\hat{\beta }||}

算法特点

输出结果不会随着 λ \lambda 的变化发生很大变化,默认值为0。一般 λj \lambda _{j}取为一个较小的正数以此克服潜在的多重共线性问题,原则上需要尝试多种 λj \lambda _{j}的组合理论概述合得到最优的参数向量,使得算法的收敛速度最快,但是有一种快捷的直稀疏近似方法,即LARS-EN算法,这种算法能快速的给出每个主成分的稀疏近似。因此,可以选择一组 λj \lambda _{j}使得在方差和稀疏性之间达到一个良好的组合在权衡方差和稀疏性时,应该优先考虑方差,选择方差更大的 λj \lambda _{j}

模型建立及求解

数据准备

选取了金融行业的45只股票作为研究对象。考虑到各股票的日交易价不同步问题严重,会损失许多数据,产生较大误差,所以使用周收盘价,这样可以减小交易不同步的问题。观察各股旳周交易日发现,从2011年12月31日至2013年12月31日(共102个周交易日),该区间内各股周交易日不同步的问题较小。删除交易日不同步严重的股票后,剩下只,缺失的数据用平均周收盘价代替。

基于构建的金融行业股票投资组合

通过SPCA对数据进行降维处理,首先查看累计贡献率,发现前四个出成分的累计贡献率已达87.26\%,超过85\%,它们的变异基本上反映了全部股票价格的波动,同时,后四大主成分的非零载荷个数极少,所以只需提取前四大主成分。然后得到四个出成分中45只股票的权重值,如下:

通过SPCA的降维处理,我们可以发现有些股票的权重已经变为0,经过统计,四个主成分的公共非零载荷对应的股票有35只。因此公共行业的投资组合为这35只股票。为以下股票:

SPCA代码

基于sklearn中的sparse_pca的模块:

from sklearn.decomposition import PCA
from sklearn.decomposition import sparse_pca
import numpy as np
data_spca = np.loadtxt('F:/作业/主成分分析/vxq0qvyy/TRD.txt')
data_spca1 = data_spca.T
print(data_spca1)
print(np.shape(data_spca1))
pca_op = PCA(n_components=4)
pca_op.fit(data_spca)
# a为3x3的数据
# X: array-like, shape (n_samples, n_features)
#print(pca_op.fit_transform(data_spca))
print(pca_op.explained_variance_) #在PCA中有特征值的输出啊
print(sum(pca_op.explained_variance_ratio_)) #累计贡献率
spca_op = SparsePCA(n_components=4)
spca_op.fit(data_spca)#得到参数
spca_value = spca_op.fit_transform(data_spca)
spca_co = spca_op.components_
print(np.shape(spca_co))
print(spca_co)
np.savetxt('a.txt',spca_co)#存为文本文件

基于稀疏主成分分析的股票研究相关推荐

  1. matlab的稀疏表示分类,基于稀疏表示的分类方法

    四天数模,做得不好,但收获不小.最后还通宵一宿,多日后得以重获新生,特做个小记,聊记心得. 本次选题为神经元的分类和聚类,前者给定种类,需要通过训练样本找寻分类特征,再用测试样本测试分类方法的正确性. ...

  2. R语言稀疏主成分分析、因子分析、KMO检验和Bartlett球度检验分析上市公司财务指标数据...

    全文链接:http://tecdat.cn/?p=31080 R中的主成分分析(PCA)和因子分析是统计分析技术,也称为多元分析技术(点击文末"阅读原文"获取完整代码数据). 当可 ...

  3. ICCV 2021 | 基于稀疏多视角彩色相机的多人人体全身捕捉

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Title Teaser 本文作者来自清华大学刘烨斌老师团队,作者提出了一种轻量级的基于稀疏多视角相机 ...

  4. FusionNet:基于稀疏雷达点云和RGB图像的深度图补全

    作者:Tom Hardy Date:2020-02-09 来源:FusionNet:基于稀疏雷达点云和RGB图像的深度图补全

  5. 基于稀疏表示的人脸识别 (SRC,LASRC,RASL,MRR)

    FROM:http://blog.csdn.net/loadstar_kun/article/details/39453839 1.  问题背景 信号的稀疏表示并不是新的东西.我们很早就一直在利用这一 ...

  6. 【三维深度学习】Sparse Convolutional Network 基于稀疏采样不变性的深度稠密重建

    为了从稀疏的深度采样(Lidar)中重建出稠密的深度信息, 研究人员提出了一种高效的稀疏卷积层,用于在训练过程中精确定位数据缺失的位置,实现了具有稀疏不变性的特征抽取和重建手段.Sparsity In ...

  7. 荔枝hsv空间图像分割程序matlab,基于稀疏场水平集的荔枝图像分割算法_毛亮

    第4期毛亮等:基于稀疏场水平集的荔枝图像分割算法349 从表中可知,本文算法在计算速度上接近标准模糊C 均值聚类算法,优于水平集方法.因此,与水平集方法相比,本文算法有着更好的分割性能和实时性. 4结 ...

  8. 基于稀疏表示的分类方法 Sparse Representation based Classification Method

    文章来源 Jia K, Chan T H, Ma Y. Robust and practical face recognition via structured sparsity[J]. Comput ...

  9. 基于PCA主成分分析的BP神经网络回归预测MATLAB代码

    基于PCA主成分分析的BP神经网络回归预测MATLAB代码 代码注释清楚. 先对数据集进行主成分分析,自主根据贡献率选择主成分:同时计算KMO验证值:用PCA以后数据进行BP神经网络回归预测. 可以读 ...

最新文章

  1. github登陆方案
  2. HTML怎么实现字体加粗
  3. Trie UVALive 7192 Chip Factory (15长春J)
  4. linux stat函数讲解
  5. 第二步 (仅供参考) sencha touch + PhoneGap(cordova 2.9 及其以下版本) 使用 adt eclipse进行打包...
  6. offer from university of edinburgh
  7. 【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期
  8. esp8266接7735_基于8266的ESPEASY固件接入HASS的教程(可无脑接入各类传感...
  9. “Linaro”将推动开源软件新一波开发潮
  10. 【干货】如何打造一流创业团队-创业者最实用的管理指南.pdf(附下载链接)...
  11. [转载] python3 字符串比较函数_python3 字符串操作相关函数
  12. 一.Spring boot食用指南:HELLO WORLD
  13. CVPR 2021 Oral | 妙啊!不怕遮挡的图像线段匹配 SOLD2,还能联合自监督线段检测
  14. php判断无理数,重新整理证明:无理数在数轴上不存在的逻辑证明
  15. Matlab练习---利用曲线对象绘制五环图案
  16. 文件未找到mathpage.wll_解决MathPage.wll文件找不到的问题(找了好久的良心之作)...
  17. web前端程序员职位介绍
  18. Graphics View框架
  19. Prometheus + Grafana + alertmanager实现Substrate区块链节点实时监控报警系统(上)
  20. 【Code】Python金字塔模型的实现(Pyramid)

热门文章

  1. 经典语录---助你成功的哲理
  2. Ubuntu16.04/Hadoop3.1.3安装教程_单机/伪分布式配置
  3. 科研知识|审稿人意见冲突该如何妥当处理呢?看完这篇你就全懂了~
  4. SPECTRUM数字化仪M2p系列再添新成员--5Ms/s采样率
  5. 基于AD9954实现正弦交流信号输出——附原理图、代码
  6. 测试未来老公的样子软件,测试你未来老公的样子
  7. 数据结构知识体系框架图
  8. tensorflow 按维度相加_女司机按男司机喇叭,男司机要灭她全家_影视
  9. SQL语句以及三大范式
  10. 为什么java里面3*0.1=0.30000000000000004,而4*0.1=0.4?