|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
$ H S$ { [2 R1 r. m如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了2 B4 I% E$ ]8 E
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。) P% B3 ~: e3 @+ l; y: Z
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
, d# a. D; Y$ [7 y2 ?! vt.test(newbomb)得到的结果如下
0 A; |. x5 p& A6 s& R% @* u, z0 g( [' o9 \
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。, j# d* u: a! p; m
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
7 l5 r0 ?- n0 X下面做一个两种情况下都可以用的函数。/ T. F* U1 ^- ]+ \
confint<-function(x,sigma=-1,alpha=0.05)
9 F2 ] i! G x" A0 O {$ o5 i q- j/ l) B+ d1 B9 |; O2 ]
n<-length(x)
( S! c1 @& T- O* S3 A, Z xb<-mean(x)
# W, {4 E) z1 F6 A: o0 j% m0 P2 l/ x if(sigma>=0)& C0 V% n+ I7 z/ e1 s/ e- [
{
! v, Y% Z8 f( I1 G( v" j tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n1 I5 ` |( m2 f% _* ~7 f5 w
}! q. t3 t) L/ e! v3 F
else{2 |7 j0 L) z. a! x; R
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-11 k! y& J B7 i+ I' U, G
}
7 ]2 W& S ?. O/ y) k$ ]- q* K ` data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
7 e9 [, C/ O! q3 X% Y# I9 U }
3 U1 _) F7 i2 W# W. C6 [这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
1 p7 A1 G7 t6 [ ]5 \' _" p9 `这样就能计算出结果了。
: w3 B- x) d+ }; v1 x m
$ u" N/ W* K! D5 e$ i* u \: e! c, P$ n. e% x# C
|