如何在Python中进行多变量正态性测试

如何在Python中进行多变量正态性测试

在这篇文章中,我们将研究在Python中进行多变量正态性测试的各种方法。

多变量正态性检验是一种正态性检验,它确定给定的一组变量是否来自于正态分布。多变量正态性检验决定了一组变量是否遵循多变量正态分布。

multivariate_normality() 函数

在这种方法中,用户需要从pingouin库中调用带有所需参数的multivariate_normality()函数,在Python中对给定的数据进行多变量正态性检验。

安装pingouin库的语法:

pip install pingouin

语法: multivariate_normality(x,alpha)

参数:

  • X:形状的数据矩阵(n_samples,n_features)。
  • alpha:显著性水平。

返回值

  • hz:he Henze-Zirkler test statistic。
  • pval:P值。
  • normal: 如果X来自多变量正态分布,则为真。

这是一个假设检验,两个假设如下:

  • H0(接受):变量遵循多变量正态分布。(Po>0.05)
  • Ha(拒绝):变量不遵循多变量正态分布。

例1:在Python中对多元正态分布进行多变量正态性检验

在这个例子中,我们将简单地使用pingouin库中的multivariate_normality()函数,在python中对随机生成的有5个变量的100个数据点进行多变量正态性测试。

from pingouin import multivariate_normality
import pandas as pd
import numpy as np
data = pd.DataFrame({'a': np.random.normal(size=100),
                         'b': np.random.normal(size=100),
                         'c': np.random.normal(size=100),
                         'd': np.random.normal(size=100),
                         'e': np.random.normal(size=100)})
  
# perform the Multivariate Normality Test
multivariate_normality(data, alpha=.05)

输出:

HZResults(hz=0.7973450591569415, pval=0.8452549483161891, normal=True)

输出解释:

由于在上述例子中,P值为0.84,超过了阈值(0.5),也就是α(0.5),所以我们无法拒绝无效假设,也就是说,我们没有证据说样本遵循多元正态分布。

例2:在Python中对非多变量正态分布进行多变量正态性检验

在这个例子中,我们将简单地使用pingouin库中的multivariate_normality()函数,在python中对随机生成的有5个变量的100个数据点的数据激情分布进行多变量正态性测试。

from pingouin import multivariate_normality
import pandas as pd
import numpy as np
data = pd.DataFrame({'a':np.random.poisson(size=100),
                   'b': np.random.poisson(size=100),
                   'c': np.random.poisson(size=100),
                   'd': np.random.poisson(size=100),
                   'e':np.random.poisson(size=100)})
  
# perform the Multivariate Normality Test
multivariate_normality(data, alpha=.05)

HZResults(hz=7.4701896678920745, pval=0.00355552234721754, normal=False)

输出解释:

由于在上述例子中,P值为0.003,小于α(0.5),所以我们拒绝无效假设,即我们有足够的证据表明样本不是来自多元正态分布。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程