运用卡方检验(独立性检验)来分析问卷的两个问题之间的关联性
卡方检验是以χ2分布为基础的一种常用假设检验方法,它的零假设H0是:观察频数与期望频数没有差别。
该检验的基本思想是:首先假设H0成立,基于此前提计算出χ2值,它表示观察值与理论值之间的偏离程度。根据χ2分布及自由度可以确定在H0假设成立的情况下获得当前统计量及更极端情况的概率P。如果P值很小(一般认为是小于5%),说明观察值与理论值偏离程度太大,应当拒绝零假设,表示比较资料之间有显著差异;否则就不能拒绝零假设,尚不能认为样本所代表的实际情况和理论假设有差别。
χ2是观察频数与期望频数之间距离的一种度量指标,也是假设成立与否的度量指标。如果χ2值“小”,研究者就倾向于不拒绝H0;如果χ2值大,就倾向于拒绝H0。至于χ2在每个具体研究中究竟要大到什么程度才能拒绝H0,则要借助于卡方分布求出所对应的P值来确定。
首先先来看一下原始的问卷:
每个选项对应Excel表中的数据格式分别是1、 2、 3···
首先设法建立列联表
library(dplyr)
library(ggplot2)
survey <- read.csv("1.csv")
degree <- c('A.十分期待', 'B.比较期待', 'C.期待', 'D.无感觉', 'E.不期待')
time <- c('A.1小时以内', 'B.1~2小时', 'C.2~3小时', 'D.3~4小时', 'E.无所谓')
table1 <- survey %>% select(X18.您对这门课的期待程度, X22.您期望每周用于完成本课程作业的时间是)
names(table1)[1] = '期待程度'
names(table1)[2] = '花费时间'
table1[,1] = degree[table1[,1]]
table1[,2] = time[table1[,2]]
table1 %>% table
table1为:
花费时间
期待程度 A.1小时以内 B.1~2小时 C.2~3小时 D.3~4小时 E.无所谓A.十分期待 12 29 21 6 7B.比较期待 6 15 9 1 1C.期待 3 2 1 0 1D.无感觉 0 1 0 0 0
没有人选不期待(这个选项听起来太冷漠了),所以就没有显示出来。为什么要在前面加上ABC呢,因为不加的效果就像下面一样,由于列联表行和列的向量是按字典序排列的,因而毫无逻辑顺序。
花费时间期待程度 1~2小时 1小时以内 2~3小时 3~4小时 无所谓比较期待 15 6 9 1 1期待 2 3 1 0 1十分期待 29 12 21 6 7无感觉 1 0 0 0 0
画一个对比图。
table1 %>% as.data.frame %>% ggplot(aes(x = 期待程度, y = 1, fill = 花费时间)) + geom_bar(stat = 'identity') +
ylab('人数') +
labs(title = "对比图")+
theme(plot.title=element_text(hjust=0.5))
然后简单粗暴地检验独立性。
table1 %>% table %>% chisq.test
Pearson's Chi-squared testdata: .
X-squared = 7.9067, df = 12, p-value = 0.7924Warning message:
In chisq.test(.) : Chi-squared approximation may be incorrect
结果是期待程度和花费时间是独立的。但是有报错是怎么回事。哦,原来卡方检验是有条件的。
卡方分布本身是连续型分布,但是在分类资料的统计分析中,显然频数只能以整数形式出现,因此计算出的统计量是非连续的。只有当样本量比较充足时,才可以忽略两者的差异,否则将可能导致较大的偏差具体而言,一般认为对于卡方检验中的每一个单元格,要求其最小期望频数均大于1,且至少有4/5的单元格期望频数大于5,此时使用卡方分布计算出的概率值才是准确的。如果数据不符合要求,可以采用确切概率法进行概率的计算。
四格表资料的卡方检验:用于进行两个率或两个构成比的比较,要求样本含量应大于40且每个格子中的理论频数不应小于5。当样本含量大于40但理论频数有小于5的情况时卡方值需要校正,当样本含量小于40时只能用确切概率法计算概率。
行×列表资料的卡方检验:用于多个率或多个构成比的比较,要求每个格子中的理论频数T均大于5或1<T<5的格子数不超过总格子数的1/5。当有T<1或1<T<5的格子较多时,可采用并行并列、删行删列、增大样本含量的办法使其符合行×列表资料卡方检验的应用条件。而多个率的两两比较可采用行×列表分割的办法。
这样看来,我必须要调整一下table了。
经过不断尝试,我发现table要一直化简到这样才可以:
table1 <- subset(table1, 期待程度!= 'D.无感觉'&期待程度!= 'C.期待'&花费时间!='E.无所谓'&花费时间!='D.3~4小时')
table1 %>% table花费时间
期待程度 A.1小时以内 B.1~2小时 C.2~3小时A.十分期待 12 29 21B.比较期待 6 15 9
画出的图表是这样的:
> table1 %>% table %>% chisq.testPearson's Chi-squared testdata: .
X-squared = 0.14119, df = 2, p-value = 0.9318
大体可以看出,在选定的数据集下,期待程度是独立的属性。
但这样还有许多的数据没有用上,那有没有什么办法来整体分析一下这些属性呢?
我想到了将数据放大这种方案。
table2 <- table1 %>% table
table2 = table2*500
table2[table2==0] = 5
> table2花费时间
期待程度 A.1小时以内 B.1~2小时 C.2~3小时 D.3~4小时 E.无所谓A.十分期待 6000 14500 10500 3000 3500B.比较期待 3000 7500 4500 500 500C.期待 1500 1000 500 5 500D.无感觉 5 500 5 5 5table2 %>% chisq.testPearson's Chi-squared testdata: .
X-squared = 3873.7, df = 12, p-value < 2.2e-16
从上图可以看出,p值非常小,可以得出期待程度是非独立的这一结论。
小tips:
- alt+-可以召唤 <-
- ctrl+shift+m可以召唤 %>%
运用卡方检验(独立性检验)来分析问卷的两个问题之间的关联性相关推荐
- 数据分析的统计方法选择小结(变量之间的关联性分析)
数据分析的统计方法选择小结(变量之间的关联性分析) 一.两个变量之间的关联性分析 1.两个变量均为连续型变量 1)小样本并且两个变量服从双正态分布,则用Pearson相关系数做统计分析 2)大样本或两 ...
- Python实现卡方检验和相关性分析
目录 卡方检验 卡方检验的statsmodels实现 配对卡方检验 相关分析(关联性分析)概述 相关系数的计算原理 相关分析的Python实现 卡方检验 卡方检验的主要用途 两个率或两个构成比比较的 ...
- 毕业论文使用的卡方检验该如何分析?
一.卡方检验基本说明 有时,在研究中某个随机变量是否服从某种特定的分布是需要进行检验的.可以根据以往的经验或者实际的观测数据分布情况,推测总体可能服从某种分布函数F(x).卡方检验就是这样一种用来检验 ...
- 卡方检验--离散变量相关性分析--机器学习特征选择
一.卡方检验理论 这部分来自<概率论与数理统计>.先从理论角度介绍卡方检验是什么. 卡方检验起始就是一种假设检验. 假定一个总体可以分成r类,从该总体获得了样本数据集.从该样本数据集出发, ...
- 05 -描述统计学- Project 分析问卷数据
05 描述统计学 Project 分析问卷数据 文章目录 05 描述统计学 Project 分析问卷数据 1.项目概述 2.探索数据 I 习题 1/4 习题 4/4 2.探索数据 II 3.数据探索 ...
- 二分类变量相关性分析spss_spss:两个有序分类变量的相关分析『kendallstau-b相关系数』...
SPSS :两个有序分类变量的相关分析 『 Kendall''''s tau-b 相关系数』 一.问题与数据 某研究者开展了一项人们对税收看法的调查,拟调查人们对 "本国税收过高" ...
- python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验、covar参数指定对应的协变量(多个)、method参数指定相关性分析方法
python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验.covar参数指定对应的协变量(多个).method参数指定相关性分析方法.altern ...
- 【python量化】如何分析两段时间序列之间的相关性
作者:Andrew Chung 公众号:WealthQuant 链接: https://www.zhihu.com/question/23525783/answer/956912446 已获得作者授权 ...
- 推荐系统中协同过滤算法实现分析(重要两个图!!)
"协",指许多人协力合作. "协同",就是指协调两个或者两个以上的不同资源或者个体,协同一致地完成某一目标的过程. "协同过滤",简单来 ...
- 《中国人工智能学会通讯》——4.41 两种学习之间有什么区别?
4.41 两种学习之间有什么区别? 来 看 一 下 剑 桥 大 学 信 息 工 程 教 授 ZoubinGhahramani 对贝叶斯规划学习(BPL)的评价,他认为 BPL 对人工智能.认知科学和机 ...
最新文章
- 字符串转换成NSDate类型的 为nil解决方法
- php mysql操作封装_php封装MySQL数据库基本操作
- linux下lua bit模块的安装
- 1.2 matlab数值数据的输出格式
- 掌握这 20 个容器实战技巧!
- 数据归一化matlab及python 实现
- 【转】JAVA中的转义字符
- python安全攻防---信息收集---whois查询
- Docker原理之CGroups
- 重温这几个屌爆的Python技巧!
- Ubuntu16安装GTK+2.0教程
- 【新书】python+tensorflow机器学习实战,详解19种机器学习经典算法
- Vijos P1691 输油管道问题【中位数+排序】
- 网页传上服务器 是乱码,前端传到后台中文乱码问题
- @data注解_SpringBoot入门实践(七)-Spring-Data-JPA实现数据访问
- 线性代数————思维导图(上岸必备)(矩阵部分)
- 什么是结构、表现、行为
- 企业微信获取corpid,Secret,Agentid
- 《铁路竹枝词四首》_文若
- AT91SAM926x开发全流程
热门文章
- 关于错误“未能加载文件或程序集”的错误的若干处理办法——对GAC的简单应用
- JDBC驱动与MySQL版本不兼容的问题
- 路由器有信号无网络连接到服务器,路由器信号满格但是没有网络怎么办
- php phacon 关联模型吗,Phalcon模型
- WEB 渗透之文件类操作
- 广义相对论-学习记录6-第三章-张量分析与黎曼几何3
- Business Requirement
- repository ‘Gradle Libs‘ was added by unknown code
- c++string 加引号_Shell 引号嵌套
- 秋冬心血管疾病高发,牢记这几个身体异常症状!