• 计算 Mardia 的多变量偏度和峰度系数以及它们相应的统计检验。 对于大样本量，多元偏度渐近分布为卡方随机变量； 此处针对小样本量进行了校正。 同样，多元峰度它作为单位正态分布。 输入： X - 多元数据矩阵 [矩阵... matlab
• c#
• 峰度：概率密度在均值处峰值高低的特征 python计算数据均值、标准差、偏度、峰度： import numpy as np from scipy import stats x = np.random.randn(10000) mu = np.mean(x, axis=0) sigma = np.std(x, axis=0) ...
• 基于matlab的图像峰度计算函数，可运行。基于matlab的图像峰度计算函数，可运行。 matlab 峰度
• 此 m 文件返回具有尺度 (A>0) 和形状 (B>0) 参数的 Weibull 分布的偏度、峰态和峰态超量。... 语法：function [s,k,e] = wblskekur(a,b) 输入： a - 尺度参数b - 形状参数输出： s - 偏度k - 峰态e - 峰度过剩 matlab
• 在某些科学著作中，一旦从感兴趣的人群中收集数据，通常很难了解数据以无组织方式呈现时的含义。 将原始数据组合成有意义的形式，例如频率分布，可以使数据更容易理解和解释。... 峰度计算使用公式， g2 = m4 matlab
• 偏度和峰度能够较好地表达高光谱图像的非高斯性，突出目标、纹理等异常信息，很好地应用于波段选择。为了更好地突出局部异常信息，在全局联合偏度-峰度指数模型基础上，提出了局部偏度-峰度的高光谱图像波段选择方法...
• 峰度过高 [学生t]（ 学生t_distribution）分布。 [学生t]（ 学生t_distribution）随机变量的为 v > 0是分布的自由度。 对于任何v <= 2 ，是不确定的。 在这种情况下，此模块将返回NaN。 安装 $npm install ... JavaScript • 峰度过高 分布。 随机变量的为 其中k > 0是自由度。 安装$ npm install distributions-chisquare-ekurtosis 要在浏览器中使用，请使用 。 用法 var ekurtosis = require ( 'distributions-chisquare-ekurtosis... JavaScript
• 在本文中，我们通过联合利用带通域中峰度的分段平稳性和正则性质，提出了一种用于自然图像的噪声级估计方法。 我们设计了一种基于K均值的算法，将图像自适应地划分为一系列不重叠的区域，每个区域的干净版本均假定... 研究论文
• 此 m 文件返回具有概率参数 P 的几何分布的偏度、峰态和峰态超量。S、K 和 E 是输入参数的大小。 语法：函数 [s,k,e] = geoskekur(p) 输入： p - 概率参数输出： s - 偏度k - 峰态e - 峰度过剩 matlab
• matlab
• 研究论文
• 此函数处理关于偏度和峰度的单变量假设检验。 它需要输入数据向量、测试方向（1 = 单尾；2 = 双尾）[默认值 = 2] 和显着性水平（默认值 = 0.05）。它立即输出，对于单尾假设是否或没有满足向左或向右的偏度。 以及... matlab
• 该文件实现了用于盲源分离的多用户峰度算法（有关该方法的更多详细信息，请参见 ）。 压缩文件包含： - one_shot.m 脚本文件- MUK_algorithm.m 函数 one_shot.m 文件说明了使用 QPSK 调制的简单 MIMO 通信算法... matlab
• matlab偏度和峰度代码最大熵 此文件夹包含 Matlab 代码，开发用于查找拉格朗日乘法器，以拟合具有最大信息熵的分布。 它使用数据的均值、方差、偏度和峰度作为约束来找到分布。
• 峰度和偏度

千次阅读 2021-04-22 13:54:49

峰度和偏度

峰度(kurtosis)和偏度(skewness)

这是一个应用统计资料分佈的峰度(kurtosis)和偏度(skewness)所作的交易策略。当资料呈现趋势性，并且潜在趋势为正时，我们做多。当资料呈现趋势性，并且潜在趋势为负时，我们做空。当趋势发生反转后，我们平仓。

那么，我们如何确定趋势和趋势的强度呢？让我们先来复习一下峰度和偏度的定义。

首先来看常态分佈 (normal distribution)的定义

分佈 (distribution)：变项中所有数值出现次数的分佈情形，以横轴为变项数值，纵轴为出现频率的座标图呈现。常态分佈：又称高斯分佈 (Gaussian distribution)

标准常态分佈：以平均值 (mean) 为中心，标准差 (standard deviation) 为座标轴之基本单位所绘之常态分佈图。 形状为覆钟形的对称图形。

m ± 1s含有整个样本群之 68.26% 的个体。

m ± 2s含有整个样本群之 95.44% 的个体。

m ± 3s含有整个样本群之 99.74% 的个体。

95% 个体落在 m ± 1.96s 之间。

99% 的个体落在 m ± 2.58s 之间。 在统计学中，峰度(Kurtosis)衡量实数随机变量机率分布的峰态。峰度高就意味着方差增大是由低频度的大于或小于平均值的极端差值引起的。

峰度(kurtosis)，是描绘一组资料的分佈形态的陡峭程度的统计量。常态分佈的峰度为3，所以我们把峰度大于3的称作尖峰，表示资料的分佈比常态分佈更集中和陡峭。我们把峰度小于3的作为平峰型，表示资料分佈比之正态分佈更为平滑。这里我们所指的是真实峰度减去3之后的值。在金融市场，峰度大于0表现为无趋势(sideway market)，峰度小于0表现为趋势市(trending market)。

偏度(skewness)描绘的是资料分佈的对称性，或者说是资料中众数(mode)的位置。偏度等于0刻画的是完美的对称性。这个统计量同样需要和常态分佈比较：偏度大于0表明和常态分佈相比，该阵列呈现右偏，表现为右部的长尾并且极端值较多分佈于右部；反之为左偏，表现为左部的长尾并且极端值较多分佈于左部。在金融市场，偏度大于0可以解释为资料倾向于彙聚成向上的趋势，偏度小于0可以解释为资料倾向于彙聚成下降的趋势。

在机率论和统计学中，偏度衡量实数随机变量机率分布的不对称性。偏度的值可以为正，可以为负或者甚至是无法定义。在数量上，偏度为负(负偏态)就意味着在机率密度函数左侧的尾部比右侧的长，绝大多数的值(包括中位数在内)位于平均值的右侧。偏度为正(正偏态)就意味着在机率密度函数右侧的尾部比左侧的长，绝大多数的值(包括中位数在内)位于平均值的左侧。偏度为零就表示数值相对均匀地分布在平均值的两侧，但不一定意味着其为对称分布。

偏度分为两种：

负偏态或左偏态：左侧的尾部更长，分布的主体集中在右侧。

正偏态或右偏态：右侧的尾部更长，分布的主体集中在左侧。

如果分布对称，那么平均值=中位数，偏度为零(此外，如果分布为单峰分布，那么平均值=中位数=众数)。 因此，我们得出以下的交易法则：

当峰度小于0(市场处于趋势市)，偏度大于N(趋势为上升)，做多；

当峰度小于0(市场处于趋势市)，偏度小于M(趋势为下降)，做空；

MATLAB 源码： 有兴趣的可以转换为JS 语言试试。

input:ExitType(5) ;

vars: IsBalanceDay(False),MP(0),PF(0),PL(0),HLRange(100);

inputs:Length(20),Trigger(3),UpSkew(3.4),DownSkew(2.2) ;

MP = MarketPosition ;

if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;

{计算峰度 }

KurtValue = Kurtosis(Close,Length) ;

{计算偏度}

SkewValue = Skew(Close,Length) ;

{ 峰度向下跌破 Trigger 线 ,建立买卖点 }

if KurtValue Cross under Trigger then Begin

SellPoint = Low-3;

end;

{ 偏度大于某数值后 ,趋势确认进场作多 }

if SkewValue > -UpSkew 2 then Buy next bar at BuyPoint stop ;

{ 偏度小于某数值后 ,趋势确认进场作空 }

if SkewValue < -DownSkew 2 then Sell next bar at SellPoint Stop ;

end;

if ExitType = 1 then SetStopLoss(PL * BigPointValue) ;

if ExitType = 2 then Begin

SetStopLoss(PL * BigPointValue) ;

setProfitTarget(PF * BigPointValue) ;

end;

if ExitType = 3 then Begin

if MP > 0 and BarsSinceEntry = NBarL then ExitLong next bar at Market ;

if MP < 0 and BarsSinceEntry = NBarS then ExitShort next bar at Market ;

end;

if ExitType = 4 then Begin

SetStopLoss(PL * BigPointValue) ;

setProfitTarget(PF * BigPointValue) ;

if MP > 0 and BarsSinceEntry = NBarL then {Sell } ExitLong next bar at Market ;

if MP < 0 and BarsSinceEntry = NBarS then {Buy} ExitShort next bar at Market ;

end;

if ExitType = 5 then Begin

{*******************************************************************

Description : ATR Trailing Stop Long Exit

Provided By : Omega Research, Inc. (c) Copyright 1999

********************************************************************}

{Inputs: ATRs_L(3);}

Variables: PosHigh(0), ATRVal_L(0);

ATRVal_L = AvgTrueRange(10) * ATRs_L;

If BarsSinceEntry = 0 Then PosHigh = High;

If MarketPosition = 1 Then Begin

If High > PosHigh Then PosHigh = High;

ExitLong ("ATR") Next Bar at PosHigh - ATRVal_L Stop;

End else ExitLong ("ATR eb") Next bar at High - ATRVal_L Stop;

{*******************************************************************

Description : ATR Trailing Stop Short Exit

Provided By : Omega Research, Inc. (c) Copyright 1999

******************************************************************}

{Inputs: ATRs_S(3);}

Variables: PosLow(0), ATRVal_S(0);

ATRVal_S = AvgTrueRange(10) * ATRs_S;

If BarsSinceEntry = 0 Then PosLow = Low;

If MarketPosition = -1 Then Begin

If Low < PosLow Then PosLow = Low;

ExitShort ("ATR_1") Next Bar at PosLow ATRVal_S Stop;

End else ExitShort ("ATR_1 eb") Next bar at Low ATRVal_S Stop;

end;

if IsBalanceDay then setExitonClose ;

转载自 faruto的博客

展开全文 • 独立成分分析中的峰度优化，葛菲，马尽文，独立成分分析是解决盲信号分离问题的一种有效方法。它的求解方式可以从不同的角度出发，将独立性判断准则转变成可优化的目标函数
• 论文研究-基于峰度法的POT模型对沪深股市极端风险的度量.pdf, 基于VaR正态性假设导致的尾部风险低估问题, 研究极值POT模型,并针对样本平均函数法在某些数据结构下失效的...
• matlab
• matlab开发-扩散峰度成像仪。基于Tabesh等人的DWI数据的扩散张量和参数估计。（2011）
• 1 , 使用pandas计算的偏度与峰度(无偏):') s=pd.Series(x) # 使用pandas计算的偏度与峰度(无偏) print('偏度 = ',s.skew(),'峰度:',s.kurt()) # 计算偏度和峰度 elif parm == 0: # 使用stats计算的偏度与峰度(有偏) ...

pandas库

样本方差无偏估计：

$$\frac{1}{n-1}\sum_{i=1}^{n}\left(x_i-\bar{x}\right)^2$$

偏度无偏估计：

$$g_1=\frac{k_3}{k_2^{\frac{3}{2}}}=\frac{n^2}{\left(n-1\right)\left(n-2\right)}\frac{m_3}{s^3}=\frac{n^2}{\left(n-1\right)\left(n-2\right)}\frac{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^3}}{{\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}{(x_i-\overline{x})^2}}}^3}=\frac{\sqrt{n\left(n-1\right)}}{\left(n-2\right)}\frac{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^3}}{{\sqrt{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^2}}}^3}$$

