做数据分析为何要学统计学(6)——什么问题适合使用卡方检验?

news2024/12/23 15:07:30

卡方检验作为一种非常著名的非参数检验方法(不受总体分布因素的限制),在工程试验、临床试验、社会调查等领域被广泛应用。但是也正是因为使用的便捷性,造成时常被误用。本文参阅相关的文献,对卡方检验的适用性进行粗浅的论述。

首先,从技术角度来看,(1)卡方检验的样本涉及的因素(也就是变量)需要两个(含)以上,而且是定性变量(分类变量,定类变量),其值可以是数字,也可以符号,但是即使是数字也不具备数量的含义,只是用于区分。比如性别变量,它的值可以是男或女,也可以是0或1,A或B;(2)其样本数据是由多个因素在不同水平(取值)情况下共同决定的数据,直观上表现为列联表(交互分类表,交叉表),形如下表。

某项产品的地区调查(人)
北京上海
满意600480
一般120150
不满意8070

上表涉及的因素(变量)有两个,分别是地区和满意度,其值分别是[北京,上海]和[满意,一般,不满意]。而样本是由两个变量的不同取值作用下的统计数据,可以是总和,也可以是平均数,或者其他统计量。

其次,从应用的角度来看,我们的目的是要进行无差异推断,或者不相关推断(无差异等价于不相关)。比如上述问题可以回答北京、上海两地对该产品的满意度是否无差异,或者说对该产品的满意度是否与上述地区不相关。通过即调用卡方检验函数,获得p=0.00472,在显著性水平0.05下,两地满意度无差异(或与地区不相关)的假设被拒绝。于是我们可以认为“两地对某产品的满意度是有差异的”或“某产品的满意度与地区有相关性”。代码如下:

#chi2_contingency是卡方检验函数
from scipy.stats import chi2_contingency
import numpy as np
#定义样本数据
X= np.array([[600,120,80],[480,150,70]])
chi2_contingency(X)
结果:(10.714285714285714, 0.004714356473549276, 2, array([[576., 144.,  80.],[504., 126.,  70.]]))。这些数值分别为卡方值、p值、自由度和理论值。

还有一种特殊情况,就是样本数据只有一组,也就是说表面上看因素只有一个,这种情况实际是进行“试验值(实际值,经验值)与理论值的无差异”推断。如下例:

进行抛硬币试验,进行七轮,每轮抛20次,数据如下表所示。是否可以认为硬币正面与反面(只有这两种情况)朝上的概率相同。

硬币正面向上的频数
第一轮第二轮第三轮第四轮第五轮第六轮第七轮
812107989

乍一看,此样本只有一组数据,而结合要解答的问题,实际上还有一组数据,即理论值。该理论值是等概率条件下硬币正面向上的次数,也就是每轮都是10。于是样本就变成了

硬币正面向上的频数
第一轮第二轮第三轮第四轮第五轮第六轮第七轮
812107989
10101010101010

通过将上述样本数据带入卡方检验函数,p=0.98928。即在显著性水平0.05下,我们接受“硬币正面与反面朝上的概率相同”这一假设。

再来看一个例子,某餐厅对一年内每周内每天的营业额进行统计(均值),看看营业情况是否存在时间方面的差异,数据如下。

一周的营业额统计(万元)

周一周二周三周四周五周六周日
9116781510

该问题同样是一种“试验值(实际值,经验值)与理论值的无差异”推断问题。只不过理论值的与上例不同。如果我们认为营业额与时间无关,也就意味的每天营业额是相同的,于是理论值将由每天营业额的均值来体现。即样本数据为:

一周的营业额统计(万元)

周一周二周三周四周五周六周日
9116781510
9.429.429.429.429.429.429.42

通过将上述样本数据带入卡方检验函数,p=0.85073。即在显著性水平0.05下,我们接受“营业额不存在时间方面的差异”这一假设。尽管从表面来看,该结果不太容易被接受,似乎周末营业情况更好,但是放眼总体(更长的时间范围),并不能支持直观感受。

