|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 $ o3 e3 s/ `# i: ]' F+ y5 P
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了1 Y; h: p, s i4 w- f: E
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。0 t* E4 k" a4 X/ p# Z/ M2 v/ W
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)+ [- d( |+ Z2 f* |. _0 S& v
t.test(newbomb)得到的结果如下
8 K5 D) @) Q) K0 Z9 t$ p D
$ v& j% e% W3 Z如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。! D* k( {% \1 ]2 w, @
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。; v, _. G1 w0 k
下面做一个两种情况下都可以用的函数。+ g( e+ T! I! Y7 F1 u) _. H
confint<-function(x,sigma=-1,alpha=0.05)/ g$ m: r# f# J, t% B
{& s7 V+ h/ G. F
n<-length(x)
( ^* B% J8 q: D4 A* J xb<-mean(x)! X; d; B0 \" ^7 Y: s/ [
if(sigma>=0)
$ \; X' v& p1 w3 L$ W3 C7 r" y {3 q8 f0 Q! P# }! C1 T G2 w0 p
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
, l: n6 u R; \$ c" A/ [ }
- ~0 m4 B4 z; b9 P' q+ [& ^ else{2 n0 _& b E) B$ `. ]9 u
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
! U( t: Y& I! O' f; U: Q( M }
. r6 S5 K) `$ ]& c data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
. z& B1 o8 `$ P7 B" y3 n }# o; A- R" S3 i; x
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
2 Y6 R: }% m( s7 ~& ~) }! \# L, X这样就能计算出结果了。 * Y* \0 A1 _0 Y3 @1 d9 I7 r
) N i/ s$ D8 I
, W* [9 x- o, n# X |