峰度(Kurtosis)与偏态(Skewness)

本文介绍了峰度和偏态作为评估数据正态分布特性的关键指标,在应用ArcGIS克里格插值工具前的重要性。详细解释了峰度衡量数据分布的平坦度,而偏态则量度数据分布的对称性,并通过实例展示了采样数量对这两个指标的影响。

我们在应用ArcGIS提供的克里格(Kriging)插值工具之前,经常要对数据的分布情况进行考察,这是因为克里格插值的前提假设之一就是数据服从正态分布。峰度(Kurtosis)与偏态(Skewness)就是量测数据正态分布特性的两个指标。

(1)峰度(Kurtosis)

峰度衡量数据分布的平坦度(flatness)。尾部大的数据分布,其峰度值较大。正态分布的峰度值为3。其公式如下:

在这里插入图片描述

式中, K表示峰度(无量纲); i表示第 i个数值; xbar表示平均值; n是采样数量。
在这里插入图片描述

图 1

如图 1所示,黑线服从尖峰(leptokurtic)、厚尾(thick-tailed)分布的峰度值大于3。红线服从正态分布,峰度值等于3。

注意,个别的软件会将峰度值减3,ArcGIS默认正态分布的峰度为3。MS Excel的计算公式与上面略有不同。

(2)偏态(Skewness)

偏态量度对称性。0说明是最完美的对称性,正态分布的偏态就是0。如图2所示,右偏态为正,表明平均值大于中位数。反之为左偏态,为负。
在这里插入图片描述

图 2

偏态的计算公式如下:
在这里插入图片描述

式中, S表示偏度(无量纲);i 表示第 i个数值; xbar表示平均值; n是采样数量。

(3)采样数量对峰度和偏态的影响

在真实世界里,我们是不能获得全部数据的。那么,从局部已获得的采样点数据来推测整体就是现实最优的选择。下面举例说明,采样点数量对峰度和偏态的影响。

数据描述:有一列数据集,内含5000个数值,依次抽样数量从5个升至5000个随机抽取,每次抽取分为5次重复,计算N个抽样数量下的峰度和偏态的最大值、平均值、中位数和最小值。

表 一
在这里插入图片描述

如表一所示,采样数量从5至5000个,若以全部采样(5000)得到的峰度和偏度为真值,那么小于5000个采样的峰度和偏度对整体的估计就不一定很准确了。抽样数量为500时,峰度从2.9682~2.6704,偏度为0.1705到-0.0841,这与真值都相差较大,可能对真实的情况产生误导。由此发现,峰度和偏度的准确性非常依赖于采样的数量。因此,也有人对峰度和偏态量度数据分布的能力产生质疑。

即使是全部采样(数量为5000),又由于采样的序列不同,峰度和偏态也不相同,如表一黄色单元格。

注:理论上讲,标准正态分布偏度为0,峰度为3,但现实中数据无法满足标准正态分布,因而如果峰度绝对值小于10并且偏度绝对值小于3,则说明数据虽然不是绝对正态,但基本可接受为正态分布。说明数据基本可以接受为正态分布。

### 平坦度的概念及其在音频处理和信号处理中的意义 #### 定义背景 平坦度(Flatness)是一种用于描述信号分布特性的统计指标,广泛应用于音频处理、音乐分析以及一般的信号处理领域。它衡量了一个信号的能量分布在不同频率分量之间的均匀程度[^1]。具体来说,平坦度可以通过计算信号频谱的几何平均值算术平均值的比例来定义: \[ \text{Spectral Flatness} = \frac{\exp\left(\frac{1}{N}\sum_{i=1}^{N} \ln X_i\right)}{\frac{1}{N}\sum_{i=1}^{N} X_i} \] 其中 \(X_i\) 表示频谱的第 \(i\) 个幅值,\(N\) 是总频点数。 该公式的分子部分表示频谱的几何平均值,而分母则表示算术平均值。当频谱能量集中在少数几个频率成分时,平坦度接近零;而当能量均匀分布在所有频率成分上时,平坦度趋近于 1[^4]。 --- #### 在音频处理中的应用 在音频处理中,平坦度常被用来评估声音的“纯度”。例如: - **白噪声**具有较高的平坦度,因为它的能量在整个频谱范围内均匀分布。 - **正弦波**的平坦度较低,因为它几乎所有的能量都集中在一个特定的频率上[^2]。 此外,平坦度还可以帮助区分不同的声音类型。例如,在语音信号处理中,它可以作为特征之一用于分类或检测任务。通过结合其他特征(如共振峰位置、基频等),可以更全面地表征语音信号[^3]。 --- #### 编程实现 以下是使用 Python 的 `numpy` 和 `scipy` 库计算频谱平坦度的代码示例: ```python import numpy as np from scipy.fftpack import fft def spectral_flatness(signal, sampling_rate): """ 计算给定信号的频谱平坦度 参数: signal (array): 输入的一维时间序列信号 sampling_rate (int): 采样率 返回: float: 频谱平坦度 """ # 进行快速傅里叶变换 spectrum = np.abs(fft(signal)) # 只取一半的频谱(因实信号 FFT 后对称) N = len(spectrum) // 2 spectrum = spectrum[:N] # 计算几何平均值 geometric_mean = np.exp(np.mean(np.log(spectrum + 1e-8))) # 加一个小移防止 log(0) # 计算算术平均值 arithmetic_mean = np.mean(spectrum) # 计算平坦度 flatness = geometric_mean / arithmetic_mean return flatness # 示例调用 if __name__ == "__main__": fs = 44100 # 采样率 t = np.linspace(0, 1, fs) # 时间向量 sine_wave = np.sin(2 * np.pi * 440 * t) # 正弦波 white_noise = np.random.normal(size=len(t)) # 白噪声 print("正弦波的平坦度:", spectral_flatness(sine_wave, fs)) print("白噪声的平坦度:", spectral_flatness(white_noise, fs)) ``` 此代码实现了频谱平坦度的计算,并分别测试了正弦波和白噪声两种典型信号的情况。 --- #### 结论 平坦度是一个简单却强大的工具,能够有效反映信号频谱的能量分布特性。无论是用于音频质量评估还是辅助机器学习模型训练,它都能提供有价值的补充信息[^1]^。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值