Scipy 显著性检验


Scipy 显著性检验说明文档

Scipy 是一个强大的开源 Python 科学计算库。其中,显著性检验是其非常重要的功能之一,可以用于测试某些假设是否成立。本文将简要介绍Scipy 中显著性检验的相关概念、常用方法和代码示例。

概念

显著性检验是通过样本数据来判断总体是否具有特定的性质。它在数据分析、科学研究、金融分析、医疗统计等领域广泛应用。显著性检验可以检验某个假设是否成立,其基本思想是先根据现有的样本数据计算出一个统计量,然后根据统计量和抽取样本的假设,确定一个显著性水平,如果显著性水平低于某个临界值,就可以拒绝置信区间内的假设。

常用方法

单样本T检验

t检验是一种用于检验总体均值是否与某个特定值相等的方法,它适用于总体是正态分布的情况。单样本 T 检验的计算过程如下:

  1. 设总体均值为 $\mu$;

  2. 提取样本并获取样本平均值 $x$和标准差 $s$;

  3. 计算$t$值:$t=\frac{x-\mu}{\frac{s}{\sqrt{n}}}$;

  4. 选择显著水平 $\alpha$,确定自由度 $n-1$时的临界值(比如:$t(n-1,\alpha/2)$);

  5. 判断$t$值是否在拒绝域,如果在,则拒绝原假设。

在Scipy中,可以使用 ttest_1samp() 来执行单样本T检验:

from scipy import stats
import numpy as np

# 随机生成一个正态分布的数据集
dataset = np.random.normal(loc=5, scale=10, size=100)

# 进行单样本t检验
t_statistic, p_value = stats.ttest_1samp(dataset, 6)

# 输出t值和p值
print("t_statistic: %.3f, p_value: %.3f" % (t_statistic, p_value))

独立样本T检验

t检验也可以用于检验两个样本的均值是否相等(双样本T检验),当样本之间不存在任何关联性时,可使用独立样本T检验。在进行两个独立样本T检验时,其计算过程与单样本T检验类似。

在Scipy中,可以使用 ttest_ind() 来执行独立样本T检验:

from scipy import stats
import numpy as np

# 随机生成两个正态分布的数据集
dataset1 = np.random.normal(loc=5, scale=10, size=100)
dataset2 = np.random.normal(loc=8, scale=10, size=100)

# 进行独立样本t检验
t_statistic, p_value = stats.ttest_ind(dataset1, dataset2)

# 输出t值和p值
print("t_statistic: %.3f, p_value: %.3f" % (t_statistic, p_value))

配对样本T检验

针对相关样本,可以使用配对样本T检验。在Scipy中,可以使用 ttest_rel() 来执行配对样本T检验。

from scipy import stats
import numpy as np

# 构造相关数据集
dataset1 = np.array([0.28, 0.29, 0.32, 0.33, 0.34, 0.36, 0.39, 0.40])
dataset2 = np.array([0.31, 0.32, 0.32, 0.33, 0.35, 0.37, 0.38, 0.41])

# 进行配对样本t检验
t_statistic, p_value = stats.ttest_rel(dataset1, dataset2)

# 输出t值和p值
print("t_statistic: %.3f, p_value: %.3f" % (t_statistic, p_value))

卡方检验

卡方检验用于检验两个分类变量之间是否存在统计学上的关系。在Scipy中可以使用 chi2_contingency() 函数来执行卡方检验。该函数接受一个二维数组作为输入,其中行代表一个变量的各个类别,列代表另一个变量的各个类别。例如下面的例子:

# 构造一个二维数组
data = np.array([[10, 20, 30], [6, 9, 17]])

# 执行卡方检验
chi_statistic, p_value, degrees_of_freedom, expected = stats.chi2_contingency(data)

# 输出卡方值和p值
print("chi_statistic: %.3f, p_value: %.3f" % (chi_statistic, p_value))

结论

Scipy提供了许多有效的方法和函数来进行显著性检验。本文介绍了单样本T检验、独立样本T检验、配对样本T检验和卡方检验的常见方法及代码示例。建议在应用Scipy进行显著性检验时,首先确定问题及其类型,再选择合适的方法实现。