同花顺Supermind量化交易 财务分析建模 -数据处理:去极值、标准化、中性化

本文介绍了数据预处理中的关键步骤——去极值、标准化和中性化,特别是针对财务分析中的数据处理。文中详细讲解了MAD法、3σ法和百分位法的去极值处理,以及z-score的标准化方法,并探讨了中性化处理在消除因子偏差中的作用。示例代码展示了如何在Python中实现这些方法。
摘要由CSDN通过智能技术生成

一般的数据预处理中常提及到三类处理:去极值、标准化、中性化。我们将向大家讲述这常见的三种数据处理操作。

第五篇:数据处理专题:去极值、标准化、中性化

导语:一般的数据预处理中常提及到三类处理:去极值、标准化、中性化。我们将向大家讲述这常见的三种数据处理操作。

一、去极值

  在分析上市公司当季净利润同比增长率数据时,我们往往会被其中一些公司的数据干扰,如图中江西长运,2017三季度净利润同比增长率高达32836.04%!而实际上大部分公司的当季净利润同比增长率的数值都远远达到这个值的百分之一。那么数据去极值操作就显得尤为关键,可以剔除掉数据干扰项,提高数据结论的准确性。

  一般去极值的处理方法就是确定该项指标的上下限,然后超过或者低于限值的数据统统即为限值。其中上下限数值判断标准有三种,分别为 MAD、 3σ、百分位法。

  以沪深300成分股的pe值为原始数据,向大家阐述MAD、 3σ、百分位法。

In [1]:

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()

Out[1]:

pe_ratio market_cap 1/PE
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的数据分布,运用绘图函数展示出来:

In [2]:

fig = plt.figure(figsize = (20, 8))
ax = data['1/PE'].plot.kde(label = 'Original_PE')
ax.legend()

Out[2]:

<matplotlib.legend.Legend at 0x7f777a239940>

1.MAD法:

  MAD又称为绝对值差中位数法,是一种先需计算所有因子与平均值之间的距离总和来检测离群值的方法,处理的逻辑:

   第一步,找出所有因子的中位数 Xmedian

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值