卡方检验是以χ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.两个变量均为连续型变量 1)小样本并且两个变量服从双正态分布,则用Pearson相关系数做统计分析 2)大样本或两 ...

  2. Python实现卡方检验和相关性分析

    目录 卡方检验 卡方检验的statsmodels实现 配对卡方检验 相关分析(关联性分析)概述 相关系数的计算原理 相关分析的Python实现 卡方检验  卡方检验的主要用途 两个率或两个构成比比较的 ...

  3. 毕业论文使用的卡方检验该如何分析?

    一.卡方检验基本说明 有时,在研究中某个随机变量是否服从某种特定的分布是需要进行检验的.可以根据以往的经验或者实际的观测数据分布情况,推测总体可能服从某种分布函数F(x).卡方检验就是这样一种用来检验 ...

  4. 卡方检验--离散变量相关性分析--机器学习特征选择

    一.卡方检验理论 这部分来自<概率论与数理统计>.先从理论角度介绍卡方检验是什么. 卡方检验起始就是一种假设检验. 假定一个总体可以分成r类,从该总体获得了样本数据集.从该样本数据集出发, ...

  5. 05 -描述统计学- Project 分析问卷数据

    05 描述统计学 Project 分析问卷数据 文章目录 05 描述统计学 Project 分析问卷数据 1.项目概述 2.探索数据 I 习题 1/4 习题 4/4 2.探索数据 II 3.数据探索 ...

  6. 二分类变量相关性分析spss_spss:两个有序分类变量的相关分析『kendallstau-b相关系数』...

    SPSS :两个有序分类变量的相关分析 『 Kendall''''s tau-b 相关系数』 一.问题与数据 某研究者开展了一项人们对税收看法的调查,拟调查人们对 "本国税收过高" ...

  7. python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验、covar参数指定对应的协变量(多个)、method参数指定相关性分析方法

    python基于pingouin包进行统计分析:使用partial_corr函数执行两个变量之间的偏相关性检验.covar参数指定对应的协变量(多个).method参数指定相关性分析方法.altern ...

  8. 【python量化】如何分析两段时间序列之间的相关性

    作者:Andrew Chung 公众号:WealthQuant 链接: https://www.zhihu.com/question/23525783/answer/956912446 已获得作者授权 ...

  9. 推荐系统中协同过滤算法实现分析(重要两个图!!)

    "协",指许多人协力合作. "协同",就是指协调两个或者两个以上的不同资源或者个体,协同一致地完成某一目标的过程. "协同过滤",简单来 ...

  10. 《中国人工智能学会通讯》——4.41 两种学习之间有什么区别?

    4.41 两种学习之间有什么区别? 来 看 一 下 剑 桥 大 学 信 息 工 程 教 授 ZoubinGhahramani 对贝叶斯规划学习(BPL)的评价,他认为 BPL 对人工智能.认知科学和机 ...

最新文章

  1. 字符串转换成NSDate类型的 为nil解决方法
  2. php mysql操作封装_php封装MySQL数据库基本操作
  3. linux下lua bit模块的安装
  4. 1.2 matlab数值数据的输出格式
  5. 掌握这 20 个容器实战技巧!
  6. 数据归一化matlab及python 实现
  7. 【转】JAVA中的转义字符
  8. python安全攻防---信息收集---whois查询
  9. Docker原理之CGroups
  10. 重温这几个屌爆的Python技巧!
  11. Ubuntu16安装GTK+2.0教程
  12. 【新书】python+tensorflow机器学习实战,详解19种机器学习经典算法
  13. Vijos P1691 输油管道问题【中位数+排序】
  14. 网页传上服务器 是乱码,前端传到后台中文乱码问题
  15. @data注解_SpringBoot入门实践(七)-Spring-Data-JPA实现数据访问
  16. 线性代数————思维导图(上岸必备)(矩阵部分)
  17. 什么是结构、表现、行为
  18. 企业微信获取corpid,Secret,Agentid
  19. 《铁路竹枝词四首》_文若
  20. AT91SAM926x开发全流程

热门文章

  1. 关于错误“未能加载文件或程序集”的错误的若干处理办法——对GAC的简单应用
  2. JDBC驱动与MySQL版本不兼容的问题
  3. 路由器有信号无网络连接到服务器,路由器信号满格但是没有网络怎么办
  4. php phacon 关联模型吗,Phalcon模型
  5. WEB 渗透之文件类操作
  6. 广义相对论-学习记录6-第三章-张量分析与黎曼几何3
  7. Business Requirement
  8. repository ‘Gradle Libs‘ was added by unknown code
  9. c++string 加引号_Shell 引号嵌套
  10. 秋冬心血管疾病高发,牢记这几个身体异常症状!