📜  scipy stats.normaltest()函数| Python(1)

📅  最后修改于: 2023-12-03 14:47:18.516000             🧑  作者: Mango

Scipy.stats.normaltest()函数介绍

scipy.stats.normaltest()函数用于计算一组数据的法向性(normality),即数据是否符合正态分布。该函数使用了 D’Agostino 和 Pearson 的正态性检验方法。

函数定义
scipy.stats.normaltest(a, axis=0, nan_policy='propagate')

参数说明:

  • a:需要检验的数据
  • axis:计算法向性的轴,如果不指定,默认为计算整个数组的法向性
  • nan_policy:处理NaN值的方法,可以选择'propagate''raise''omit',默认为'propagate'

函数返回一个元组,包含两个值:

  • statistic:法向性检验的统计值(也称为K^2值),数值越大说明数据越不符合正态分布
  • pvalue:检验的双尾p值,p值越小说明数据越不符合正态分布
使用示例
import numpy as np
from scipy import stats

# 生成一个正态分布的数据
data = np.random.normal(0, 1, size=1000)

# 计算数据的法向性检验结果
statistic, pvalue = stats.normaltest(data)

# 输出结果
print(f"Normality test statistic: {statistic:.2f}")
print(f"p-value: {pvalue:.4f}")
if pvalue < 0.05:
    print("Data is not normally distributed")
else:
    print("Data is normally distributed")

输出结果:

Normality test statistic: 2.61
p-value: 0.2693
Data is normally distributed

在上面的示例中,我们使用np.random.normal()函数生成一个均值为0,标准差为1的正态分布数据,并使用stats.normaltest()函数检验数据是否符合正态分布。由于p值远大于0.05,因此可以认为数据是符合正态分布的。