导语:一般的数据预处理中常提及到三类处理:去极值、标准化、中性化。我们将向大家讲述这常见的admin管理员组文章数量:1564666
三种数据处理操作。
一、去极值
在分析上市公司当季净利润同比增长率数据时,我们往往会被其中一些公司的数据干扰,如图中江
西长运,2017 三季度净利润同比增长率高达32836.04% !而实际上大部分公司的当季净利润同比增长
率的数值都远远达到这个值的百分之一。那么数据去极值操作就显得尤为关键,可以剔除掉数据干扰项,
提高数据结论的准确性。
一般去极值的处理方法就是确定该项指标的上下限,然后超过或者低于限值的数据统统即为限值。
其中上下限数值判断标准有三种,分别为 MAD 、 3σ、百分位法。
以沪深300 成分股的pe 值为原始数据,向大家阐述MAD 、 3σ、百分位法。
import numpy as np
import pandas as pd
import math
from statsmodels import regression
import statsmodels.api as sm
import matplotlib.pyplot as plt
date='20180125'
stock=get_index_stocks('000300.SH',date)
q = query(
valuation.symbol,
valuation.pe_ttm,
valuation.current_market_cap
).filter(valuation.symbol.in_(stock))
data = get_fundamentals(q,date=date)
data.columns = [['symbol','pe_ratio','market_cap']]
data = data.set_index(data.symbol.values)
del data['symbol']
data['1/PE'] = 1/data['pe_ratio']
data.head()
pe_ratio market_cap 1/PE
----------------------- Page 165-----------------------
000001.SZ 10.59 2.402355e+11 0.094429
000002.SZ 18.61 3.903084e+11 0.053735
000008.SZ 54.53 1.661121e+10 0.018339
000060.SZ 27.51 2.613508e+10 0.036350
000063.SZ -115.27 1.237605e+11 -0.008675
将1/PE 的数据分布,运用绘图函数展示出来:
fig = plt.figure(figsize = (20, 8))
ax = data['1/PE'].plot.kde(label = 'Original_PE')
ax.legend()
下图是 20180125 的沪深300 指数成分股 1/PE 的数据分布:
1. MAD 法:
MAD 又称为绝对值差中位数法,是一种先需计算所有因子与平均值之间的距离总和来检测离群值的
方法,处理的逻辑:
第一步,找出所有因子的中位数 Xmedian
第二步:得到每个因子与中位数的绝对偏差值 Xi−Xmedian
第三步:得到绝对偏差值的中位数 MAD
第四步:确定参数 n ,从而确定合理的范围为 [Xmedian−nMAD,Xmedian nMAD],并针对超出合理
范围的因子值做如下的调整:
<
版权声明:本文标题:第五章:量化研究专题(第五篇:数据处理专题:去极值、标准化、中性化 ) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726917466a1090291.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论