用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
/ d, e7 t; L5 ~7 d z j如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
9 X& F4 C8 {( n+ W Q8 {6 Z首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。& \8 l& Q' m' B! M
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
! w3 `$ ?! \5 L, W' j% Q6 B7 |t.test(newbomb)得到的结果如下
' H8 R3 r& g8 n% O; E; c R- x
: e. g" {# [# H4 w* x如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
% p; k2 x. J# V8 ~8 P( K当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。7 g2 c* m: t& j6 C
下面做一个两种情况下都可以用的函数。( j+ D3 c9 V- n- F" B$ ~$ G
confint<-function(x,sigma=-1,alpha=0.05)
4 F5 Y+ q$ A4 G. P3 j) } {' d/ H2 t- ~3 _' d: o l
n<-length(x)$ P$ I/ v% m% D# U3 F4 H
xb<-mean(x)& _* i" \7 W' q
if(sigma>=0); b, y8 `! M( E- w
{
* R+ h4 D C$ @* l( {7 v3 X tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n! g6 M3 g" L; j
}
# G9 s- h. V, K* I else{
* @2 v& R8 B9 v- ], t3 o" D& A tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1( y# `4 @& q. h# H! W, ]2 k
}+ s( t/ g$ I, }( K5 d( g N% `6 z
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
( A- @6 `% r0 @! I6 }+ t. F$ I; e& J }
" |2 m" i/ ~" E& J/ [这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
; H1 A% n; h2 S' x这样就能计算出结果了。
! i. o0 m0 {3 O, d
F$ x0 J# {& l
- @2 B+ Q( L' X0 d( \! { |