|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 ! M1 s' G; J1 e
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
; B! i2 s4 Q/ I# `首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
) |, U6 I# j6 P, B/ X: b6 ?我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
9 H \2 V7 H! i4 k& yt.test(newbomb)得到的结果如下' p! _8 M" i4 O* I0 i2 ^' v- \
( s( N( q) A' I! s2 o( j
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
- C. H K" e& J! Z. \% _! L当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。& R$ K8 K9 d8 y K
下面做一个两种情况下都可以用的函数。
$ D% n" w& e' q* ~- Uconfint<-function(x,sigma=-1,alpha=0.05)
& p! c3 `1 v$ h$ D8 s {
. K5 c/ v2 o, @: Z/ f n<-length(x)
. Z" f7 S, h: f xb<-mean(x)% ]# \& T* h7 r& m0 l, K
if(sigma>=0)
1 z2 ?: f) Q# F# J/ n0 Z {1 s2 R9 v* N8 h- {
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n! j0 w8 G% g0 S7 Y& U
}
s5 v1 y4 v- J else{9 i+ G! H% k& R. h5 J1 X" ?
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-18 p' @/ t) ]/ r- B$ y
}( G& g& Y% O, p% L( B+ Q+ K |
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
* V* X5 h. T' X4 \ }! }* y: F9 E+ e' w# | W$ j
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
" G' X3 ^* _ h% n" P这样就能计算出结果了。
5 L% q% n/ c* Y& C* Q2 K; _+ q: R* I' v5 i
U' H) `. M7 T8 f# w4 g$ t, x1 ^ |