峰度无偏估计： stats库

偏度有偏估计：

$$b_1=\frac{m_3}{s^3}=\frac{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^3}}{{\sqrt{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^2}}}^3}$$

峰度有偏估计：

$$g_2=\frac{m_4}{m_2^2}-3=\frac{\frac{1}{n}\sum_{i-1}^{n}{(x_i-\overline{x})^4}}{(\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^2})^2}-3$$

原始定义

偏度

$$b_1=\frac{m_3}{s^3}=\frac{\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^3}}{{\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}{(x_i-\overline{x})^2}}}^3}$$

峰度

$$g_2=\frac{m_4}{m_2^2}-3=\frac{\frac{1}{n}\sum_{i-1}^{n}{(x_i-\overline{x})^4}}{(\frac{1}{n}\sum_{i=1}^{n}{(x_i-\overline{x})^2})^2}-3$$

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import pandas as pd # pandas是科学计算的库，主要用于数据分析

import numpy as np # 导包

from scipy import stats # scipy是开源数值计算，科学与工程应用的开源库 (scipy.stats)主要用于统计

#偏度与峰度

x=[53, 61, 49, 66, 78, 47] # 列表[1,6]

n = len(x) # n为x中数据个数

######## 使用pandas计算偏度与峰度

s=pd.Series(x)#将列表x转换为pandas中的Series，其实就相当于一维的矩阵

