今天帮小伙伴解答问题的时候发现一个有趣的卡方检验细节。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)