用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
* _" C% U) U, y$ R* C1 i如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
: a2 d& q: ^7 ^) v$ M6 _' R首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
& \1 [3 i, n* w) |我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
6 b J) d: j1 r% A6 It.test(newbomb)得到的结果如下* ?% m& Q2 c. U" o8 \
1 L6 _, Z* p+ h+ S0 a' t如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
7 [' z: h: l% O# A/ h; T当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
K5 Y u) l! j下面做一个两种情况下都可以用的函数。
/ k3 `& t T! E( y, p: v* I+ f( xconfint<-function(x,sigma=-1,alpha=0.05)' Z, {9 f8 w4 B5 ~) U
{# p" G3 ?# p/ z7 u/ k
n<-length(x)
) _' L8 G" O- }% y0 K6 _! ] xb<-mean(x)
2 v8 w3 U6 I1 b; T' Y4 c/ F/ z if(sigma>=0)
* k; D- t( ?8 A {$ K; W3 I7 ?4 }
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
! V3 {; }/ a4 B4 { w }8 E( y* x" O& w, h9 u2 f* x1 L
else{
' L3 R$ p1 b8 J9 } tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
4 Y8 t, L5 m6 s+ r1 h" u. u2 B }
& d- e6 F6 L- d+ u9 O; T data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
. |4 v6 v; W7 |4 I# Z. J7 n E }8 r! y" c" P1 q
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
3 a# O% B" Z: p2 T' [% g0 k* ^这样就能计算出结果了。 2 t" R" b- R) E: @: ?
; O Q& ?1 i: R& i9 o# W5 Z. z4 r$ [7 g/ b4 Y& n# M2 J
|