print('***************使用pandas计算的偏度与峰度(无偏)***************')

print('偏度 = ',s.skew(),'峰度:',s.kurt()) # 计算偏度和峰度

print()

######## 使用stats计算偏度与峰度

print('***************使用stats计算的偏度与峰度(有偏)***************')

skew=stats.skew(x)#使用stats计算偏度

kurtosis = stats.kurtosis(x)#使用stats计算峰度

print('偏度 =',skew,'峰度 =',kurtosis)

print()

######## 使用文本中公式计算的偏度与峰度

print('***************使用文本中公式计算的偏度与峰度***************')

R_mean = np.mean(x) # 均值

R_var = np.var(x,ddof = 1) # 方差(除以n-1)

R_var1 = np.var(x) # 方差(除以n)

R_sc = np.mean((x - R_mean)** 3)/(R_var**3)**.5 #偏度使用除以n-1的方差

R_ku = np.mean((x - R_mean)**4)/R_var1**2-3 #峰度使用除以n的方差

print('偏度 =',R_sc,'峰度 =',R_ku)

###### 此部分可用于验证pandas的计算结果 ######

# R_sc = 30**0.5*np.mean((x - R_mean)**3)/(R_var1**3)**.5 /4# 偏度

# R_ku = (n+1)*n/(n-1)/(n-2)/(n-3)*sum((x - R_mean)**4)/(R_var**2)-3*(n-1)*(n-1)/(n-2)/(n-3) # 峰度

