Python中常用的统计检验代码分享

 更新时间:2024年01月31日 10:40:14   作者:Sitin涛哥  
统计检验是数据分析中的重要工具,用于检验数据集中的差异、关联和分布等统计性质,本文为大家整理了常见的统计检验方法,希望对大家有所帮助

统计检验是数据分析中的重要工具,用于检验数据集中的差异、关联和分布等统计性质。Python 提供了丰富的库和函数,用于执行各种统计检验。本文将介绍常见的统计检验方法,并提供详细的示例代码,帮助大家了解如何在 Python 中执行这些检验。

t 检验

t 检验是一种用于比较两组数据均值是否存在显著差异的方法。在 Python 中,可以使用 scipy.stats 模块进行 t 检验。

import scipy.stats as stats

# 生成两组样本数据
data1 = [25, 30, 35, 40, 45]
data2 = [30, 32, 35, 38, 42]

# 执行独立样本 t 检验
t_stat, p_value = stats.ttest_ind(data1, data2)
print("t 统计量:", t_stat)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,生成了两组样本数据 data1 和 data2,然后使用 ttest_ind 函数执行独立样本 t 检验。最后,根据 p 值的大小判断差异是否显著。

卡方检验

卡方检验用于比较观察频数与期望频数之间的差异,通常用于分析分类数据。在 Python 中,可以使用 scipy.stats 模块执行卡方检验。

import scipy.stats as stats

# 创建观察频数表
observed = [[30, 15], [25, 20]]

# 执行卡方检验
chi2, p_value, _, _ = stats.chi2_contingency(observed)
print("卡方统计量:", chi2)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,创建了一个观察频数表 observed,然后使用 chi2_contingency 函数执行卡方检验。最后,根据 p 值的大小判断差异是否显著。

Pearson 相关系数

Pearson 相关系数用于衡量两个连续变量之间的线性相关性。在 Python 中,可以使用 scipy.stats 模块计算 Pearson 相关系数。

import scipy.stats as stats

# 创建两组连续变量数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 6]

# 计算 Pearson 相关系数
correlation, _ = stats.pearsonr(x, y)
print("Pearson 相关系数:", correlation)

if abs(correlation) > 0.7:
    print("线性相关性强")
else:
    print("线性相关性弱")

在上面的示例中,创建了两组连续变量数据 x 和 y,然后使用 pearsonr 函数计算它们之间的 Pearson 相关系数。最后,根据相关系数的大小判断线性相关性的强弱。

单样本 t 检验

单样本 t 检验用于比较单个样本的均值与已知均值之间是否存在显著差异。在 Python 中,可以使用 scipy.stats 模块执行单样本 t 检验。

import scipy.stats as stats

# 单样本数据
data = [28, 30, 29, 32, 31]

# 已知均值
known_mean = 30

# 执行单样本 t 检验
t_stat, p_value = stats.ttest_1samp(data, known_mean)
print("t 统计量:", t

_stat)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,有一个单样本数据集 data 和一个已知的均值 known_mean,然后使用 ttest_1samp 函数执行单样本 t 检验,判断样本均值是否显著不同于已知均值。

Wilcoxon 符号秩检验

Wilcoxon 符号秩检验用于比较两组配对样本的差异,通常用于非正态分布数据。在 Python 中,可以使用 scipy.stats 模块执行 Wilcoxon 符号秩检验。

import scipy.stats as stats

# 创建两组配对样本数据
before = [28, 30, 29, 32, 31]
after = [27, 29, 28, 31, 30]

# 执行 Wilcoxon 符号秩检验
w_stat, p_value = stats.wilcoxon(before, after)
print("Wilcoxon 符号秩统计量:", w_stat)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,创建了两组配对样本数据 before 和 after,然后使用 wilcoxon 函数执行 Wilcoxon 符号秩检验,判断两组样本的差异是否显著。

ANOVA

ANOVA(方差分析)用于比较多组样本均值之间是否存在显著差异。在 Python 中,可以使用 scipy.stats 模块执行单因素 ANOVA。

import scipy.stats as stats

# 创建多组样本数据
group1 = [65, 68, 72, 70, 74]
group2 = [58, 63, 65, 61, 59]
group3 = [72, 70, 75, 71, 73]

# 执行单因素 ANOVA
f_stat, p_value = stats.f_oneway(group1, group2, group3)
print("F 统计量:", f_stat)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,创建了三组样本数据 group1、group2 和 group3,然后使用 f_oneway 函数执行单因素 ANOVA,判断多组样本均值是否存在显著差异。

Kolmogorov-Smirnov 检验

Kolmogorov-Smirnov 检验用于比较两组数据的分布是否相同。在 Python 中,可以使用 scipy.stats 模块执行 Kolmogorov-Smirnov 检验。

import scipy.stats as stats

# 创建两组数据
data1 = [0.1, 0.2, 0.3, 0.4, 0.5]
data2 = [0.2, 0.3, 0.4, 0.5, 0.6]

# 执行 Kolmogorov-Smirnov 检验
ks_stat, p_value = stats.ks_2samp(data1, data2)
print("KS 统计量:", ks_stat)
print("p 值:", p_value)

