用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 - p* I" c, c, E0 k3 O. h
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
3 L. m; N- y L, W$ P首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。( B E; [) B$ s8 }- n+ ~5 {$ X
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
: Q% A5 ^1 ?) T* p, ^% Mt.test(newbomb)得到的结果如下
+ B. R' Q5 [8 L. B4 u5 f3 {, a0 o( w; t' x
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
$ ?. }7 W) `1 Q- }$ k+ ]当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
. v a ^" U! o下面做一个两种情况下都可以用的函数。# u8 d* q) ] k
confint<-function(x,sigma=-1,alpha=0.05)4 k) Z1 P: W6 Y
{
. N1 G7 v' k" v8 Q8 J# S) p n<-length(x)
5 Y4 o! `( c0 N9 r0 f9 a% L1 y/ l$ ^9 } xb<-mean(x)
$ Z4 q+ x) E! [" m; K1 t0 q% ^1 a if(sigma>=0)
: I* D7 u. [8 r$ i& A4 w {7 e$ k" y6 ]- T4 B7 _5 p' M7 H
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n, U, y" g+ y) A/ f
}6 x l' t$ H6 O# K4 P, {' Z8 z
else{
; g* `1 N2 {$ x; V tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-12 h- l, H |: s! C
}
2 q2 b9 m4 E8 D- b& O7 x data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
7 a( r# c1 f( c, J }
9 E9 t, @5 {* o4 M' M这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
4 P- }; M8 q( I2 ?2 c这样就能计算出结果了。
3 y- \$ }3 ]. y& U' j
# c; W5 X$ P0 |
- x% g( H v$ ]$ a- S& E |