用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
3 r6 \8 T0 s! A如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了) q |, b. K, k& m
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。 ]& i$ g6 u. V3 t8 m
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
$ }, P* ], n l$ N+ R& }. }t.test(newbomb)得到的结果如下
2 O* G& g% L! ?6 t3 t- H
2 `( b( G, j) p4 D( j( j9 Z1 M" j如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。" y" F% w/ A% n) z2 T( N" o) B- k+ S
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。# v! [: v& u$ F
下面做一个两种情况下都可以用的函数。5 H3 ~0 I1 j5 q4 \
confint<-function(x,sigma=-1,alpha=0.05)
; h) x$ L7 N k% P; x+ h {
/ d. X9 n- ]& y0 Z; W0 q/ w n<-length(x): {' m! c/ U: Q3 c; r+ C) P- Q0 s
xb<-mean(x): |& E4 g0 T: I* j3 Q( R
if(sigma>=0)
! |2 _- K! ]5 _: H- C/ _. T {
5 T/ q9 ~$ @4 P. F9 w$ c; G tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n' m; i% X: y5 _" u! B g
}$ O8 Y: K( k$ r3 X+ v. X
else{
7 W. R/ @/ ]7 W; i: H tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
j( }1 ?/ [# [. D }3 }# t& B, b; A r5 R: y( i
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
% n5 B5 R4 J9 V# P& Y. V8 R }
* `# H6 o% Y9 w% P9 |6 U这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) 9 w" M- H5 y# u) \) r6 T
这样就能计算出结果了。
' h( i' K5 u, M: r6 d- v
8 f- h4 v7 R1 w& ~. c- G
% @- @4 w, O- i& I) x# j+ _2 H- z7 V& L |