***********************接下来划重点,举一个非常有代表性的误用卡方检验的例子***************

某调查机构调查了不同收入水平话费支出的情况,试图分析收入水平是否与话费支出水平相关。数据如下

收入

3000

4000500060007000800010000
话费90100150180200300400

然后对两组数据进行了卡方检验,p=0.000006。结论:拒绝两者不相关的假设。也就是说收入水平与话费支出水平是相关的。从结果来看是没有问题的,两组数据确实是显著正相关的,其皮尔逊相关系数corr=0.9758。但是从样本数据本身来看,不符合使用卡方检验的适用条件。因为:

(1)收入和话费两个因素不是定性变量,而是定量变量。

(2)样本值也不是两个因素共同确定的数值,而是归属于每个因素本身。

对于此类问题使用相关系数才是合理的。

如果上述调查结果改为不同收入水平和话费支出水平下的用户数量,则可以应用卡方检验。比如数据转换为

30004000500060007000800010000
<=90853024718123
90-100710011291295
100-150152075141068
150-2005459019161
200-250698350113
250-300316151415806
>30029419132090

使用卡方检验后1.12896*10^{-300}<0.05,于是我们可以拒绝收入水平与话费支出水平不相关的假设,也就是说收入水平会影响(或决定)话费支出水平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能优化算法应用:基于生物地理学算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于生物地理学算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于生物地理学算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.生物地理学算法4.实验参数设定5.算法…

【C语言宝库】- 操作符|详解进制转换|计算机小白必备技能(上)

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:C语言学习 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 进制 定义 基本原理 转换方式 常见的进制转换 二进制和进制的转换 二进制转十进制 十进制转二进制 &#xff08;1&#xf…

Pytorch的安装

Pytorch的安装 Pytorch的安装查看显卡信息CUDA兼容性安装说明开始安装常见异常安装CUDA Pytorch的安装 PyTorch的安装绝对是一个不是那么简单的过程&#xff0c;或多或少总是会出现一些奇奇怪怪的问题&#xff0c;这里分享记录一下PyTorch的安装心得。 查看显卡信息 没用显卡的…

常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的&#xff0c;这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求&#xff0c;密码不符合要求(格式上的要求) ④ 密码符合要求&#xf…

实用干货:推荐4个超级好用的Vue库,你可能不知道!

大家好&#xff0c;我是大澈&#xff01; 本文约1200字&#xff0c;整篇阅读大约需要3分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff01; 1. 干货速览 这两天老粉会发现&#xff0c;大…

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 CNN 部分

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 CNN 部分 概述CNN 简介数据预处理查看数据格式加载数据集 图像处理限定图像范围图像转换加载数据 CNN 模型Inception 网络ResNet 残差网络总结参数设置 训练 Train模型初始化数据加载训练超参数训练循环 验证…

idea一些报错

java: 非法字符: \ufeff 使用IDEA修改文件编码 在IDEA右下角&#xff0c;将编码改为GBK&#xff0c;再转为UTF-8&#xff0c;重新启动项目。具体步骤如下&#xff1a; 在IDEA右下角找到UTF-8字样的编码格式设计项&#xff0c;点击选择第一项GBK&#xff0c;然后Convert&#xf…

电脑出现msvcr120_1.dll丢失如何解决,怎么修复

一、msvcr120.dll_1.dll文件的作用&#xff1a; msvcr120.dll_1.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C Redistributable Package的一部分。该文件包含了许多常用的函数和类&#xff0c;这些函数和类被许多应用程序所共享和使用。因此&#xff0c;当您在…

“ABCD“[(int)qrand() % 4]作用

ABCD[(int)qrand() % 4] 作用 具体来说&#xff1a; qrand() 是一个函数&#xff0c;通常在C中用于生成一个随机整数。% 4 会取 qrand() 生成的随机数除以4的余数。因为4只有四个不同的余数&#xff08;0, 1, 2, 3&#xff09;&#xff0c;所以这实际上会生成一个0到3之间的随…

力扣40. 组合总和 II(java 回溯法)

