Python SciPy 卡方测试返回与 Excel 和 LibreOffice 不同的 p 值

2023-12-01

读完一篇后最近的博客文章关于泊松分布的应用程序,我尝试使用 Python 的“scipy.stats”模块以及 Excel/LibreOffice“POISSON”和“CHITEST”函数重现其发现。

对于文章中显示的预期值,我简单地使用了:

import scipy.stats
for i in range(8):
    print(scipy.stats.poisson.pmf(i, 2)*31)

这重现了博客文章中显示的表格 - 我还在 LibreOffice 中重新创建了它,使用单元格 A1、A2、...、A8 中的值为 0 到 7 的第一列 A 和简单的公式 '=POISSON( A1, 2, 0)*31' 在 B 列的前 8 行中重复。

到目前为止一切顺利 - 现在是卡方 p 检验值:

在 LibreOffice 下,我只是在单元格 C1-C8 中写下观察到的值,并使用“=CHITEST(C1:C8, B1:B8)”重现文章报告的 p 值 0.18。然而,在 scipy.stats 下,我似乎无法重现这个值:

import numpy as np
import scipy.stats

obs = [4, 10, 7, 5, 4, 0, 0, 1]
exp = [scipy.stats.poisson.pmf(i, 2)*31 for i in range(8)]

# we only estimated one variable (the rate of 2 killings per year via 62/31) 
# so dof will be N-1-estimates
estimates = 1
print(scipy.stats.chisquare(np.array(obs), np.array(exp), ddof=len(obs)-1-estimates))
# (10.112318133864241, 0.0014728159441179519)
# the p-test value reported is 0.00147, not 0.18...
#
# Maybe I need to aggregate categories with observations less than 5 
# (as suggested in many textbooks of statistics for chi-squared tests)?
observedAggregateLessThan5 = [14, 7, 5, 5]
expectedAggregateLessThan5 = [exp[0]+exp[1], exp[2], exp[3], sum(exp[4:])]
print(scipy.stats.chisquare(np.array(observedAggregateLessThan5), np.array(expectedAggregateLessThan5), ddof=len(observedAggregateLessThan5)-1-estimates))
# (0.53561749342466913, 0.46425467595930309)
# Again the p-test value computed is not 0.18, it is 0.46...

我究竟做错了什么?


您没有使用ddof论证正确。ddof is the change达到默认的自由度。默认值比长度小一。所以你不必指定ddof at all:

In [21]: obs
Out[21]: [4, 10, 7, 5, 4, 0, 0, 1]

In [22]: exp
Out[22]: 
[4.1953937803349941,
 8.3907875606699882,
 8.3907875606699882,
 5.5938583737799901,
 2.796929186889995,
 1.1187716747559984,
 0.37292389158533251,
 0.10654968331009501]

In [23]: chisquare(obs, f_exp=array(exp))
Out[23]: (10.112318133864241, 0.1822973566091409)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python SciPy 卡方测试返回与 Excel 和 LibreOffice 不同的 p 值 的相关文章

