如何在 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 测试。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注