Problem: 40. 组合总和 II 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 在使用回溯之前我们首先可以明确该题目也是一种元素存在重复但不可复用的组合类型问题。而此题目可以参考下面一题的大体处理思路&#xff1a; Problem: 90. 子集 II 具体的&#xff1a; 1.首…

自助式可视化开发,ETLCloud的集成之路

自助式可视化开发 自助式可视化开发是指利用可视化工具和平台&#xff0c;使非技术人员能够自主创建、定制和部署数据分析和应用程序的过程。 传统上&#xff0c;数据分析和应用程序开发需要专业的编程和开发技能。但是&#xff0c;自助式可视化开发工具的出现&#xff0c;使…

Unity 通过鼠标控制模拟人物移动和旋转视角

要通过鼠标控制并模拟人物移动和转换视角&#xff0c;将会使用射线检测、鼠标点击和鼠标水平移动&#xff0c;配合物体旋转和移动方法共同实现。 首先搭建个由一个Plane地板和若干cube组成的简单场景&#xff1a; 其次创建一个Capsule作为移动物体&#xff0c;并把摄像头拉到该…

Leetcode—10.正则表达式匹配【困难】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—10.正则表达式匹配 算法思想 参考题解 实现代码 class Solution { public:bool isMatch(string s, string p) {int m s.size(), n p.size();vector<vector<bool>> dp(m 1, vector<bool>(n …

VMware安装ContOS 7 提示“客户机操作系统已禁用 CPU。请关闭或重置虚拟机。”

目录 实验环境报错截图报错原因猜测&#xff08;根据实验现象&#xff09;解决办法如下 实验环境 Vmware Workstation 17.5 CentOS7 镜像版本&#xff1a;2207-02版本 注意&#xff1a;2009版本并无该错误 报错截图 报错原因猜测&#xff08;根据实验现象&#xff09; CentO…

深入理解Java虚拟机---类加载机制

类加载机制 什么是类加载机制类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证 准备解析初始化 类加载器双亲委派模型 什么是类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff…

C++初阶(十五)Stack和Queue

文章目录 一、Stack的模拟实现二、Queue的模拟实现三、容器适配器1、什么是容器适配器2、STL标准库中stack和queue的底层结构3、 deque的简单介绍(了解)1、deque的原理介绍2、deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容器 一、Stack的模拟实现 #include<…

Servlet 的初步学习

前言 咱们最核心的目标是基于tomcat编程, 做出网站来 ~~ 基于tomcat进行网站后端的开发. 网站后端, http服务器,肯定是需要针对http 协议进行一系列操作的. 幸运的是, tomcat,已经把这些http相关的底层操作,封装好了只需要调用tomcat给咱们提供的api即可 Servlet 是什么 Servl…

ReLU(Rectified Linear Unit)和Sigmoid激活函数

ReLU&#xff08;Rectified Linear Unit&#xff09;和Sigmoid都是神经网络中常用的激活函数。 特点&#xff1a; ReLU是一种简单而有效的激活函数。它对于正数部分直接返回输入&#xff0c;对于负数部分返回零。这种非线性转换有助于网络学习更复杂的表示。ReLU在许多深度学习…

1.【Multisim仿真】数电模电学习,仿真软件的初步使用

学习计划路径&#xff1a; >Multisim电路仿真软件熟练掌握 >数字电路基础课程 >逻辑电路设计与应用 >熟练掌握存储器、脉冲波形发生器、D/A和A/D转换器原理 >基本元器件熟练掌握 >晶体管放大电路及负反馈放大电路 >集成运算放大器设计 >电压变电流电路…

Unity_ET框架项目-斗地主_启动运行流程

unity_ET框架项目-斗地主_启动运行流程 项目源码地址&#xff1a; Viagi/LandlordsCore: ET斗地主Demohttps://github.com/Viagi/LandlordsCore下载项目到本地。 启动运行步骤&#xff1a; 下载目录如下&#xff1a; 1. VS&#xff08;我用是2022版VisualStudio&#xff09…