📜  如何在Python中执行多元正态性检验

📅  最后修改于: 2022-05-13 01:54:45.233000             🧑  作者: Mango

如何在Python中执行多元正态性检验

在本文中,我们将研究在Python中执行多元正态性检验的各种方法。

多元正态性检验是一种正态性检验,它确定给定的一组变量是否来自正态分布。多元正态性检验确定一组变量是否服从多元正态分布。

multivariate_normality()函数

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

安装 pingouin 库的语法:

pip install pingouin

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

  • H0(接受):变量服从多元正态分布..(Po>0.05)
  • Ha(拒绝):变量不服从多元正态分布。

示例 1: Python中多元正态分布的多元正态性检验

在此示例中,我们将简单地使用 pingouin 库中的 multivariate_normality()函数对Python中包含 100 个数据点和 5 个变量的随机生成数据进行多元正态性测试。

Python3
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)


Python3
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)


输出:

输出解释:

由于在上面的示例中,p 值为 0.84,大于阈值(0.5),即 alpha(0.5),因此我们无法拒绝零假设,即我们没有证据表明样本遵循多元正态分配。

示例 2: Python中非多元正态分布的多元正态性检验

在此示例中,我们将简单地使用 pingouin 库中的 multivariate_normality()函数对Python中包含 100 个数据点和 5 个变量的随机生成的数据热情分布进行多元正态性测试。

Python3

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)

输出解释:

由于在上面的示例中,p 值为 0.003,小于 alpha(0.5),因此我们拒绝原假设,即我们有足够的证据表明样本不是来自多元正态分布。