栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何计算歪斜和峰度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何计算歪斜和峰度

参考文献

  • 偏斜度
  • 色度

计算中
coskew

我对偏斜的解释是一个序列与另一个序列的方差之间的“相关性”。这样,根据我们要计算其方差的序列,实际上可以有两种类型的偏斜。维基百科显示了这两个公式

'left'


'right'




幸运的是,当我们计算倾斜矩阵时,一个是另一个的转置。

def coskew(df, bias=False):    v = df.values    s1 = sigma = v.std(0, keepdims=True)    means = v.mean(0, keepdims=True)    # means is 1 x n (n is number of columns    # this difference broacasts appropriately    v1 = v - means    s2 = sigma ** 2    v2 = v1 ** 2    m = v.shape[0]    skew = pd.Dataframe(v2.T.dot(v1) / s2.T.dot(s1) / m, df.columns, df.columns)    if not bias:        skew *= ((m - 1) * m) ** .5 / (m - 2)    return skew

示范

coskew(df)          a         ba -0.369380  0.096974b  0.325311  0.067020

我们可以对此进行比较

df.skew()
并检查对角线是否相同

df.skew()a   -0.36938b    0.06702dtype: float64

计算中
cokurtosis

我对色度的解释是以下两种之一

  1. 一个系列与另一个系列的偏斜之间的“相关性”
  2. 两个系列的方差之间的“相关性”

对于选项1,我们再次具有左右变体,它们在矩阵形式中是彼此的转置。因此,我们仅关注左侧变体。剩下的就是计算总共两个变体。

'left'
'middle'

def cokurt(df, bias=False, fisher=True, variant='middle'):    v = df.values    s1 = sigma = v.std(0, keepdims=True)    means = v.mean(0, keepdims=True)    # means is 1 x n (n is number of columns    # this difference broacasts appropriately    v1 = v - means    s2 = sigma ** 2    s3 = sigma ** 3    v2 = v1 ** 2    v3 = v1 ** 3    m = v.shape[0]    if variant in ['left', 'right']:        kurt = pd.Dataframe(v3.T.dot(v1) / s3.T.dot(s1) / m, df.columns, df.columns)        if variant == 'right': kurt = kurt.T    elif variant == 'middle':        kurt = pd.Dataframe(v2.T.dot(v2) / s2.T.dot(s2) / m, df.columns, df.columns)    if not bias:        kurt = kurt * (m ** 2 - 1) / (m - 2) / (m - 3) - 3 * (m - 1) ** 2 / (m - 2) / (m - 3)    if not fisher:        kurt += 3    return kurt

示范

cokurt(df, variant='middle', bias=False, fisher=False)          a        ba  1.882817  0.86649b  0.866490  1.63200cokurt(df, variant='left', bias=False, fisher=False)          a        ba  1.882817  0.19175b -0.020567  1.63200

对角线应等于

kurtosis

df.kurtosis() + 3a    1.882817b    1.632000dtype: float64


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号