用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
3 b8 Q8 X/ b% Z* }8 L如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了1 U+ v& X) m. z8 Q; R0 {1 J5 [
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
' d" r& F* z6 w) m* E. W' x3 I我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)5 X' x, y8 }8 ], A8 n
t.test(newbomb)得到的结果如下
* \2 }# M. m. I+ _; V0 u5 b1 q* j6 m9 L: ]: H7 X! G
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。" L: N7 A: g y* H# }. Y4 z4 O
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。- I( [* C( X( g% m
下面做一个两种情况下都可以用的函数。
3 b, y& `% S; P) ~confint<-function(x,sigma=-1,alpha=0.05)$ L9 U% i# d$ G' v( P
{# I3 U( F/ N! w! o/ d& s' n
n<-length(x) H P5 s( d5 S# c, I
xb<-mean(x)' n1 [9 z4 e+ x: Y
if(sigma>=0)
0 s* {5 r+ M( n {
6 f# E5 G, h1 _$ J& w5 o5 R( b tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n; N- {4 _8 {% a ?
}! t; J4 S; C' K f8 c
else{
* ~4 B! _1 N% c) C% l; b tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
( I* \8 l5 r2 p }% h# S _1 ?6 r# c
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)* e, [/ j- [' n( j
}& |) X4 b* X/ h; P$ G/ Q
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) d. `7 u8 K3 M) E2 E
这样就能计算出结果了。 " x9 M# }- i9 P7 d2 w
$ O* Y( u) I0 v3 y% o5 y" P+ x! d) N& _$ \
|