好久没有更新了,最近都在忙数据分析,对于代码的编写时间变少了。今天更一个关于《R语言实战》书中代码结果不一致的问题。
在《R语言实战(第2版)》p144-145中,有一个利用vcd包中assocstats()函数计算相关性的问题,我们先看看书中如何描述:

根据书中的实例代码,我们重新跑一下试试看:

> library(vcd)
> data <- xtabs(~Treatment+Improved,data = Arthritis)
> assocstats(data)X^2 df  P(> X^2)
Likelihood Ratio 13.530  2 0.0011536
Pearson          13.055  2 0.0014626Phi-Coefficient   : NA
Contingency Coeff.: 0.367
Cramer's V        : 0.394
> #我们注意到 Phi-Coefficient 这个值同实例数据产生了产别,即便代码都是一样的。

那么为什么会产生这个问题呢?我们扒一下源码看看

> assocstats
function (x)
{if (!is.matrix(x)) {l <- length(dim(x))str <- apply(x, 3:l, FUN = assocstats)if (l == 3) {names(str) <- paste(names(dimnames(x))[3], names(str), sep = ":")}else {dn <- dimnames(str)dim(str) <- NULLnames(str) <- apply(expand.grid(dn), 1, function(x) paste(names(dn), x, sep = ":", collapse = "|"))}return(str)}tab <- summary(loglm(~1 + 2, x))$testsphi <- sqrt(tab[2, 1]/sum(x))cont <- sqrt(phi^2/(1 + phi^2))cramer <- sqrt(phi^2/min(dim(x) - 1))#我们发现在这里是否输出phi值进行了判断,当dall(dim(x) == 2L时,才会输出phi值#也就是都是二维变量的时候才会输出,详见Phi-Coefficient的阐述。structure(list(table = x, chisq_tests = tab, phi = ifelse(all(dim(x) == 2L), phi, NA), contingency = cont, cramer = cramer), class = "assocstats")
}
<bytecode: 0x000002bdb48566e0>
<environment: namespace:vcd>

造成这个结果差异的 原因可能是由于书编写的时候函数还未更新吧:)
哪些都不重要,重要的是理解为什么会输出NA:)
源码放在这里啦,Phi-Coefficient具体是如何计算出来的,可以自己用源码去试试~

关于assocstats()中Phi-Coefficient:na的原因相关推荐

  1. OpenCV中initUndistortRectifyMap函数存在bug原因探究

    原文首发于公众号「3D视觉工坊」:OpenCV中initUndistortRectifyMap函数存在bug原因探究. 最近在运行如下一段代码时,生成的mapx和mapy有点异常. 代码片段如下: # ...

  2. R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例

    R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录

  3. R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计

    R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录

  4. 微服务架构中的雪崩问题产生原因及解决办法

    微服务架构中的雪崩问题产生原因及解决办法 参考文章: (1)微服务架构中的雪崩问题产生原因及解决办法 (2)https://www.cnblogs.com/panchanggui/p/10330924 ...

  5. 网络营销外包浅析网络营销外包中网站排名效果不佳的原因有哪些?

    在网络营销外包之中站长在定期监测网站排名效果时发现网站排名效果不佳,这意味着网站排名优化工作的某些环节出现问题,导致网站排名优化效果不明显,这让站长十分头疼,毕竟每天坚持优化却依然没有排名效果,这究竟 ...

  6. 【Java文件操作(五)】从txt文件中读取字符串、乱码原因

    我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...

  7. springboot中注入FilterRegistrationBean不生效原因

    springboot中注入FilterRegistrationBean不生效原因 回顾 最近自定义了两个过滤器,接口请求返回加密和sql注入处理过滤器,因为在封装一些工具包,我在单独调好之后,就打算做 ...

  8. mouseup 左键_javascript中mouseup事件丢失的原因与解决办法

    这篇文章主要跟大家介绍了关于Javascript中mouseup事件丢失的原因与解决办法的相关资料,文中给出详细的示例代码供大家参考学习,需要的朋友们下面跟着小编一起来学习学习吧. 前言 当实现类似E ...

  9. C#在foreach中重用变量是否有原因?

    本文翻译自:Is there a reason for C#'s reuse of the variable in a foreach? When using lambda expressions o ...

  10. excel转html乱码,EXCEL表格中数字乱码是什么原因?

    EXCEL表格中数字乱码是什么原因?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. EXCEL表格中数字乱码的原因 原因一:表格出现乱码可能是表格的列宽太 ...

最新文章

  1. 手把手教你实现GAN半监督学习
  2. unix mysql_Unix和Mysql中列出的数据库大小之间存在差异
  3. GitHub地图转误差坐标
  4. [Python 多线程] Semaphore、BounedeSemaphore (十二)
  5. jsp开发环境的搭建
  6. poj3259 Wormholes(spfa判负环)
  7. matplotlib无法显示图片的解决方法(non-gui backend)
  8. JLink下载Hex文件
  9. [1034]安装Xposed框架+JustTrustMe
  10. Androidstudio连接华为手机问题
  11. 福建地区市场份额最大的调查研究咨询公司
  12. linux log4cxx 静态库,log4cxx的个人实践
  13. 完整责任链模式——回旋链
  14. 闲话云计算(二) 什么是云计算?
  15. 图像和base64的转换 uniapp开发
  16. Word目录制作,添加目录自动跳转
  17. JavaWeb投票系统
  18. dux2.0 php,WordPress主题:大前端dux2.0+3.0分享
  19. MATLAB 逻辑数组
  20. 基于深度学习的教室节能系统设计

热门文章

  1. 局域网上网行为管理系统可以为企业带来什么优势?
  2. 【soapUI】--- 破解和使用
  3. 大数据时代商业模式——企业如何创新?
  4. DOS命令:convert
  5. 利用辅助工具怎么在Excel中画线
  6. Linux 安装Nexus3.42.0-01图文教程
  7. 有道云Markdown指南
  8. 手游实时对战初步解决方案
  9. Linux笔记 No.19---(swap分区、dd命令、mail发送邮件、定时计划任务at和crontab)
  10. 提高情商必读的10本书籍推荐