首页
学习
活动
专区
工具
TVP
发布

基于Python的多因子分析

基于这个想法,发现很多相关性很高的因素背后有共同的因子驱动,从而定义了**因子分析,这便是因子分析的由来。...因子分析就是将存在某些相关性的变量提炼为较少的几个因子,用这几个因子去表示原本的变量,也可以根据因子对变量进行分类。 因子分子本质上也是降维的过程,和主成分分析(PCA)算法比较类似。...2种因子分析 因子分析又分为两种: 探索性因子分析:不确定在现有的自变量背后到底有几个因子在起作用,我们通过需要这种方法试图寻找到这几个因子 验证性因子分析:已经假设自变量背后有几个因子,试图通过这种方法去验证一下这种假设是否正确...关于因子载荷矩阵的几个重要性质: 1、因子载荷$a_{ij}$是第i个变量与第j个公共因子的相关系数,反映的是第i个变量和第j个公共因子之间的重要性。...factor_analyzer库 利用Python进行因子分析的核心库是:factor_analyzer pip install factor_analyzer 这个库主要有两个主要的模块需要学习:

2K00
您找到你想要的搜索结果了吗?
是的
没有找到

Python实现因子分析

因子分析(factor analysis)因子分析的一般步骤factor_analyzer模块进行因子分析使用Python实现因子分析初始化构建数据将原始数据标准化处理 X计算相关矩阵C计算相关矩阵C的特征值...和特征向量 确定公共因子个数k构造初始因子载荷矩阵A建立因子模型将因子表示成变量的线性组合.计算因子得分....探索性因子分析是先不假定一堆自变量背后到底有几个因子以及关系,而是我们通过这个方法去寻找因子及关系。 验证性因子分析是假设一堆自变量背后有几个因子,试图验证这种假设是否正确。...计算因子得分. factor_analyzer模块进行因子分析 算法核心: 对若干综合指标进行因子分析并提取公共因子,再以每个因子的方差贡献率作为权数与该因子的得分乘数之和构造得分函数。...Series from factor_analyzer import FactorAnalyzer import warnings warnings.filterwarnings("ignore") 使用Python

6.1K13

因子模型之因子(信号)测试平台----计算因子

近一个半月疯狂的接触多因子模型,其中对于单个因子的回测,是最熟的。而对于单个因子,或者叫做signal(这一系列文章后续都这么叫),是多因子模型的基础。...1.我们开始的数据 这一系列的教程,我们将从一个因子开始,最简单的因子,revs10,也就是,十天收益率。...这个教程,注重的是整个signal测试的框架,包含两个方面,测试的思路和软件的平台建设,而我们的因子是否好,其实不是我们关注的点。...2.计算因子值 我们的因子叫做revs10,说白了就是十天的收益率的值。 res10(t) = close(t) / close(t - 10) - 100% 公式大概就是上面这样。...其实,多因子模型的第一步就是这么简单。当然,这个因子是最简单的一个因子了,别的因子会用到别的数据,无论如何,核心的一步就是,千方百计计算好你的因子值,然后存下来。

1K40

因子模型之因子(信号)测试平台----因子值的处理(二)

我们知道,一个因子值的处理大致分为三个步骤,去极值、标准化、中性化,上次我们对因子值进行了去极值和标准化,这一次,我们主要讲一讲中性化,也就是neut。        ...所以,很多因子数值在一个行业内比较才是有效的。同样的思路,有些因子虽然看起来不是一些基本的风格因子,比如PE,但是,其实我们知道,PE和市值有很大的关系,大市值的公司,一般是成熟的公司,PE往往不高。...也就是做一个回归,其中,因子值是y,需要中性的风格因子的暴露为x,然后我们进行回归。回归之后的残差就是因子值对行业中性化后的值。这里的风格因子可以是一个也可以多个,也就是一元回归和多元回归的区别。...如果读者有wind的python的api,那么可以使用下面的函数获得我们需要的股票代码和行业代码转换的字典。这里,我们有一个假设,就是股票的行业在整个因子回测区间没有改变。...1") return {k: v for (k, v) in zip(ind_category.Codes, ind_category.Data[0])}         如果没有wind的python

1.2K40

因子尝试(二):因子正交化

本文给出另一种更为常用的解决因子间相关性的方法:因子正交化。...如果因子间存在较强的相关性/相关性,通过上述加权方式,最终会导致因子对于某种风格的因子重复暴露。使得整个组合的表现严重偏向于该因子,削弱其他因子的效果。...具体来说,当因子表现好时,组合会获得更高的超额收益,但因子表现不好时,也会出现更大幅的回撤。 举个栗子,在上篇三因子组合市净率、1个月动量、市值的基础上,加入流通市值因子进行四因子组合。...基准采用沪深300指数,显然,四因子组合由于在估摸因子上的重复暴露,导致15年股灾之后,相较于三因子组合出现了超额增长,但在17年规模因子失效后出现了更大回撤。...col_name,index = factors.index) Q = pd.concat([Q,class_mkt],axis = 1) return Q 注意这里不能用python

