用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
3 ~( G, o: u, O, L$ N* B如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
' Z- b% o* T# J) d6 z. v+ i首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。4 v* W8 y7 T+ N3 _. B8 s
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
% s0 O) |6 `. ut.test(newbomb)得到的结果如下5 I* p5 z8 p8 |2 @
6 B, g6 A# ^6 J& H
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。7 x& W! p/ `7 h/ X: O
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。 J8 U7 h( K4 Z5 E ~
下面做一个两种情况下都可以用的函数。) g* w7 m7 i& _) q% r0 N+ g
confint<-function(x,sigma=-1,alpha=0.05)
5 f8 P0 q4 E# s) v6 Y, j( O; s {( S4 H- F; Z6 Y9 R
n<-length(x)
& ^& m. v$ |& @0 l+ W8 ` xb<-mean(x)
3 v1 @( G0 @1 F! ^! `! `5 j5 t if(sigma>=0)
: T7 z: I$ d- ` l {3 J1 l5 d: i& b. m
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n# C7 h$ A" [8 C# B
}! C8 z& |5 T1 e1 f5 r0 g I! H* g
else{" K/ `8 X/ k% i3 G# K3 R: r
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
# D- n, F. c$ M7 U \ }
3 n/ z! F; E+ U' H5 R data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)9 m& G- G# x; g2 R" Z2 n2 b8 g
}7 Q/ ^# R( Z* J) {
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
0 w! B) Q6 w- \0 L! ]这样就能计算出结果了。 ; E# o3 O# L/ N5 v' h
$ l/ V: m; `3 u; d% k# E: W
; U+ B$ {+ ]; H& v4 | |