如果p[x]<0.05
,您可以假设列x
中的值不是正态分布的。因为使用正态性检验,零假设是总体呈正态分布。p<0.05,我们接受这个假设的可能性只有不到 5%,这在统计上是很低的。相反,当 p[i]>0.5 时,数据呈正态分布。您可以使用正态分布轻松测试它:
import pandas as pd
from scipy import stats
df = pd.DataFrame(np.random.normal(0,1,2100).reshape(100,21)) # dataset (100x21)
k2, p = stats.normaltest(df)
print (p)
输出是
[0.97228661 0.49017509 0.97373345 0.97404468 0.03498392 0.61963074
0.07712131 0.52632157 0.29887186 0.30822356 0.14416431 0.11015074
0.81773481 0.52919266 0.81859869 0.24855451 0.16817784 0.0117747
0.76860707 0.40384319 0.97038048]
其中大多数大于 0.05。
对于多元正态性检验,您可以尝试 Henze-Zirkler 检验:
import pingouin as pg
normal, p = pg.multivariate_normality(df, alpha=.05)
其中 .05 是显着值(您可以根据需要更改它,它不会影响您获得的 p 值。)