# print([R_sc, R_ku])#输出偏度、峰度

###################################################################

######################设置参数计算有偏和无偏#########################

###################################################################

print()

print('###################################################################')

print('######################设置参数计算有偏和无偏#########################')

print('###################################################################')

def skewAndkurt(x,parm):

'''

parm = 2: 使用文本中公式计算的偏度与峰度(有偏)

parm = 1: 使用pandas计算的偏度与峰度(无偏)

parm = 0: 使用stats计算的偏度与峰度(有偏)

'''

if parm == 2:

print('parm = 2 , 使用文本中公式计算的偏度与峰度(有偏):')

R_mean = np.mean(x) # 均值

R_var = np.var(x,ddof = 1) # 方差(除以n-1)

R_var1 = np.var(x) # 方差(除以n)

R_sc = np.mean((x - R_mean)** 3)/(R_var**3)**.5 #偏度使用除以n-1的方差

R_ku = np.mean((x - R_mean)**4)/R_var1**2-3 #峰度使用除以n的方差

print('偏度 =',R_sc,'峰度 =',R_ku)

if parm == 1:

print('parm = 1 , 使用pandas计算的偏度与峰度(无偏):')

s=pd.Series(x) # 使用pandas计算的偏度与峰度(无偏)

print('偏度 = ',s.skew(),'峰度:',s.kurt()) # 计算偏度和峰度

