|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
0 K3 T' S" v' w( c如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了( v6 B" s2 B. J% Q
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。. H q7 V$ a5 a- w( ^
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)& k+ x3 |8 d/ K' i; f" L1 e
t.test(newbomb)得到的结果如下
) \% r9 k z M+ p N9 y2 l) O5 ]3 }* H, ]( g
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
7 _4 @; _7 @1 c% @3 v当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。 x+ A6 u i+ f7 P2 f
下面做一个两种情况下都可以用的函数。0 ~/ i& d: x0 ? X
confint<-function(x,sigma=-1,alpha=0.05)% b& n8 |9 U8 k
{- L! ~4 Z7 j; x8 {% y; T) E
n<-length(x)
' T2 I7 W) ~" d, V0 M3 C; @; k xb<-mean(x)
" K/ |9 [2 f8 s! H/ u1 ^" ^ if(sigma>=0)- u# `9 x9 N" |% t$ E( u. k5 ^
{- w O6 L1 [$ k
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n3 N; m, i2 @, k- g
}
. _5 t [5 M! b$ H' P0 J. l else{! [+ n% q6 C Y0 r/ _7 g7 B
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1( C! ]8 |8 k$ T
}$ @/ \5 W: \/ g) |# o
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
! J. Q$ V1 A6 n B+ T }9 g3 o& _8 L/ V
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
1 l: X; I- q& I0 p4 s这样就能计算出结果了。 7 p, n' O+ ]5 R2 j* j
2 x- q3 p1 }. D0 Z, ~- F
9 {, o$ N, l6 ?5 z7 D1 s' k0 W8 h |