|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
; \% z; [+ d4 q8 f如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
- c: P- s a6 M首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
$ F1 R4 S+ X" N) C我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
# W1 p! j" g. N5 D9 a8 I" ^t.test(newbomb)得到的结果如下
Y, l/ i/ c6 f h- U
\6 E/ l0 ~6 q如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。' n5 Y; h" ^: m4 R0 Y
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
0 B# K" S l/ W; W$ v6 k, t# w& _下面做一个两种情况下都可以用的函数。
% }" Y; ~* e1 }. ?0 k- ]) Kconfint<-function(x,sigma=-1,alpha=0.05)& t: P) B1 o+ K8 R
{+ \" z/ ]$ \! d4 {" D- _
n<-length(x); B# E [9 J: Q/ O+ W$ W" z7 P1 p
xb<-mean(x)
: s {/ c; ^$ ~ if(sigma>=0)
% I9 d+ {. U% e6 N {& x, e1 h6 ]' o7 S& r i. _
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
' u/ U* K) |/ k! u }, ?! v: J7 G( N, ^5 i0 @/ a+ [
else{9 p0 l. p+ C& G+ z6 ~- P, _
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1- |) W! ~1 A7 @7 s5 C6 W
}' @3 h( S5 T0 `! g$ Y) x, q" O4 \
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
: y% }' p) `" [# s }
* z" z' Q3 A8 A0 B这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ( J5 x1 d$ w3 w% A
这样就能计算出结果了。 7 h: d5 k, `9 y' X T
5 Z% _ Z8 n( z- W( S
7 f, E( k. I" @2 p) X
|