elif parm == 0: # 使用stats计算的偏度与峰度(有偏)

print('parm = 0 , 使用stats计算的偏度与峰度(有偏):')

skew=stats.skew(x) # 使用stats计算偏度

kurtosis = stats.kurtosis(x)#使用stats计算峰度

print('偏度 =',skew,'峰度 =',kurtosis)

parm = 0

skewAndkurt(x,0)

print()

parm = 1

skewAndkurt(x,1)

print()

parm = 2

skewAndkurt(x,2)

展开全文 • 偏度和峰度描述什么数据科学，机器学习(Data Science, Machine Learning) In this article, we will go through two of the important concepts in descriptive statistics — Skewness and Kurtosis. At the end of...

偏度和峰度描述什么

数据科学，机器学习(Data Science, Machine Learning)

In this article, we will go through two of the important concepts in descriptive statistics — Skewness and Kurtosis. At the end of the article, you will have answers to the questions such as what is skewness & kurtosis, right/left skewness, how skewness & kurtosis are measured, how it is useful, etc.

在本文中，我们将介绍描述性统计中的两个重要概念-偏度和峰度。 在本文的结尾，您将获得以下问题的答案，例如什么是偏度和峰度，右/左偏度，如何测量偏度和峰度，如何使用等等。

偏度 (Skewness)

‘Skewness’ is a measure of the asymmetry of the probability distribution of a real-valued random variable.

“偏度”是对实值随机变量的概率分布的不对称性的度量。

负偏度 (Negative Skewness)

The data concentrated more on the right of the figure as you can see below. So there is a long tail on the left side. It is also called as left-skewed or left-tailed.

数据更加集中在该图的右侧，如下所示。 因此，左侧有一条长长的尾巴。 也称为左偏或左尾。

正偏度 (Positive Skewness)

The data concentrated more on the left of the figure as you can see below. So there is a long tail on the right side. It is also called as right-skewed or right-tailed.

数据更加集中在图的左侧，如下所示。 因此，右侧有一条长长的尾巴。 也称为右偏或右尾。

如何解释偏度(How to interpret skewness)

A rule of thumb says:

经验法则说：

• If the skewness is between -0.5 and 0.5, the data are fairly symmetrical (normal distribution).

如果偏度在-0.5到0.5之间，则数据是相当对称的(正态分布)。
• If the skewness is between -1 and -0.5(negatively skewed) or between 0.5 and 1(positively skewed), the data are moderately skewed.

如果偏斜度在-1和-0.5之间(负偏度)或0.5和1之间(正偏度)，则数据偏斜。
• If the skewness is less than -1(negatively skewed) or greater than 1(positively skewed), the data are highly skewed.

如果偏斜度小于-1(负偏度)或大于1(正偏度)，则数据高度偏斜。

If the data follow normal distribution, its skewness will be zero. But in real world, we don’t find any data which perfectly follows normal distribution. So, for any real world data we don’t find exact zero skewness but it can be close to zero.

如果数据遵循正态分布，则其偏斜度将为零。 但是在现实世界中，我们找不到完全符合正态分布的数据。 因此，对于任何现实世界的数据，我们都找不到精确的零偏度，但它可能接近零。

为什么要研究偏度 (Why study skewness)

