【发布时间】:2025-12-20 02:50:16
【问题描述】:
在编写一个小函数来计算某个样本的99%置信区间时,
我得到的答案与 R t.test 公式不同。 这是我的功能:
confinterval <- function(x,alpha){
alpha = 0.01
df = length(x)-1
pos_confinterval = mean(x) + qt((1 - alpha/2),df)*(var(x)/length(x))
neg_confinterval = mean(x) - qt((1 - alpha/2),df)*(var(x)/length(x))
cut_points <- c(neg_confinterval,pos_confinterval)
return(cut_points)
}
confinterval(data) 给了我以下切点向量 (4.469488 4.598704) 尽管 : t.test(data,conf.level=.995) 产量 (4.064382 5.003810)
有没有更简单的方法来获得这样的函数来计算置信区间?
【问题讨论】:
-
将
qt((1 - alpha/2),df)更改为qt(1 - ((1 - alpha) / 2), df)和(var(x)/length(x))更改为sd(x) / sqrt(length(x)-1)应该会让您非常接近 -
谢谢,我忘了用 sd() 代替 var()
-
但是 qt() 采用切点或百分位数,在这里我需要 qt(.995, df) 对吗?而你的会产生: qt(0.505,df)
-
您原来的
qt是正确的,但正如@duckmayr 所说,您需要标准差而不是方差和样本大小的平方根。 -
是的,你说的很对,对不起。正在考虑您的
t.test()调用并希望匹配参数和输出!刚刚转过身来
标签: r