用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
( [# c$ ~* o) a+ ^如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
8 _ Y" f+ q' _( A首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。* F9 E8 w. ^' h/ r
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
8 ]* i6 t: \$ f6 T$ {- R/ ~t.test(newbomb)得到的结果如下
4 ? P, ], H+ p) ` V% W8 j/ r* P6 P! L" C4 `$ j1 h3 w. u
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
+ K E! M- w4 g" {当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
0 V+ B7 U) f) l1 q& r! w5 `- E; r: e下面做一个两种情况下都可以用的函数。
, X1 ] N- y+ _8 W$ ^" }confint<-function(x,sigma=-1,alpha=0.05)
( {) B( e" R ^8 G6 B {
( ~5 R% @: L. [, i n<-length(x)1 j) `2 a% `2 ]& h3 c( [6 F
xb<-mean(x)# ]/ {* g2 }+ }: C/ g3 U' E& D, r
if(sigma>=0)
% Z; z2 ?" T2 \8 [ {
, r, \. R& T0 Z/ l* [1 P9 w k3 n8 w1 w tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
: e. |6 i' o4 K/ I1 n; X- t }5 a% J- ~# S8 W: P' |7 m
else{- e) e% \ p% [' X( a' X& R
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
. w% W/ p3 x% J }7 ~. B; I5 j/ e1 M+ f
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
1 l2 O# r. X8 K/ \: y. O6 x }& K9 L7 Q0 ^% N4 c
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
0 i5 b( I4 n2 I这样就能计算出结果了。 0 B. H& ~& e: K$ C) Z" q
9 e. U+ g" S6 N( K- I
' o* f4 R/ X l9 K1 m |