Consider the below example. Here total_bill is positively skewed and data points are concentrated on the left side. If we were to build the model on this, the model will make better predictions where total_bill is lower compared to higher total_bill.

考虑下面的例子。 这里total_bill正偏，数据点集中在左侧。 如果我们要以此为基础构建模型，则与更高的total_bill相比， total_bill较低的模型将做出更好的预测。

Skewness tells us about the direction of the outlier. From the above distribution, we can clearly say that outliers are present on the right side of the distribution.

偏度告诉我们异常值的方向。 从上面的分布中，我们可以清楚地说出异常值出现在分布的右侧。

如何处理偏斜的数据 (How to deal with skewed data)

Many statistical tests and machine learning models depend on normality assumptions. So, significant skewness means that data is not normal and that may affect your statistical tests or machine learning prediction power. In such cases, we need to transform the data to make it normal. Some of the common techniques used for treating skewed data:

许多统计测试和机器学习模型都依赖于正态性假设。 因此，严重偏斜意味着数据不正常，并且可能会影响您的统计测试或机器学习预测能力。 在这种情况下，我们需要转换数据以使其正常。 用于处理偏斜数据的一些常用技术：

• Log transformation

日志转换
• Square root transformation

平方根变换
• Power transformation

动力转换
• Exponential transformation

指数变换
• Box-Cox transformation, etc

Box-Cox转换等

In the below example, we will look at the tips dataset from the Seaborn library. As we can see, total_bill has a skewness of 1.12 which means it is highly skewed. It is also visible from the distribution plot that data is positively skewed. After the log transformation of total_bill, skewness is reduced to -0.11 which means is fairly symmetrical.

在下面的示例中，我们将查看Seaborn库中的tips数据集。 如我们所见， total_bill的偏斜度为1.12，这意味着高度偏斜。 从分布图中还可以看出，数据正偏。 经过total_bill对数转换后，偏斜度减小到-0.11，这意味着相当对称。

峰度 (Kurtosis)

‘Kurtosis’ is a measure of ‘tailedness’ of the probability distribution of a real-valued random variable. It is generally used to identify outliers (extreme values) in the given dataset. Since it is used for identifying outliers, extreme values at both ends of tails are used for analysis.

“峰度”是对实值随机变量的概率分布的“尾部”度量。 通常用于标识给定数据集中的异常值(极值)。 由于用于识别离群值，因此使用尾部两端的极值进行分析。

峰态的类型以及如何解释 (Types of Kurtosis and how to interpret)

1. Mesokurtic (Kurtosis = 3) — This distribution shows kurtosis of 3 near zero. The distribution of extreme values (outliers) is similar to that of normal distribution.

Mesokurtic(峰度= 3)-此分布显示峰度3接近零。 极值(离群值)的分布与正态分布相似。

2. Leptokurtic (Kurtosis > 3) — This distribution shows greater kurtosis than mesokurtic. The peak is higher and sharper than Mesokurtic. It shows heavy tails on either side that indicates large outliers. In the investment world, a leptokurtic distribution means that it is a high-risk investment.

Leptokurtic(Kurtosis> 3)-这种分布显示出比Mekokurtic更大的峰度。 该峰比中胚层更高且更尖锐。 它的两边都有粗尾，表明离群值较大。 在投资世界中，Leptokurtic发行意味着它是高风险的投资。

3. Platykurtic: (Kurtosis < 3) — This distribution shows lower kurtosis than mesokurtic. The peak is lower and broader than Mesokurtic. It shows flat tails on either side indicating small outliers. In the investment world, a platykurtic distribution means that it is a low-risk investment.

侧柏：(Kurtosis <3)-此分布显示峰度比中侧偏低。 该峰比中胚层低且宽。 它的两侧均显示平坦的尾巴，表示离群值较小。 在投资世界中，platykurtic发行意味着它是一种低风险的投资。

Below example shows how to calculate kurtosis:

下面的示例显示如何计算峰度：

偏度和峰度描述什么

展开全文  python  ...