10.8K75

因子测试(上)——因子中性化

结构化风险因子模型 对于均值方差模型的优化有多种方法,最广为人知的是结构化风险因子模型,简称多因子模型,多因子模型利用一组共同因子和一个特质因子解释各股票收益率的波动,共同因子对各个股票都有影响,特质因子只对特定股票有影响...多因子模型将因子收益率分解为各因子收益率的线性组合: ? 其中r是股票j的收益率,u是股票j的特质因子收益率, ? 是K个共同因子因子收益率, ? 是各共同因子在股票j上的因子暴露(因子值)。...其中,X为n只股票在K个因子上的因子暴露矩阵(因子载荷阵),F为共同因子收益率的协方差阵,\Delta为特质因子收益率协方差阵,在上述假设下,特质因子收益率协方差阵为对角阵。...因此,我们需要一套方法来评价因子,这就是做单因子测试的原因。 02 单因子测试方法综述 什么样的因子是好因子? 要评价因子好不好,我们要从因子定义和用法上出发。...这里附上用回归的方法做中性化的python代码,python的pandas包里有可以直接生成虚拟变量的函数,回归statsmodels包中也有函数,因此整个过程就变得非常简单。

11.5K99

因子分析过程_怎么得出公因子stata

今天说一说因子分析过程_怎么得出公因子stata,希望能够帮助大家进步!!!...www.kaggle.com/uciml/pima-indians-diabetes-database 数据地址2:https://github.com/susanli2016/Machine-Learning-with-Python...综合得分 利用因子给每个样本一个综合得分 首先计算各因子的值,使用上面的步骤计算因子1,2,3的得分 其次计算各因子所占的比例,利用旋转后的结果如下: 每个因子所占比例分别是0.2193,0.1998,0.1879...,累计贡献率是0.6069 则每个因子所占比例: 因子1权重 = 0.2193 / 0.6069 因子2权重 = 0.1998 / 0.6069 因子3权重 = 0.1879 / 0.6069 最后综合得分...= 因子1权重 * 因子1得分 + 因子2权重 * 因子2得分 + 因子3权重* 因子3得分 最终的综合得分到底如何使用,表达什么,只能仁者见仁智者见智了。

1.6K10

淘金『因子日历』:因子筛选与机器学习

因子筛选主要有逐步回归、主成分分析 PCA 等方法,是对批量因子做筛选,剔除冗余因子,降低因子间的相关性,因子检验得到的因子有效性程度也可以作为因子筛选的评价指标,用于剔除低效因子。...,然后再基于筛选规则选出排名靠前的部分因子,选出的因子集可能存在冗余信息;多因子筛选通常是逐个比较新因子在已选因子基础上带来的“增强”作用来决定该因子的去留,选出的因子集是对收益有最强解释力且因子间不相关的因子...对比大类因子的平均方差情况,排名靠前的有估值因子>无形资产因子>规模因子>流动性因子,而且这些类因子(特别是规模因子)跨横截面后方差有些许降低(因子取值波动反而变小了);常用的动量因子的方差排名相对靠后...对比大类因子的平均 F 统计量情况,排名靠前的是规模因子>无形资产因子>投资因子>杠杆因子,常用的动量因子排名最后,估值因子也排名较后;基本上所有的大类因子在跨横截面后 F 统计量都有所提升(可能受样本量影响...排名靠前因子中,量价因子居多,比如 Amihud 非流动性因子、总波动率因子、各类换手率因子等;排名靠后因子中,基本面因子居多,如各类财务质量因子

1.3K21

Python量化投资】基于单因子的Alpha预测

AlphaHorizon介绍 - 以非流动性因子ILLIQ为例 名称解释:AlphaHorizon是优矿团队实现的基于单因子的Alpha研究和实现一种过程和方法。...AlphaHorizon可以对研究得到的alpha因子做一个比较完整的分析报告,包括alpha因子的回测、IC和换手率等等。...['2009-01-05', '2009-01-06', '2009-01-07', '2009-01-08', '2009-01-09']1)因子数据加载 2)因子数据处理对因子数据进行截面处理:去极值...;计算方式为当期因子值与下期股票收益率之间的秩相关系数;信息系数越接近于1,说明因子的预测效果越好。...,2014年11月和12月IC出现显著为绿色的情况,是因为这一段时间小盘股表现明显弱于大盘股,而ILLIQ有小盘股暴露 4)换手率分析计算因子换手率可以展示出因子的时间序列稳定性,侧面反映出使用该因子做策略时候的调仓成本等

