首页 > 编程问答 >如何检查两个平均值是否显着不同?

如何检查两个平均值是否显着不同?

时间:2024-07-27 07:48:57浏览次数:5  
标签:python normal-distribution t-test statistical-test

我有两个分布,大小分别为 ~120 和 ~86.000 个元素。我想检查两个分布的平均值是否 显着 不同。

我发现,我可以使用韦尔奇的 t 检验,但该检验仍然要求分布是正态。

我用 scipy.stats.normaltest() 来检查它们是否是正态分布,但测试失败了。但是,我读到,对于大样本量,检验几乎总是会失败,并且分布不必完全正态。

如何检查我的分布是否足以进行韦尔奇 t 检验或是否存在除了 t 检验之外,还有其他方法可以用来确定两个分布的平均值是否显着不同?

以下是有问题的分布:

enter image description here


你说的对,对于大样本,正态性检验可能不可靠,而且你的样本量很大(86,000)。考虑到你的分布形状和样本量,你有多种方法可以检查两个平均值之间是否存在显著差异,而无需依赖假设正态性的检验:

1. 韦尔奇 t 检验:

  • 即使数据不是正态分布,中心极限定理也表明,对于像你这样的大样本,样本均值的分布将接近正态分布。
  • 韦尔奇 t 检验对偏离正态性的耐受性相当强,特别是当样本量不相等时。
  • 鉴于你的情况,使用韦尔奇 t 检验很可能仍然有效。

2. 自举检验:

  • 自举检验是一种不依赖于特定分布假设的非参数方法。
  • 你可以从每个组中反复抽取样本(替换),计算平均值的差异,并生成这些差异的经验分布。
  • 然后,你可以使用此经验分布来评估观察到的平均值差异的可能性,并评估统计显著性。

3. 曼-惠特尼 U 检验:

  • 这是另一种对非正态数据具有鲁棒性的非参数检验。
  • 它检验了两个样本的分布是否相同的零假设,或者更准确地说,一个样本的观测值大于另一个样本的观测值的概率是否为 0.5。
  • 当分布的形状不同时(如你的情况),这可能比 t 检验更合适。但是,它可能不如 t 检验强大。

哪种检验适合你?

  • 韦尔奇 t 检验 在你的情况下可能仍然是一个合理的选择,因为它对偏离正态性是稳健的,特别是对于大样本。
  • 如果担心违反正态性假设, 自举检验 是一个很好的非参数选择,它可以提供有关平均值差异的可靠估计。
  • 如果特别关注两个分布的形状差异,则 曼-惠特尼 U 检验 可能是一个合适的选择。

建议:

  1. 执行所有三种检验。 比较结果并查看它们是否一致。
  2. 考虑效应量。 统计显著性并不表示实际显著性。查看平均值的差异,看看它在你的研究背景下是否有意义。
  3. 在你的报告中,说明你选择的检验以及你做出该决定的理由。 还要报告效应量和 p 值。

通过执行这些步骤,你可以确信你对这两个分布的均值差异做出了充分的推断。

标签:python,normal-distribution,t-test,statistical-test
From: 78800185

相关文章

  • Python,pandas从字符串中解析数字和字符串
    在Python中,我想解析一个字符串并将数字部分(可能有也可能没有小数点)作为浮点数返回,并将后缀作为字符串返回。示例为:7.1英寸->7.1,英寸7.1”->7.1,“7英寸->7.0,英寸-10dB->-10.0,dB-10.2dB->-10.2,dB数字部分和后缀之间没有空格。另外,我想将其应......
  • 如何在 Python 中加载站点的所有资源,包括 AJAX 请求等?
    我知道如何使用Python请求网站并读取其文本。过去,我曾尝试使用像BeautifulSoup这样的库来发出对网站上链接的所有请求,但这并没有得到看起来不像完整URL的内容,例如AJAX请求和大多数对原始域(因为“http://example.com”将丢失,更重要的是,它不是<ahref='url'>......
  • 使用Python进行PDF旋转
    使用python旋转扫描的pdf后,它工作得很好,但将pdf发送给第三方后,第三方仍然将pdf检测为90度pdf有什么办法可以解决旋转和这个问题importPyPDF2withopen('input.pdf','rb')asfile:#CreateaPDFreaderobjectreader=PyPDF2.PdfReader(file)......
  • Python win32serviceutil QueryServiceStatus:返回值是什么意思?
    我正在学习使用pywin32,并尝试在64位Python3.6.4上使用win32serviceutil模块以下代码:importwin32serviceutilasserviceserviceStatus=service.QueryServiceStatus("WinDefend")print(serviceStatus)返回以下元组:(16,4,197,0,0,0,0)我对wind......
  • Python request-html 未下载 Chromium
    importrequestsfrombs4importBeautifulSoupfromrequests_htmlimportHTMLSessionurl="https://dmarket.com/ingame-items/item-list/csgo-skins?title=recoil%20case"sesion=HTMLSession()response=sesion.get(url)response.html.render()soup=B......
  • VS Code 不改变 python 环境
    我正在使用VS-Code和anaconda环境作为python解释器。我通过ctrl+shift+`选择准确的anaconda基础环境,它也反映在vscode的下侧面板中。但是,当我检查python版本时,它显示我系统的默认python环境3.7.9如果您看到下面的截图,anaconda环境是3.......
  • 使用 Python 打开保存为 Parquet 文件中元数据的 R data.table
    使用R,我创建了一个Parquet文件,其中包含一个data.table作为主要数据,另一个data.table作为元数据。library(data.table)library(arrow)dt=data.table(x=c(1,2,3),y=c("a","b","c"))dt2=data.table(a=22222,b=45555)attr(dt,&......
  • Python 需要 Windows 长路径
    我尝试运行此安装:pip3installmsgraph-sdk它给了我这个错误:它说我需要使用此链接启用Windows长路径:https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-versi......
  • Python griddata() 和 Matlab griddata():某些网格点的结果不同
    在将一些(相当大的物理)Matlab代码转换为Python时,我偶然发现了这种情况。当对相同的二维离散数据进行插值时,Python/Scipy的griddata()函数给出的结果与Matlab的对应函数不同。griddata()Matlab示例代码:Python示例代码:%Samplepoints(x,y):7x5=3......
  • Ebay Python SDK 仅在特定项目类别上返回错误
    我在一个项目中使用ebaySDK一段时间了。最近我尝试导入一些商品,例如手表、手机壳等...并且我使用了eBay自己通过eBay返回的英国商店页面上的类别ID他们的“get_category_suggestions”API端点,但eBay似乎有选择地决定拒绝某些项目并引发服务器错误!为了测试,我做了......