|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
9 f! F7 h. r! S4 @# Y如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了' G6 n. y& F9 @; w+ u9 A/ ^/ ?. \5 x
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。2 z, k% k/ P3 A( X5 m
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19): U) c6 z7 l6 D9 m0 A& y" P
t.test(newbomb)得到的结果如下' c g/ I5 U9 K; W- O4 }7 g
; A3 f# x5 h B# i
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
! t0 _* e4 {9 v | K当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
4 u h' O! j( ~+ Z* P4 J2 {+ |下面做一个两种情况下都可以用的函数。1 H# E5 N! g7 g! n5 X% \+ h
confint<-function(x,sigma=-1,alpha=0.05)
; P5 x* e" T/ v4 z' W {
3 O& P6 p8 O) F# a n<-length(x)0 Z2 L# g l% j
xb<-mean(x)
. A& y* x, z1 e- B) I if(sigma>=0)
, y7 V/ G7 \, m. A( ~0 z2 L {
1 o! x8 u7 g' v4 w$ a# e tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n9 W# y- h8 e e ?4 {
}
- I! @/ s/ ^4 I else{7 n6 T3 ]( m: W- p# }- j5 f! o# m# q' P
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1. G( M0 m4 t$ x/ ]
}
+ O# x" Y! J4 G P( H* a6 x, g data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
' U! f" S" C1 a* K* j4 u }% Q) b7 a& e$ Q7 d6 Z$ R
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) 5 ^+ n7 D) R$ p6 B8 f
这样就能计算出结果了。
{/ t* g# h) w1 H9 e- S1 m; r. z) h6 [
0 r- i8 X( {9 z; x0 d |