2.6K60

因子模型之因子(信号)测试平台----因子值的处理(一)

因子值都做标准化后,是为了以后很多因子可以相互combine。如果不做标准化,量纲就不一样,组合在一起就不会有什么意义。...行业中性比较简单,只要满足行业内因子值均值为0,标准差为1,也就是,行业内部再做一次标准化就可以了。...而风格中性则需要和风格因子的secore,或者说,exposure做回归,然后取残差作为最后的neut-score。...这里,前面三步还是比较容易实现的,但是第四部我们需要一个风格因子的score,这就很尴尬了,因为我们并不知道有哪些风格因子。有一个神一般的存在,叫做barra,读者可以自己去百度一下。...总而言之,这个数据供应商给了我们十个风格因子以及每一个因子的score(exposure)。当然,我们也可以自己去建立这个。

1.7K30

因子模型之因子(信号)测试平台----python中Pandas做处理时内存节省的技巧

1.查看dataframe占用空间     例如,我们读取之前的所有行情和因子数据: data = pd.read_csv('total_data.csv', index_col=0) data.info...别忘了,我们这里是令标的池为sz50,同时只有一个因子。某种意义上,完全没有意义,笔者只是为了展示多因子模型的整个流程和框架罢了,对于50个股票的标的池,做多因子策略,几乎是没有任何意义的。...我们想一想,如果范围是全市场,3000个股票,那么大概就是864M,而且这仅仅是一个因子。如果我们需要把100个因子的内容load到内存中,虽然有时候并不需要这样,那么就是8G,好吧,内存就不够了。

97540

Barra系列(一):Barra因子构建和因子测试框架

依照CNE5和数据预处理步骤构建21个小类风格因子,合并成10个大类风格因子。 常用的因子测试步骤包括检验因子有效性、稳定性和单调性等。...斯密特正交化 解决因子间相关性高的方法有很多,根据CNE5构建因子的描述,Nlsize因子对Size因子进行正交化,Hsigma因子对Beta因子进行正交化。...四、因子检测 I、Alpha因子和风险因子 一直以来,风险因子和alpha因子没有严格的区分方法,普遍的看法是alpha因子盈利性更强,且作用方向稳定,而风险因子相反。...2、因子稳定系数和IC值测试因子稳定性 因子稳定性是检验因子质量的另一个重要方面,IC值法除了可以用于检验因子作用显著与否外,还可以用于检验因子作用稳定性。...从因子稳定系数来看,所有因子在三个样本下均大于0.8,而除了Beta因子和Momentum因子之外的所有因子的稳定系数均在0.9之上,表示这些因子稳定性较好。

6.4K31

因子分析

目录: 什么是因子分析 因子分析的作用 因子分析模型 因子分析的统计特征 因子载荷矩阵的估计方法 因子旋转 为什么要做因子旋转 因子旋转方法 因子得分 因子分析步骤 举例 因子分析和主成分分析区别 1...; 语文、英语、历史有很强的正相关; 数学、物理、化学有很强的正相关; 于是可以提取出两个因子:文科因子和理科因子 2、因子分析的主要作用?...1}^{m}a_{ij}^2$;所有的公共因子和特殊因子对变量$X_i$的贡献为1,若$h_i^2$非常接近1,则因子分析的效果好,从原变量空间到公共因子空间的转化性质好; 贡献:因子载荷矩阵中各列元素的平方和...主因子法 极大似然法 6、因子旋转(正交变换) ? ? 为什么要因子旋转? 因子分析的目的不仅仅是要找出公共因子以及对变量进行分组,更重要的是要知道每个公共因子的意义,以便进行进一步的分析。...;因子分析除了公共因子外还有特殊因子

99561

挖掘股票因子

题目就如上图,有两问题,第一问是让我们根据所给数据找出影响高送转的因子(这些名词题目有给解释,小编也会给大家),第二问根据所给的前七年的数据,预测第八年那些股票会发生高送转。...第一问大家都很好理解,给了七年股票的因子数据,有基础数据,年数据,日数据,其中日数据有 3G,根据所给数据,从中找出影响一支股票是否发生高送转。...第二问就是根据选出来的这些因子,判断股票在第八年是否会高送转。 完整描述见题目 pdf。 代码流程 先给大家看看我代码目录,使用的 jupyter: ?...5.以日数据表分组计算,求每个因子的平均值: ?...6.这是根据经济学选一些因子,就是列的选择,根据指定列,不这样做的话,直接跟年数据表合并是不行的,因为日数据表有 3G 太大了,运行时内存不够,小编 16G 内存: ?

49520
领券