如何在 python 中执行多元正态性检验
当我们想要测试单个变量是否服从正态分布时,我们可以创建一个 QQ 图来可视化分布,或者我们可以执行正式的统计测试,例如Anderson Darling 测试或Jarque-Bera 测试。
然而,当我们想要测试多个变量作为一个组是否服从正态分布时,我们需要执行多元正态性检验。
本教程介绍如何在 Python 中对给定数据集执行 Henze-Zirkler 多元正态性检验。
相关:如果我们想在多变量环境中识别异常值,我们可以使用马氏距离。
示例:Python 中的 Henze-Zirkler 多元正态性检验
Henze-Zirkler 多元正态性检验确定一组变量是否遵循多元正态分布。检验的原假设和备择假设如下:
H 0 (空):变量服从多元正态分布。
H a (替代):变量不遵循多元正态分布。
要在 Python 中执行此测试,我们可以使用 penguin 库中的multivariate_normality()函数。
首先,我们需要安装企鹅:
pip install penguin
接下来,我们可以导入multivariate_normality()函数并使用它对给定数据集执行多元正态性检验:
#import necessary packages from penguin import multivariate_normality import pandas as pd import numpy as np #create a dataset with three variables x1, x2, and x3 df = pd.DataFrame({'x1':np.random.normal(size= 50 ), 'x2': np.random.normal(size= 50 ), 'x3': np.random.normal(size= 50 )}) #perform the Henze-Zirkler Multivariate Normality Test multivariate_normality(df, alpha= .05 ) HZResults(hz=0.5956866563391165, pval=0.6461804077893423, normal=True)
测试结果如下:
- 测试统计量Hz: 0.59569
- p 值: 0.64618
由于检验的 p 值不小于我们指定的 alpha 值 0.05,因此我们无法拒绝原假设。可以假设数据集遵循多元正态分布。
相关:在这篇研究论文中了解如何在现实世界的医疗应用中使用 Henze-Zirkler 测试。