|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 + d( k5 y- q- S# v( t2 C
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了! e) h$ R0 w! V4 e+ F
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
$ y# F E% E: \8 e+ i& ]" u X我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
4 R7 Z# D4 i3 } T. d! k3 {% @$ Zt.test(newbomb)得到的结果如下
% i/ }" r1 C4 W; t- m P4 ~ _4 ?% y; y' C2 g: S
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
6 G4 U6 w: w+ ?' X# r* z当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
6 P: } h+ J% A下面做一个两种情况下都可以用的函数。5 S" U1 w/ v$ f& A
confint<-function(x,sigma=-1,alpha=0.05)5 w1 T% `/ N v; V% `5 U4 Y1 r
{
$ w6 p8 _+ V5 ]5 c n<-length(x)
9 B- k) r5 g8 `" u1 f; o) e& [ xb<-mean(x)7 ?# r9 l8 c4 x; ~; P
if(sigma>=0)5 ~& Y- {, ~1 i& I* i* o+ e5 m5 N, n
{2 [( ~9 z& h# b8 j( l
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
; T7 h/ W3 P9 f, X3 t6 D }
9 M* A, M& D; P! U else{
+ d+ o. x) r+ | E( k tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-10 n9 @1 y2 k2 f( d7 p
}
! ]) t3 d5 a1 E' ?1 ^ data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
. M. u2 s, V: w# E }
' K2 e3 o4 s3 ]( T ?$ @9 s4 b这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ( H: w+ R2 A' ]3 Q
这样就能计算出结果了。
5 Q+ U! b" N4 ^+ V: D# `
* _8 t5 Z j. U& z- ?& a9 R6 x& N* ~# W6 V% u! G2 ]* q
|