|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
" X0 t4 ?2 h* a- ?& y+ Q1 @* }如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
8 g( z' t# D6 \, j* E. v) k0 J2 _/ R* }首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
) H7 b8 A) [- l, R我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19) z7 R7 @% F; q b9 d# i9 i
t.test(newbomb)得到的结果如下
8 B/ y7 H+ V' a/ J2 o! K3 @/ J/ ~2 u/ X
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。( t8 b @8 T6 V2 W
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
8 f% H4 {4 b9 _下面做一个两种情况下都可以用的函数。
3 |. i" l6 w: mconfint<-function(x,sigma=-1,alpha=0.05)' u$ P, p6 U) `5 {
{
) ]5 ?8 }( I. w. X8 V n<-length(x)
% m' c9 X8 B) ~& [ xb<-mean(x); a& [& m" O% r9 q) W8 U
if(sigma>=0)
O; W9 G* l$ b7 H$ _2 Q- ]0 b {& K4 z# T" X. E8 c% A" N- a
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n& S/ M( s8 i, J
}; i3 a3 r5 o( Z7 @. J: d' j
else{- T0 ?( F5 a: K7 W
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
' E9 i! {" z, E0 L) y }6 Q8 D9 E) @* y$ k0 ^
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)1 x2 X# k2 a4 k+ v2 p
}
6 y; a7 Q; a& t' K1 ]这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ' p4 ~- p R2 @! o$ o9 I6 l+ \2 j
这样就能计算出结果了。 0 z4 F9 o v- m" u, R; R
( A6 ^' {" E, b" @9 [/ F r7 B. Q4 P
9 F( H& e( _3 t( E3 W0 @+ v |