用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
! {) s# U' @/ b5 I如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了* t3 L" p( ]! _9 H
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
y0 b! |* o/ `: a8 |我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)* C" n9 d ]; |" X- d
t.test(newbomb)得到的结果如下 k! v5 ]0 j2 a+ a, n
0 K8 ^, l7 l- ~1 c. B! Z( `7 Y* b
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。3 d2 C% w5 I: ]# E
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。( y+ _/ J5 `: d9 i8 G, s0 Q
下面做一个两种情况下都可以用的函数。6 b* M" @4 b6 e9 z
confint<-function(x,sigma=-1,alpha=0.05)7 K6 D7 ^" `2 R
{
, }2 D" ^/ ]! D6 k n<-length(x)5 n c. V7 S8 f
xb<-mean(x)& y7 V3 @! ?: S; X0 y9 V: ^# H
if(sigma>=0)
2 u, }+ I* I" P. Z% b {
! G8 n8 r% l8 f T) q" _3 J tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
& u! C. X7 A* @" V. ?+ G8 P }
: |- E/ B. Q' Z else{
6 ^$ {' }1 E6 B8 ^ tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1+ V! O/ U, d$ x! G' j& x, u
}( c) q1 O4 q M. Y7 c& J# @
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
# h0 q( G' R% N9 Y! y% ^, K5 q }# h* H3 O( s i3 q$ C* p7 b: R
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ) E ^9 A4 y( v% I
这样就能计算出结果了。
1 j' j. ^4 N; M5 r# Z/ v2 w1 i: @0 ?' f5 z$ ]0 p
4 P3 U1 t7 \( R: X
|