用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
4 S8 t! t% ?, y0 D如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
5 Q* H( Z- V: ^! v3 v. F M% x/ H0 ?首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。* x) G' n! o l/ K4 Y
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)$ M6 @5 F4 g8 ?0 |7 [
t.test(newbomb)得到的结果如下/ f6 r3 z+ W* {& Q, V4 y! a
8 \# H W: c3 e: m如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。0 \" A, p5 A I6 h( q2 `0 g
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。1 A. B- b/ Y( L9 ~* ]
下面做一个两种情况下都可以用的函数。, k+ h- e, o$ Y/ l' g! h, T5 }$ Z
confint<-function(x,sigma=-1,alpha=0.05)+ d1 G" V' m6 i/ g& x' |$ _4 x
{
: D" o( \. A5 [ n<-length(x)
- l& a- [% w3 F. v ^ xb<-mean(x)
# f X6 ^- k& u) I& H if(sigma>=0)
9 m/ V/ {1 h( t5 G0 W {" F' `1 r+ b. P# a8 Q( a
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n. d! ~$ E7 X; `7 H' l# H
}
& c3 W/ o P% X* D, q: g) V* M+ ^ else{& u# p" ~) C& ~4 Q2 V
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1) N% Z1 g1 h5 E1 H+ {
}
6 ?% v A" d. Q; b data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)7 P4 V9 x8 J, X; l3 G
}
( N u( r/ l }' L4 v+ Y这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
4 N# s* O) x$ T y1 T! J这样就能计算出结果了。
4 V: Z9 j5 C/ {0 o3 E) t- {& i. q0 U" }" h
& C- y* A0 P, j* M2 m7 w/ V' ?5 f. S |