|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
2 |! q) Z* k M( H/ p如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了: s: k9 `# d; s, L/ ?
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。+ M3 F* f- |3 c/ U7 e
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19). [8 @3 {3 ]# z& e" c
t.test(newbomb)得到的结果如下5 `8 x2 g K; a: C& m0 h% a M6 y
' y! f' M8 p3 t# i
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
2 J; z7 D+ Z0 ], l2 v: g) \4 P当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
2 t" ]% p6 ^: D! l- y$ w下面做一个两种情况下都可以用的函数。
! h( V% m/ z+ D+ ?/ n8 W2 Kconfint<-function(x,sigma=-1,alpha=0.05)
" F7 p `0 @3 F t: [1 u {
0 r/ ]7 j( L6 J9 G" Q/ ^. V- x& L n<-length(x)! m8 Y8 r, z8 A+ T
xb<-mean(x)
& Q; m2 }, S2 e- P/ G if(sigma>=0)8 J( w$ ~8 G4 V6 C& r
{7 P" |- x& Y5 B% G, o
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n7 t( H" k9 k0 H5 J6 p2 O) x
}
' h0 }# Y5 Q5 [4 Z; u else{
, }( X3 ]9 o3 }/ v5 E7 m i tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-10 g3 `/ X, O; L7 I( ?* C
}
+ F+ V2 `% w9 M6 n3 }) s& P data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
5 ?2 _: l+ d! I( N9 C8 i }% p. y" h) j! Z! b: I
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) . H; M& c, G) C
这样就能计算出结果了。
1 L; M0 b# Z g; g/ _6 f% k0 D0 ^' A6 B, }/ v
! h0 P9 X( Z4 _5 ~. m* n
|