用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 ( d: S( l" a. z( I
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
' v! q9 t b$ y: P0 Y7 ^首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。9 W3 r- [. O6 d1 u# n! C% c! [9 h$ r
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19). H7 `+ v* V/ C2 Y# J& ^8 k) Q. A, t
t.test(newbomb)得到的结果如下, Z+ k* Q# Z- u, p) m( S
; u0 V) E! [% m6 L3 {如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
; f- w% q% `) i% D2 s4 X当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
, V) Q# Y4 W1 e9 v. |5 ]3 ]% x下面做一个两种情况下都可以用的函数。3 y4 ?4 E6 t5 b6 i$ b. Q$ z
confint<-function(x,sigma=-1,alpha=0.05)8 l$ ~0 [ I. v
{
. g; ]9 F) ]2 ?, j# X n<-length(x)
9 U8 e3 e3 M8 V xb<-mean(x)% `8 \7 C/ _; J4 J4 y) i
if(sigma>=0)2 Q4 y3 a; `! e6 n9 K
{
9 k4 P( K0 m* t/ Q( N1 s tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
5 J/ d: d. N+ z, D }6 D2 ?9 C0 Z7 a9 [/ _+ W
else{" o& n0 z4 G+ }$ s4 v
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
5 V! w3 ^; k$ Z7 Q5 W% r }. v) W# L& f/ ~
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
* A4 J$ T- H) O+ b& X4 Q5 X4 {5 q }
6 j5 x& \# X3 G6 x7 e, Q这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
* H, w! Z z* `* s( j) N这样就能计算出结果了。 " l/ h$ W1 n7 K2 O% V9 e1 k% a7 G
; c! {: a, y8 Y- y0 g
1 ^5 s( R& t! C) X2 z/ f! X+ F
|