imd 统计教程 · 数据清理与基础统计
← 教程首页 返回本模块

「付费」RC交叉表fisher检验有统计值?全网首发fisher_freeman_halton 的R实现

聂志强实战医学统计2024-08-06 01:52:51广东


今天帮小伙伴解答问题的时候发现一个有趣的卡方检验细节。RC表,在有诸多T<5的情况,Fisher-Freeman-Halton值统计参数,2*2四格表是 Fisher exact 检验没有统计参数。小编检索了全部资料后,发现SCI在进行RC表计算的时候有提及。然而全网都没有提供R代码如何生成。

小编连夜参考外文后编写了全网唯一的fisher_freeman_halton.test() 函数,一键计算fisher_freeman_halton卡方与p值。

鉴于近期文章阅读量较高,越来越多*人各种恶心留言与lj评论,小编熬夜辛辛苦苦写东西还得不到尊重,着实让小编很不愉快。所以决定本期采取付费观看模式:小伙伴们觉得需要这个代码可付费获取(一杯奶茶钱),不需要代码也不影响前面的统计思路和SPSS常规操作(白嫖一样香)。

下面开始正文。

小伙伴案例,freq为加权列,SPSS代码为

WEIGHT BY freq_3. 
CROSSTABS 
  /TABLES=g3 BY x3 
  /FORMAT=AVALUE TABLES 
  /STATISTICS=CHISQ 
  /CELLS=COUNT 
  /COUNT ROUND CELL.

汇总结果

Tab. 1 Comparison of general information among three groups  (每组45人) ASA分级(I/II/Ⅲ A组 B0组 C组 χ2值 P值 Pearson卡方 4/35/6 6/33/6 4/38/3 2.13 0.712 Fisher-Freeman-Halton 4/35/6 6/33/6 4/38/3 2.21 0.715 

一、Freeman-Halton 卡方值 

SPSS公司出处,统计参数Freeman-Halton检验是卡方值


二、SCI实战

三、R代码复现

# 创建矩阵
table <- matrix(c(4, 35, 6,
                  6, 33, 6,
                  4, 38, 3), 
                nrow = 3, 
                byrow = TRUE)

# 进行 Pearson 卡方检验
pearson_x2.test <- function(table) {
  # 进行 Pearson 卡方检验
  test_result <- chisq.test(table, correct = FALSE)  # 使用不进行 Yates 连续性修正
  
  # 结果
  result <- list(
    "Chi-squared" = test_result$statistic,
    "P-value" = test_result$p.value,
    "Degrees of Freedom" = test_result$parameter,
    "Expected" = test_result$expected
  )
  return(
    rctables_result(
      result,
      sprintf(
        "Pearson Chi-squared test: Chi-squared = %6.4f, P-value = %6.4f (df = %d)",
        result$"Chi-squared", result$"P-value", result$"Degrees of Freedom"
      )
    )
  )
}
# 进行 Pearson 卡方检验
pearson_x2.test(table)