任务2 异常值处理(截面) 在量化投资中,因子数据可能会存在一些极值(outliers),这些极值可能会对模型的稳定性和预测能力产生影响。中位数去极值是一种常用的处理极值的方法。 (1)计算中位数:首先,对于给定的特征(在每个截面上),计算其中位数,记为 𝐷𝑀 。 (2)然后,计算每个数据点与中位数的绝对偏差。绝对偏差是每个数据点的值减去中位数的绝对值。 (3)计算绝对偏差的中位数,这个值被称为 MAD(Median Absolute Deviation),记为 𝐷𝑀𝐴𝐷 。 (4)将数据点小于 𝐷𝑀 -3 𝐷𝑀𝐴𝐷 视为异常值,赋值为 𝐷𝑀 -3 𝐷𝑀𝐴𝐷 (5)将数据点大于 𝐷𝑀 +3 𝐷𝑀𝐴𝐷 视为异常值,赋值为 𝐷𝑀 +3 𝐷𝑀𝐴𝐷
时间: 2024-02-17 19:00:33 浏览: 134
异常值的类型及其处理方法
4星 · 用户满意度95%
这段文字描述了使用中位数去极值法对数据进行处理的具体步骤,可以用以下 Python 代码实现:
```python
import numpy as np
def winsorization_mad(data):
# 计算中位数
median = np.median(data)
# 计算MAD
mad = np.median(np.abs(data - median))
# 计算上下界
upper_bound = median + 3 * mad
lower_bound = median - 3 * mad
# 处理异常值
data[data > upper_bound] = upper_bound
data[data < lower_bound] = lower_bound
return data
```
该函数接收一个数据集作为输入,并返回处理过异常值后的数据集。在函数中,首先计算了输入数据的中位数和 MAD。然后,计算出上下界,并将超出上下界的数据点赋值为上下界的值。最后,返回处理过异常值后的数据集。
阅读全文