|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 * d/ _" |/ a+ k9 i% f
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了" C1 v& @$ _& t
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。! g+ [9 N- Q4 `4 L, V
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)2 m B1 N& X" x' r; p
t.test(newbomb)得到的结果如下
/ ^+ y8 h. \! y& ^1 g0 w, U% s B
7 A0 l [6 V" H1 L$ B! P/ Y& ^. j& R如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
* ~2 s, Z1 A, j+ Q! w当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。6 b, E% e; ], H6 v# ^
下面做一个两种情况下都可以用的函数。) r+ v& q; d8 Z/ b
confint<-function(x,sigma=-1,alpha=0.05)
: n6 h4 f* P% @" G {" g0 s7 g% j3 |" U! ~- q2 B
n<-length(x)
/ K/ G7 }) _! k2 i xb<-mean(x)
# t9 r" Z2 s0 p0 {4 a7 j& N- |1 B' i if(sigma>=0)
! l! K# A9 }7 P# i4 B) \ {% j0 s+ X* S; ]5 ~; Z8 Y
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n# Q9 |. a, E. A- H7 n
}+ @& y8 N! s% S( E0 ~
else{! @# i: F5 _2 u q2 j
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1: E+ q3 M: G) g, Z
}
. k2 T1 o3 a- G: h% n% N; }# x( P' O data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
4 B! u& J3 o7 _ }
, d( p4 G2 M. E% T$ A, X3 K# \, Z. F这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ( {. p6 ?% C+ k6 ?
这样就能计算出结果了。 7 j! M3 o A* K7 m- e a
2 `2 ~" z: ?; l$ q1 M' [$ x
1 O9 X0 }2 `: Z2 }$ j+ k2 A |