|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
7 {( l* K+ r1 m5 p4 m* V6 ?- X7 y如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
; L4 Q# l% K# F* z7 }1 U1 a首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。$ Y; T3 t7 L. k3 T! ~
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)7 @9 Q/ \* s; ^8 q( C5 E# i
t.test(newbomb)得到的结果如下6 ^( w; G8 e. H! a
* D- j. f, u5 }0 }& G0 e+ ^如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
2 K: X( P( H1 h: F' z当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
1 j. O& \8 [% B4 ]下面做一个两种情况下都可以用的函数。
% @2 i# n4 c; ]$ j" C) R: iconfint<-function(x,sigma=-1,alpha=0.05)& g: |$ ~/ x9 \% r" ?
{9 S; {% ?9 E" G
n<-length(x)
/ x- W7 E% @7 l1 s, ? xb<-mean(x)
5 t9 x8 O4 J6 j5 F+ K; m- Q if(sigma>=0)
8 m# i; b. J. }$ e5 [3 ^+ v {! e$ R! q4 R7 _6 [
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
, i a& ~, M( D) t4 f- r }
. t5 S6 l% C) U7 X7 E else{9 ^' S# j; V( M5 ~& `$ P2 d% x# a5 v
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
( u& R; @7 e) a5 Z# r* w7 r }$ h' ?+ J" v, A6 l, y. D: E
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)' H% ^6 V- i; a* F! {
}
( I [9 |7 a( l; h0 g这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
! F! y8 @5 f8 h& X9 K这样就能计算出结果了。
; l2 h, I6 J) l6 J$ O5 p! ^7 b5 n
2 k; |: X" @3 ]7 `. r0 v2 a6 M! A3 p- M6 Q# n
|