请求协助:在0.05显著性水平下开展相关性双侧显著性检验
相关系数双侧显著性检验实现(R语言)
你使用的cor.test()函数已经内置完成了双侧显著性检验,无需额外手动计算,以下是具体说明:
1. Pearson相关的双侧t检验
当指定method = "pearson"时,cor.test()会自动执行检验相关系数是否为0的双侧t检验,默认显著性水平为0.05。输出结果中:
t value是t检验统计量p value是双侧检验的p值
直接通过p值判断:若p值 < 0.05,则在0.05显著性水平下拒绝原假设(原假设为相关系数=0),认为变量间存在显著线性相关;反之则不拒绝原假设。
2. Spearman秩相关的显著性检验
Spearman秩相关的显著性检验并非t检验,而是基于秩分布的检验。cor.test()同样会输出对应的检验统计量(如S统计量或近似Z统计量)和双侧p值,判断逻辑与Pearson一致:p值 < 0.05则认为秩相关显著。
优化后的代码示例
可以将检验结果存入变量,方便查看和后续分析:
dat_link <- url("KiGGS03_06.RData") load(dat_link) dat <- KiGGS03_06 # 转换变量类型并处理缺失值 whr <- as.numeric(as.character(dat$whr)) bp <- as.numeric(as.character(dat$sys12)) bmiB <- as.numeric(as.character(dat$bmiB)) # Pearson相关及双侧检验(指定置信水平0.95对应0.05显著性水平) pearson_whr_bp <- cor.test(whr, bp, method = "pearson", conf.level = 0.95) pearson_bmiB_bp <- cor.test(bmiB, bp, method = "pearson", conf.level = 0.95) # Spearman秩相关及双侧检验 spearman_whr_bp <- cor.test(whr, bp, method = "spearman", conf.level = 0.95) spearman_bmiB_bp <- cor.test(bmiB, bp, method = "spearman", conf.level = 0.95) # 打印结果 print(pearson_whr_bp) print(pearson_bmiB_bp) print(spearman_whr_bp) print(spearman_bmiB_bp)
手动计算Pearson的t检验(可选)
如果需要手动验证t检验统计量,公式为:t = r × √[(n-2)/(1-r²)],其中r是Pearson相关系数,n为有效样本量(剔除缺失值后的数量)。代码实现:
# 计算Pearson相关系数(仅使用无缺失值的样本) r_pearson <- cor(whr, bp, use = "complete.obs") # 有效样本量 n <- sum(complete.cases(whr, bp)) # 手动计算t统计量 t_stat <- r_pearson * sqrt((n-2)/(1 - r_pearson^2)) # 计算双侧p值(自由度为n-2) p_value <- 2 * pt(-abs(t_stat), df = n-2) cat("手动计算的t统计量:", t_stat, "\n") cat("手动计算的双侧p值:", p_value, "\n")
该结果与cor.test()输出的t统计量和p值完全一致。
内容的提问来源于stack exchange,提问作者María Alejandra Ospino Vergara
相关产品推荐
相关产品推荐

