如何编写支持自定义1-α值计算置信区间的R函数
R语言自定义两样本方差比置信区间函数修改方法
现有代码的核心问题是F分布分位点、返回结果标签两处均硬编码为95%置信水平对应的固定值,只需要替换这两处为动态读取level参数的逻辑即可,修改点如下:
- 计算对应置信水平的双侧分位点概率:首先通过
alpha <- 1 - level得到显著性水平,双侧检验的上下分位点分别为1 - alpha/2和alpha/2,替换原代码中写死的c(.975,.025) - 动态生成返回结果的标签,替换原固定写死的"95% CI"
修改后的完整代码如下:
blah <- function(x1, x2, level = 0.95){ n1 <- length(x1) n2 <- length(x2) s1 <- sd(x1) s2 <- sd(x2) # 动态计算F分布分位点 alpha <- 1 - level q_f <- qf(c(1 - alpha/2, alpha/2), df1 = n1 - 1, df2 = n2 - 1) CI <- (s1^2 / s2^2) / q_f # 动态生成置信区间标签 ci_label <- paste0(level * 100, "% CI") return(setNames(list(CI), ci_label)) }
使用示例:
# 生成测试数据,x1理论方差4,x2理论方差2.25,理论方差比为1.778 set.seed(123) x1 <- rnorm(20, sd = 2) x2 <- rnorm(30, sd = 1.5) # 计算90%置信水平的方差比置信区间 blah(x1, x2, level = 0.9)
内容的提问来源于stack exchange,提问作者lol
相关产品推荐
相关产品推荐

