如何在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),所以我们拒绝无效假设,即我们有足够的证据表明样本不是来自多元正态分布。