偏度与峰度的标准误&Z-score

自IBM support 转载的一篇文章:
Standard errors of skewness and kurtosis are all the same for a set of variables

N = 样本数
偏度标准误 = 6*N*(N-1)/((N-2)*(N+1)*(N+3))
峰度标准误 = 4*(N**2 -1)*偏度标准误 /((N-3)*(N+5))

*原理暂时不清楚,总之知道这两个标准误之后可以求出对应的Z-score
偏度Z-score = 偏度/偏度标准误
峰度Z-score = 峰度/峰度标准误
α=0.05,abs(偏度Z-score) &abs(峰度Z-score) 均<1.96,则认为此分布服从正态分布

使用Python 绘制对应测试项并且在标题中标注出对应的z-score值的代码如下:

# 注意:R是dataframe,item为R中某一列的名称
def calculate_sk(item,R):
    data = R.loc[:,item]
    N = len(data)
    se_skew = 6*N*(N-1)/((N-2)*(N+1)*(N+3))
    se_kur = 4*(N*N -1)*se_skew/((N-3)*(N+5))
    skew = stats.skew(data,nan_policy = 'omit')/se_skew
    kurtosis =stats.kurtosis(data,nan_policy = 'omit')/se_kur
    fig = plt.figure(figsize=(10,8),facecolor='w',edgecolor='k',frameon=True)
    plt.subplot(111)
    plt.title(item+'    Skewness z-score is:{}, Kurtosis z-score is:{}'.format(skew,kurtosis))
    plt.hist(skew1,bins = 30,facecolor = 'darkblue',edgecolor = 'k',alpha = 0.3)
    plt.axvline(np.mean(data),ls = '-',c = 'blue',alpha = 0.5)

尝试使用此函数后结果如下:(item名称被我隐藏了)
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值