用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 6 d7 p! D/ j3 M4 E- u
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了# v/ Z1 ]9 L6 T8 s3 t- y! u$ U5 a
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
0 t) M m$ z& q我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19). U$ h: b! u, q8 Q
t.test(newbomb)得到的结果如下7 {) t* S8 p0 u1 [3 o7 M/ s w. `
! R" T2 K$ z/ O! M如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。9 y( \* i! o7 K, D
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。: B- v0 \ r k5 T, R9 k
下面做一个两种情况下都可以用的函数。
: x- b" z" U* f! c4 {9 ?' h8 |( z8 Mconfint<-function(x,sigma=-1,alpha=0.05)
0 H3 T3 J( w; \1 G {+ n" d' g; ~! |4 _
n<-length(x)3 Q, A3 j& M7 O) ]# T+ u1 M+ L
xb<-mean(x)+ w+ A1 {- {$ N* c
if(sigma>=0)! k. O8 Q6 E& D
{. f' y2 A( Q) z; m3 t" ]2 N
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
2 q0 g& p; z1 y0 R: M# T3 i }
+ Q- D- V/ w" g5 X' ] else{8 `9 c* V, I/ `/ C0 Y3 z
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
( @6 _/ _! D X$ O/ D% i' x/ _ }/ i w& c: t. m J' @6 f9 X
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)* ?7 [9 x6 O! E. k& l) D
}
4 i- P. d% ^! D7 [) V0 i( S这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) 5 K8 F. X1 \; t3 A5 Z6 x8 P
这样就能计算出结果了。 0 m: D1 I- A' w% x' z9 w0 ~9 k
$ U( X0 t( c: M: ^0 f
0 g' Y9 @/ R4 F- y |