|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 2 W |. j6 q2 o# g- Q
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了; t' N- M7 S/ P& I& N6 q V$ l
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
. A5 E! K u8 n: b, T+ b我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)2 ^: {% @6 ]& {5 x& U
t.test(newbomb)得到的结果如下
& Z6 F9 v; {8 O5 L, Y4 {; y
) W _/ u! [+ f8 G5 A如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
! s6 z- d5 y' g* q3 d1 [9 o- Q当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。& r9 N3 k, T6 l8 q
下面做一个两种情况下都可以用的函数。4 ~! r- r* M L. m' A0 Z
confint<-function(x,sigma=-1,alpha=0.05)
( ?' u& Q- Y3 x. r: G {
+ W6 C4 Q. c2 Z: @ n<-length(x)
! x; i5 S8 K2 H$ E' { xb<-mean(x)
# K8 R0 ~$ T) `6 E5 D if(sigma>=0)" ~" u% L, K& z5 x+ H- H
{
0 v8 n# W* f! r: N3 H# l% g" n tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n* j; w; i, f ~. I
}
, R6 v5 |" F+ d7 D else{
+ v: ^. ~. Z M, l8 G. D# G tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
1 O; z- v2 B0 @! Y' ^ }! j. D* P4 V2 ^/ m0 s
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
% w6 e3 l0 o. G# e z- m }' f1 Q. I0 ?" ^: R, r
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) / Y3 _! j* J, o& U
这样就能计算出结果了。 . B. z( M+ H4 D$ N$ I. t$ A7 {
2 m# F8 h, n5 ]
! m- o! |, s! ?0 ~& L7 t6 e
|