|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
/ U( F% p& P) I3 o如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了9 B2 F; | ?+ d8 f$ y# ~
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
' E/ h4 v+ n% B( p9 C& `我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
% B( n4 ^: @& Y Mt.test(newbomb)得到的结果如下: j- e4 K, f7 I% _
) \: ?+ M& p- }0 L2 Y% w如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
! m1 L# B( Z: F) k! @当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。" Q3 o" |) P# E( c" U
下面做一个两种情况下都可以用的函数。
; N2 G; U1 o; V% Y9 Z5 \; R, yconfint<-function(x,sigma=-1,alpha=0.05)
+ m/ x- z9 F U {2 P ^" p8 ` j
n<-length(x)
5 v: d; _0 j) S xb<-mean(x)$ `9 M, z' D/ ?5 a
if(sigma>=0)
7 `, _$ m9 W& O* e {
8 j% [% {7 s1 m tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n* C/ e4 L; ?1 |) }$ v( S
}! e) f5 m( ~6 g$ |' j# \
else{5 f, b% k8 a$ y9 V4 s4 k
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1% S# e6 `6 S1 o, Y) m! ^
}- C% [5 H& S ]4 W! _ c3 ] `0 @
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp) A6 A) b. T0 N* I) F
}" a8 Z2 Q6 z2 x
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) 3 G, h5 u/ B) M) B1 [# K4 l
这样就能计算出结果了。 ; j0 H$ |1 X3 \# {
0 o; X2 C0 I* G- M0 l' S
o& u2 B0 q+ _: J' L
|