随机推荐

  • 为什么它不转一圈?以及如何修复它?

    我不确定正在创建的形状的名称是什么 但我认为是圆形和方形的组合 或者可能类似于圆柱体 您可以运行代码来查看它会形成什么形状 您能否推荐一个我可以学习编写游戏代码 基本游戏背后的算法 的网站 我希望你明白我的意思 因为我英语不好 import
  • 当 PictureBox 处于“缩放”模式时裁剪图像的正确部分[重复]

    这个问题在这里已经有答案了 我有一个 PictureBox1 其尺寸模式设置为 拉伸 并且 PictureBox1 PictureBox1 包含一个图像 让我选择它的一部分 然后裁剪它并将裁剪的部分存储在 PictureBox2 中 效果很
  • python中浮点精度的定义是什么?

    我了解到 Erlang 中的 完全等于 运算符 它不仅比较值 还有数字的数据类型 我很好奇 Python 中的工作原理及其唯一的 等于 运算符 所以在确定之后 gt gt gt 1 1 0 True 我想知道浮点精度 然后得到了这个 gt
  • 在 PHP 中从空值创建默认对象?

    仅在将 PHP 环境升级到 PHP 5 4 及更高版本后 我才会看到此错误 错误指向这行代码 Error 从空值创建默认对象 Code res gt success false 我是否需要首先声明我的 res object 你的新环境可能有
  • div 中的居中文本

    div div class left div align center class node div class nodeText h2 test h2 div div class node h2 test h2 div div class
  • mod_rewrite后获取变量

    我有一组遵循以下 htaccess 规则的产品页面 RewriteCond REQUEST FILENAME s RewriteCond REQUEST URI 0 9 html RewriteRule product index php
  • Opencv 和 python 用于自动裁剪

    我想自动裁剪图像 我正在为此使用 ImageMagick 我正在使用的命令 convert 3 jpg fuzz 10 trim trim jpg 我该如何解决 我认为正在设置的模糊因子存在问题 If you want to do this
  • 在sp_executesql中使用@ParmDefinition有什么好处

    DECLARE id int DECLARE name nvarchar 20 SET id 5 SET name Paul 这两个选项有什么区别 Set SQLQueryInnen SELECT FROM someTable WHERE
  • 对多个工作簿和多个工作表中的单元格值求和 - 宏

    我有 50 本练习册 每个有 3 个工作表 我在单元格 A1 到 N1 的每个工作表中都有一个值 我想总结一个工作簿中的所有值 分别在 3 个工作表中 即sheet1工作簿1的A1 sheet1工作簿2的A1 sheet1工作簿50的A1
  • 如何禁用列表的第一项可排序并删除目标

    我有一个项目列表 我想让列表中的第一个项目不可排序且不可移动 列表中的第一项应始终保留为列表中的第一项 但是 我似乎无法让它工作 这是我的排序代码 jQuery gt lineup sortable axis y items ui stat
  • 如何让 MySQL 使用 INDEX 进行视图查询?

    我正在开发一个使用 Java EE 上的 MySql 数据库的 Web 项目 我们需要一个视图来汇总 3 个总共超过 300 万行的表中的数据 每个表都是用索引创建的 但我还没有找到一种方法来利用我们使用 group by 创建的视图中的条
  • .Net 3.5 SP1 的离线安装程序无法正常工作

    我下载了一个 Net 3 5 SP1的大文件 现在 当我尝试在 Windows Server 2012 上安装它时 我得到以下屏幕截图 现在这是一个循环 当我尝试从服务器管理器安装时 我发现安装无法完成 它需要安装盘 这是否意味着如果没有安
  • 静态变量是否可以继承

    我已经在 1000 个位置读到静态变量不能被继承 但是这段代码如何正常工作呢 父类 java public class Parent static String str Parent 孩子 java public class Child e
  • Swift 可编码多种类型

    我尝试解析返回 json 对象的 api 我的问题是 某些键有时是字符串 有时是对象 如以下示例中的键 Value Description null Group Beskrivning av enheten GroupDescription
  • 使用纵横比时 CSS 会忽略子元素的宽度

    我遇到了有关 CSS 的问题aspect ratio在子元素上 我一直在尝试将元素的宽度和高度 两者相同 设置为等于父容器的高度 使用height 100 and aspect ratio 1 然而 这可以实现 使用时父容器似乎忽略了子容器
  • 有没有办法从 SQL 中的日期中减去天数?

    我知道 DATEDIFF d date1 date2 但我不想减去两个日期 而是减去一个日期的天数 例如 2010 04 13 4 2010 04 09 mySQL 可以吗 date sub date interval 4 day
  • 生成具有预定义模数和指数的公钥

    n rKZ 1zdz CoLekSynOtyWv6cPSSkV28Kb9kZZHyYL yhkKnH bHl8OpWiGxQiKP0ulLRIaq1IhSMetkZ8FfXH iptIDu4lPb8gt0HQYkjcy3HoaKRXBw2F
  • 使用 vstack 的全屏背景图像

    我想要一个带有导航视图的全屏背景图像 必须位于顶部 因为它来自基础视图 而不是通常位于 此 视图中 在此视图中 我想要一个位于安全区域内的 VStack 位于导航栏和底部布局之间 不幸的是我得到了 见图 I expected the tex
  • 使用外部计算的变量的回调函数

    基本上我想做这样的事情 arr 1 2 3 4 5 6 7 8 9 10 avg array sum arr count arr callback function val return val lt avg return array fi
  • Python SciPy 卡方测试返回与 Excel 和 LibreOffice 不同的 p 值

    读完一篇后最近的博客文章关于泊松分布的应用程序 我尝试使用 Python 的 scipy stats 模块以及 Excel LibreOffice POISSON 和 CHITEST 函数重现其发现 对于文章中显示的预期值 我简单地使用了