|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 x3 D. j6 \# n7 p& P3 K
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了8 W5 P& C$ T( W7 \ C- |
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。0 l1 Y0 Q5 v z1 C) A* B3 k
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
; I0 ?4 v5 `5 n& R" st.test(newbomb)得到的结果如下
Q* K0 Z a1 h t; _( ?6 |( @1 n# Z
% ~$ X' ]! R! Z$ {9 y ^. p如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
! {. }7 ^* V2 a6 y9 H当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
6 L$ L/ f1 B t# h/ ]' F- V4 L$ P下面做一个两种情况下都可以用的函数。' E4 z* F0 t! f$ D
confint<-function(x,sigma=-1,alpha=0.05)
: P D+ G( g- v1 a$ F9 L' b( z {. u- Y Q* v& ?* `1 ~
n<-length(x)
l( P' I D+ x, P2 K xb<-mean(x)% [: u& r) ~* E& I2 O
if(sigma>=0)
C% @6 A& B, I; U: h; M& j {
5 i/ b' j5 h7 j e6 W+ f+ \, T tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n& ?+ e- C4 z5 R8 k% c4 t2 {* N$ O
}
! l8 C. C) q" Z3 U* J7 b: u, V! d else{
5 Z# f5 X5 F4 h, q$ h tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1# j2 c# a# g+ @
}
: _" {% r) z$ _3 ?* Z, ` data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
/ @# L; I# {+ B4 G) R2 x! v/ a }" q4 s z5 }2 g D7 G& N; s" Z
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
, {& f! O3 I7 s8 |5 o这样就能计算出结果了。 + c \* n' F( h6 T9 f
/ G0 R& q9 B. Y+ ]* U/ `( O0 p3 D2 W- {7 ~3 h9 l' k2 S
|