|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 5 D& {9 [3 n. Q, V7 J% d0 l0 I
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了& h \9 D& ~5 A* E% o
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
3 F8 R3 h7 M2 \) g我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)( V- C, {2 b0 o7 {0 L2 v0 U
t.test(newbomb)得到的结果如下' Y' e2 U" g1 v ~& q. j7 z; }" n
" ^$ U/ L- o0 c* d- w& V6 R n
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
$ u$ l" ^# ]) Q- S( A当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
+ K0 w+ {% C% D! Y/ Q下面做一个两种情况下都可以用的函数。* y: [ }* V3 D' |# L* |. o E
confint<-function(x,sigma=-1,alpha=0.05)
' |/ I3 t+ o0 [1 ?. N {' W1 ?" @+ k5 J. R% I; Z0 s
n<-length(x)
/ u* q6 f! w. \' e# M! ~ xb<-mean(x)% J, w- [; S/ I7 g L
if(sigma>=0)
3 j5 c% F$ Z+ g: O/ G. l. Z% O {8 E. H( c4 ?! \2 M0 `; s
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n# `" {. x. L& o( ?1 V
}
+ y+ w8 K0 f! |5 B# R else{
+ U; c+ q1 `) t) M9 y# O3 O ^8 f tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
1 x8 c6 L" i9 A* q; A }
* A, |: \, G4 \' k' J4 q9 q! D) z data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
' i* M4 S: f, {! L: h }
: V) V% C% z4 k9 P这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
! R2 x! N+ w, _. e* q& R+ D4 K这样就能计算出结果了。 ! e g# ]; q. f2 D5 _8 G4 h& U
( o( v# p, B9 n2 F* c# `
. j- O2 X% \5 T' J! P3 q7 v |