if p_value < 0.05:
    print("差异显著")
else:
    print("差异不显著")

在上面的示例中,创建了两组数据 data1 和 data2,然后使用 ks_2samp 函数执行 Kolmogorov-Smirnov 检验,判断两组数据的分布是否相同。

Shapiro-Wilk 正态性检验

Shapiro-Wilk 正态性检验用于检验数据是否符合正态分布。在 Python 中,可以使用 scipy.stats 模块执行 Shapiro-Wilk 正态性检验。

import scipy.stats as stats

# 创建样本数据
data = [2.3, 3.```python
7, 4.5, 6.8, 5.1, 8.2]

# 执行 Shapiro-Wilk 正态性检验
statistic, p_value = stats.shapiro(data)
print("Shapiro-Wilk 统计量:", statistic)
print("p 值:", p_value)

if p_value < 0.05:
    print("不符合正态分布")
else:
    print("符合正态分布")

在上面的示例中,创建了一个样本数据集 data,然后使用 shapiro 函数执行 Shapiro-Wilk 正态性检验,判断数据是否符合正态分布。

线性回归

线性回归用于建立连续自变量与连续因变量之间的线性关系模型。在 Python 中,可以使用 scipy.stats 模块执行线性回归分析。

import scipy.stats as stats

# 创建自变量和因变量数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 6]

# 执行线性回归分析
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
print("斜率:", slope)
print("截距:", intercept)
print("相关系数:", r_value)
print("p 值:", p_value)

if p_value < 0.05:
    print("回归模型显著")
else:
    print("回归模型不显著")

在上面的示例中,创建了自变量数据 x 和因变量数据 y,然后使用 linregress 函数执行线性回归分析,得到回归方程的斜率、截距、相关系数和 p 值。

分位数回归

分位数回归用于建立分位数与自变量之间的关系模型,通常用于处理异方差性或离群值较多的数据。在 Python 中,可以使用 statsmodels 库执行分位数回归分析。

import statsmodels.api as sm

# 创建自变量和因变量数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 6]

# 添加常数项
x = sm.add_constant(x)

# 执行分位数回归分析
quantiles = [0.25, 0.5, 0.75]
for q in quantiles:
    model = sm.QuantReg(y, x)
    result = model.fit(q=q)
    print(f"分位数 {q}:")
    print(result.summary())

在上面的示例中,创建了自变量数据 x 和因变量数据 y,然后使用 sm.QuantReg 类执行分位数回归分析,得到不同分位数下的回归结果。

这些是常见的统计检验方法和回归分析方法的示例代码,可以帮助进行数据分析和统计建模。根据不同的需求和数据类型,选择合适的方法进行分析和假设检验,以获得有意义的结果。

以上就是Python中常用的统计检验代码分享的详细内容,更多关于Python统计检验的资料请关注脚本之家其它相关文章!

相关文章

  • Anaconda最新版2023安装教程Spyder安装教程图文详解

    Anaconda最新版2023安装教程Spyder安装教程图文详解

    这篇文章主要介绍了Anaconda最新版2023安装教程Spyder安装教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • PyCharm添加python库的方法步骤

    PyCharm添加python库的方法步骤

    在使用PyCharm过程中,有时候需要添加需要的Python扩展库,本文主要介绍了PyCharm添加python库的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 深入掌握Python模块创建导入和使用

    深入掌握Python模块创建导入和使用

    这篇文章主要为大家介绍了深入掌握Python模块创建导入和使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • django 使用 request 获取浏览器发送的参数示例代码

    django 使用 request 获取浏览器发送的参数示例代码

    这篇文章主要介绍了django 使用 request 获取浏览器发送的参数示例代码,获取数据有四种方式,具体内容详情大家跟随脚本之家小编一起看看吧
    2018-06-06
  • 使用Python中OpenCV和深度学习进行全面嵌套边缘检测

    使用Python中OpenCV和深度学习进行全面嵌套边缘检测

    这篇文章主要介绍了使用Python中OpenCV和深度学习进行全面嵌套边缘检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Python使用Flask结合DeepSeek开发(实现代码)

    Python使用Flask结合DeepSeek开发(实现代码)

    文章介绍了如何使用ollama部署DeepSeek大模型,并通过Python Flask和SSE技术实现一个简单的对话应用,代码实现了模型的调用和结果展示,并讨论了SSE不支持POST请求的问题及解决方案,感兴趣的朋友一起看看吧
    2025-02-02
  • 说说如何遍历Python列表的方法示例

    说说如何遍历Python列表的方法示例

    这篇文章主要介绍了如何遍历Python列表的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • python 判断linux进程,并杀死进程的实现方法

    python 判断linux进程,并杀死进程的实现方法

    今天小编就为大家分享一篇python 判断linux进程,并杀死进程的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • django实现支付宝支付实例讲解

    django实现支付宝支付实例讲解

    在本篇文章里小编给大家整理的是一篇关于django支付宝支付的代码实例内容,需要的朋友们可以学习下。
    2019-10-10
  • 用Python实现将一张图片分成9宫格的示例

    用Python实现将一张图片分成9宫格的示例

    今天小编就为大家分享一篇用Python实现将一张图片分成9宫格的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论