|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 ) @- P. O! ~1 k$ O, ]% P4 Q
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了( Q1 F, b5 M }
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。: W. m; C- q; Y8 m
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)1 B5 ^& b [: V+ V
t.test(newbomb)得到的结果如下; D8 K' i. r; o3 |
; ]$ T) I4 \" s7 v7 c如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。8 I Q k2 {% ?( |$ X5 O
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。( X& @6 w1 c( w# c) J
下面做一个两种情况下都可以用的函数。
_- @, m, A4 W' C: K! ], [1 x) _confint<-function(x,sigma=-1,alpha=0.05)
: a, K5 \. b& ~, c c {/ Y& E# W& h4 |5 ? D% V0 r) d7 Q) A7 H
n<-length(x)
+ z' ]; i0 x& l$ [5 ?7 c c xb<-mean(x)$ `, c; [; F; _: H
if(sigma>=0)
/ X: i2 H' X! S1 ^ {7 e: O; ~0 q* a: Z7 o% Z' E8 \" o
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n `5 F: g9 h- Z1 y' b% e" P
}
5 M) N. v( e8 @; } else{
/ R8 w8 A4 o% f2 t tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
& E9 j/ v% n$ U7 l8 k: y/ | }
" |. O" `) ~* G) J data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
+ D6 Z8 `" W& r }9 W' ?8 U9 R- {, `& M+ \8 l
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
* ~: e7 p9 m+ f5 k. c这样就能计算出结果了。 : |1 h* T; Q4 H! W" A
9 ~3 ~! H( w: t5 I1 a4 K# Z2 q7 O4 D
|