[B6]多因子数据的处理方式

本文介绍了多因子数据的处理方法,包括去极值(如分位数去极值、3倍中位数去极值、正太分布去极值)、标准化以及中性化处理。在实践中,3倍中位数去极值方法通常得到较好的效果,而中性化处理则是通过对市值与市净率进行回归计算得到新的因子值。
摘要由CSDN通过智能技术生成

多因子数据的处理:主要包括三种方式-----------去极值;标准化;中性化

1.去极值
去极值不是删除而是拉回正常值
(1)分位数去极值
(2)3倍中位数去极值(3mad)
(3)正太分布去极值(3sigma)

首先安装以下需要的工具包

from scipy.stats.mstats import winsorize

from sklearn.preprocessing import StandardScaler

from sklearn.linear_model import LinearRegression

import numpy as np

import pandas as pd

(1)分位数去极值
获取数据,选择revenue和cost_of_goods_sold两个特征

q = query(fundamentals.income_statement.revenue,
          fundamentals.income_statement.cost_of_goods_sold
         )

fund = get_fundamentals(q, entry_date="2017-01-03")

#换成截面数据
fund[:,"2017-01-03",:]

在这里插入图片描述

#对pe_ratio去极值
#分位数去极值
fund = pe_ratio = get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio), entry_date="2018-01-03")[:,"2018-01-03",:]

fund['pe_ratio_winsorize'] = winsorize(fund['pe_ratio'], limits=0.025)

选取500个数据查看情况

fund['pe_ratio'][:500].plot()
fund['pe_ratio_winsorize'][
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值