如何计算Polychoric Correlation的置信区间?(附R代码)
用Bootstrap方法计算多系列相关系数的置信区间(基于polycor包)
完全可以通过Bootstrap方法实现多系列相关系数的置信区间计算,以下是适配你现有代码的可复现代码:
library(polycor) # 你的原始数据 Var1 <- c(1,2,3,1,2,2,3,2,2,1,2) Var2 <- c(2,2,3,1,2,1,3,2,2,1,2) df <- data.frame(Var1, Var2) # 设置随机种子保证结果可复现 set.seed(123) # 定义Bootstrap抽样函数 boot_polychor <- function(data, indices) { # 重抽样数据 boot_data <- data[indices, ] # 计算多系列相关系数 return(polychor(boot_data$Var1, boot_data$Var2)) } # 执行Bootstrap,重复1000次 nboot <- 1000 boot_results <- replicate(nboot, boot_polychor(df, sample(nrow(df), replace = TRUE))) # 计算95%置信区间(分位数法) ci <- quantile(boot_results, c(0.025, 0.975)) # 输出结果 cat("原始多系列相关系数:", polychor(df$Var1, df$Var2), "\n") cat("95% Bootstrap置信区间:", ci[1], "至", ci[2], "\n")
代码说明:
- 通过
replicate函数重复执行1000次有放回重抽样,每次基于新样本计算多系列相关系数 - 利用分位数法从Bootstrap得到的系数样本中提取95%置信区间
- 可调整
nboot的数值(比如增大到2000)提升区间稳定性,相应计算时间会增加
内容的提问来源于stack exchange,提问作者JuanJMV
相关产品推荐
相关产品推荐

