当前位置: 首页 > news >正文

桂林做网站哪家公司好微信公众号官网登录入口手机版

桂林做网站哪家公司好,微信公众号官网登录入口手机版,人才网站建站,任县网站建设一、去极值 1. MAD MAD(mean absolute deviation)又称为绝对值差中位数法,是一种先需计算所有因子与平均值之间的距离总和来检测离群值的方法. def extreme_MAD(rawdata, n): median rawdata.quantile(0.5) # 找出中位数 new_median (abs(…

一、去极值

1. MAD

MAD(mean absolute deviation)又称为绝对值差中位数法,是一种先需计算所有因子与平均值之间的距离总和来检测离群值的方法.

def extreme_MAD(rawdata, n):

    median = rawdata.quantile(0.5)  # 找出中位数

    new_median = (abs((rawdata - median)).quantile(0.5))  # 偏差值的中位数

    dt_up = median + n * new_median  # 上限

    dt_down = median - n * new_median  # 下限

    return rawdata.clip(dt_down, dt_up, axis=1)  # 超出上下限的值,赋值为上下限

data7 = filter_extreme_MAD(data6.T,7).T

print(data7)

注:根据dataframe的数据格式,看是否倒置后运算

2. 3σ

3σ法又称为标准差法。标准差本身可以体现因子的离散程度,是基于因子的平均值 Xmean而定的。

def extreme_3sigma(rawdata):

    dt_up = rawdata.mean() + 3 * rawdata.std()

    dt_down = rawdata.mean() - 3 * rawdata.std()

    rawdata = rawdata.clip(dt_down, dt_up, axis=1)

    return rawdata

data8 = extreme_3sigma(data6.T).T

print(data8)

注:根据dataframe的数据格式,看是否倒置后运算

3.  百分位法

将因子值进行升序的排序,对排位百分位高于97.5%或排位百分位低于2.5%的因子值,进行类似于 MAD 、 3σ 的方法进行调整。

def filter_extreme_percentile(series,min = 0.10,max = 0.90): #百分位法

  series = series.sort_values()

  q = series.quantile([min,max])

  return np.clip(series,q.iloc[0],q.iloc[1])

def extreme_percentile(rawdata, min=0.025, max=0.975):

    p = rawdata.quantile([min, max])  # 得到上下限的值

    return rawdata.clip(p.loc[min, :], p.loc[max, :], axis=1)
注:根据dataframe的数据格式,看是否倒置后运算

二、标准化

  1. 离差标准化(也称线性归一化)

d = (t - t.min( )) / (t.max() - t.min())

注:根据dataframe的数据格式, 看是否倒置后运算

2. 标准差标准化

 

d = (t - t.mean())/t.std()

注:根据dataframe的数据格式, 看是否倒置后运算

三、正交化

传统方法的缺陷是:如果因子间存在较强的相关性,通过上述加权方式,最终会导致因子对于某种风格的因子重复暴露。使得整个组合的表现严重偏向于该因子,削弱其他因子的效果。

正交化目的是消除因子间的相关性,并保持因子对于收益的解释度不变。

首先进行标准化,使其在同一量纲上可比。

def  orth(x):

           M = (x.shape[0] - 1) * np.cov(x.T.astype(float))  # 矩阵

            D, U = np.linalg.eig(M)  # 获取特征值和特征向量

            U = np.mat(U)  # 转换为np中的矩阵

            d = np.mat(np.diag(D ** (-0.5)))  # 对特征根元素开(-0.5)指数

            S = U * d * U.T  # 获取过渡矩阵S

            factors_orthogonal_mat = np.mat(x) * S  # 获取对称正交矩阵

            x = pd.DataFrame(factors_orthogonal_mat, columns=x.columns, index=x.index)

     return x

使用截面数据,使用完后检验其相关性是否变小

rawdata.corr()

orth(x).corr()

四、中性化

 传统方法的缺陷是对于因子暴露在不同行业、市值上的分布不均匀,比如在小市值医药股上数值偏高,其他偏低,导致可比性下降。

如果是基本面分析需要针对不同的行业进行对比,而中性化直接通过回归取残差来避免类似问题。

中性化的方式是对因子暴露值和市值、行业做线性回归,最后用剩下的残差替代因子值。这个残差肯定是跟市值和行业无关的。

(1)为股票池添加上行业标记,0、1标记

        dummy = pd.read_csv('industry_dummy.csv', index_col=0)

import numpy as np

import pandas as pd

import math

from statsmodels import regression

import statsmodels.api as sm

#factor: 以code为index, 因子值为value的series

y = factors

#市值中性化

#mkt_ca: 以股票为index, 市值为value的series

x = mkt_cap.apply(lambda x:math.log(x))

#行业中性化

x = dummy

result = sm.OLS(y.astype(float),x.astype(float)).fit()

output = result.resid

 

http://www.yayakq.cn/news/102370/

相关文章:

  • 谈谈你在建设主题资源网站时天蓝色系网站设计
  • 高校建设思政教育网站案例wordpress 导出相册
  • 辽阳微网站建设个人房产备案查询网上查询
  • 宝安中心站是几号线简要说明网站建设的步骤
  • 单页竞价网站成都快速建站模板
  • 密云免费网站建设中国建设人才网服务信息网
  • 电信备案网站网络公司怎么挣钱的
  • 网站建设名广州市天河区住房和建设局网站
  • 云南省建设厅专家注册网站北京环球影城寄存柜
  • 免费做网站公司哪家好网站需要服务器吗
  • 秦皇岛网站seo外贸出口平台网站
  • 网站上线前准备方案网站建设的功能和定位
  • html5做的网站代码互联网保险经纪公司排名
  • 有没有帮人做数学题的网站tom企业邮箱官网
  • 上海做企业网站不要随意去注册一个公司
  • 湖南建设监理员报名网站网站建设如何排版
  • 年前做网站的好处王野天照片
  • 网站做什么推广好网页界面设计用什么软件
  • 适合女生做的网站主题幼儿活动设计方案模板
  • 用asp.net做的 购物网站视频旅游网站作用
  • 平面设计比较好的网站杭州营销网站建设平台
  • 数据做图网站有哪些内容教育行业怎么做网站投放
  • 查企业资质上什么网站移动wordpress加速
  • 什么地方可以做网站seo发帖论坛
  • 自建站模板后端开发工程师是做什么的
  • 网站服务器分流怎么做百度指数怎么做
  • 阿里巴巴免费做网站吗网页设计模板html代码表格
  • 2021建站公司档案安全网站安全建设
  • 网站后台用什么做服务器失信人信息查询
  • 织梦网站广告办公软件