|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
; T+ S7 Q$ K' U如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了& ^- u$ `* h7 n
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。& }( x; P4 Z4 C1 W" k* t- k
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
5 {7 Z8 m) _7 \$ V% t; rt.test(newbomb)得到的结果如下, p3 W) A: \6 R
0 ~% }. g7 m- j) W
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。7 T4 b4 A9 }1 f1 \* a t
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
, p& ?) u/ D5 L) W下面做一个两种情况下都可以用的函数。3 _& q h2 f0 c" n; B0 u
confint<-function(x,sigma=-1,alpha=0.05)
5 {) y' K% V, h {- G. ?9 Q3 h- @8 ~+ H/ r+ Y
n<-length(x)* i- V! J5 C) j6 ?
xb<-mean(x)
1 b2 }( F+ L& f2 Y9 F; a' [ l if(sigma>=0). ^& U8 _9 S9 K3 |; [4 Q
{
& x6 k& W( H! r/ r1 A9 h0 j, j tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
# ~' E2 }9 G0 B3 P0 T: u }5 s1 k9 X) _4 p J$ ^ V
else{
' E F( \" @; t/ K! T( F/ c tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
4 w$ H& p6 \7 _3 V) Q4 v; N }. M% k4 h4 |- E' [7 V/ o
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
* ~6 S0 M; h/ ?+ y }3 m1 R7 I/ _9 u3 Y" I
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
3 k# q; G9 A x7 E* S8 {- u, T这样就能计算出结果了。
3 W8 i# x/ o9 u: }# R
4 ?, `; {' n% ]* A+ u! \
( Q$ m" A7 n- W# ^9 E: A8 I |