quant.transform

quant.transform.distribution

与数据分布有关的变换

quant.transform.distribution.compute_zscore(data, axis=-1, clip=3.0, inplace=False)[源代码]

计算Z分数(标准化)

Parameters:
data

要计算的数据

axis: int

以哪一维度作为features区分

clip: float, optional

clip

inplace: bool, optional

在原数据上修改还是返回新的数据

Examples

In [1]: import numpy as np

In [2]: from quant.transform.distribution import compute_zscore

In [3]: data = np.array([[0.1, 0.2, 0.3, 0.25], [0.02, 0.14, 0.28, 0.45]])

In [4]: compute_zscore(data, axis=0)
Out[4]: 
array([[-1.52127766, -0.16903085,  1.18321596,  0.50709255],
       [-1.26269976, -0.51443324,  0.35854438,  1.41858862]])

In [5]: Out[4].std(1)
Out[5]: array([1., 1.])
quant.transform.distribution.find_extreme_values(data, distribution='norm', alpha=0.975)[源代码]

在给定的分布和alpha水平下,找出离群值

Parameters:
data: array_like

要处理离群值的数据

distribution: str
假定数据的分布,如:
  • norm:正态分布
  • expon:指数分布
  • uniform:均匀分布
alpha: float

判断离群值的alpha水平

Returns:
pd.Series

是否为离散值的布尔值序列

Examples

In [1]: import numpy as np

In [2]: from quant.transform.distribution import find_extreme_values

In [3]: data = np.array([0.2, 0.02, 0.1, -0.1, 0.2, 0.15, 100])

In [4]: find_extreme_values(data)
Out[4]: array([False, False, False, False, False, False,  True])
quant.transform.distribution.get_residual(y: pandas.core.series.Series, x: pandas.core.series.Series, estimate_start=None, estimate_end=None, remove_alpha=True)[源代码]

将y序列对x序列做回归并求残差

Parameters:
y: pd.Series

因变量

x: pd.Series

自变量

estimate_start: str (YYYY-MM-DD), optional

参数估计的起始时间

estimate_end: str (YYYY-MM-DD), optional

参数估计的结束时间

remove_alpha: bool, optinal

是否去除常数项,默认为True