|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 ) h2 L. M- _. m) Q$ U: r: X
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
t {8 d. B* \首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
2 m$ t- @+ h+ J我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)1 W8 t: z1 Q" J8 H$ l+ X1 l
t.test(newbomb)得到的结果如下
; P# V" i3 M3 z& e, x, E1 Z
& J1 n4 N5 ]( }' J0 e如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。' p+ S6 T) M: ?& y9 O" [/ T
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
! J0 J8 F. Y& ?7 w下面做一个两种情况下都可以用的函数。. D( L2 d. [, b8 ?( {
confint<-function(x,sigma=-1,alpha=0.05)
& h) z. A+ D% L( j! p% h {9 Y e0 u/ L0 ^: H6 }- u7 r1 ^
n<-length(x)
8 q; n- ~1 E$ M6 i( K xb<-mean(x)
1 r. O; N; l2 k0 r+ M8 X3 A6 [& l if(sigma>=0)
: j( _4 A" \6 ?% g i9 ?! ?) i0 [ {
+ Q E/ X% m+ O- R tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
; S# u! L: h' d$ O }! G# e$ ~( a3 I( \/ j* U* s
else{; R1 a9 Y& m% u3 i+ C6 p" t
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1; q6 y2 x7 ~( D
}
6 T, U m9 x/ R( |9 P data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
+ C" z8 ~ b+ u7 m( X" C* I8 D }
% ]& `+ E* l: O% G# A这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) 7 m2 f0 Q+ e5 v' X2 B% V3 p
这样就能计算出结果了。
; t* T3 F1 Q# O* J6 k/ J3 E4 z3 L" b8 g K2 y
. y6 D7 @4 d5 Y; H7 {' r; { |