用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 8 h4 _5 z+ Z$ H3 ^' o9 O2 I+ B
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了 X" V+ r% d. a- F1 G' `. b
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
% O% P# J. `0 y! c1 K. @我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)9 x, Y6 V# z; w, M$ V0 O% b/ I
t.test(newbomb)得到的结果如下
/ M, _+ v, f. r e, S7 t) \% u$ t) g, c5 g' F5 q! F9 f9 j: y- |, F
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。( P4 H! U' g- c) C i: B# h1 y" L* J
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。4 ^, I8 {6 ^6 Z$ `5 C- W4 e$ v
下面做一个两种情况下都可以用的函数。2 B, Y9 R' b6 e
confint<-function(x,sigma=-1,alpha=0.05)
% o% Q& y Z% I: l- Y. [! a6 n- e1 W {% [: o! Z a/ t! z3 J+ q
n<-length(x)
& F( ?" m3 p ~9 E9 X# N xb<-mean(x)
& G+ e/ u# z8 P# s' n+ g3 X! w3 Z if(sigma>=0)
! X* l9 X9 d$ {* P9 J# [3 }% {1 | {
& q3 |: u$ z8 S) J# R tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n8 w" `4 a/ [5 p& j+ ~ y
}- y7 | I- D8 R2 o5 N q3 o
else{
. q: E, ?! I0 j9 G( C tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-19 K( G9 Q6 `+ w4 }4 x" P
}
0 g0 ]# @" `3 n: w) L, @ data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)+ x" h% H" f8 r2 Z8 l
}9 ?& s. g& J" H* @
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ) q$ Q: l7 ]$ j0 B
这样就能计算出结果了。
( ~) A3 w0 r& R+ C
% R/ s6 e, l$ a% f( S+ j- U( K- w( f
|