|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
: h) p1 Z8 z8 X! t& A4 R! Q如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了1 L% O$ S# t, w
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。4 }! p" h9 O% X" Z8 q7 i6 L
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)( q* L* [( D' X7 R' E, X
t.test(newbomb)得到的结果如下
- {5 l% m v, B8 l% G+ t5 Z$ l" A. m9 n% P P' N6 h. q
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。, j9 n7 U* _) Y* m# o$ F6 T
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
0 M9 `6 M! f" S下面做一个两种情况下都可以用的函数。
- E5 C; M# N8 `) R1 l1 xconfint<-function(x,sigma=-1,alpha=0.05). s" I: o4 k9 O& A. l4 L
{! d) E9 K" c7 _* o( N
n<-length(x)
2 @1 y2 n6 J8 L% U7 u xb<-mean(x)7 P2 W- z7 X0 ~3 \7 [1 e( w9 z# d: `
if(sigma>=0)) s( @2 _8 p9 M+ S% y3 [
{' x7 M. B; B& \- _6 s X
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
; b H$ v8 q' p, u. n, a, s }
+ @2 ^1 U" e6 Z! d8 b" q else{* g: @* v8 J3 h) X6 Q8 E
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
8 j8 K/ P: d. z3 A7 l. u }
4 n* K, K! X0 V4 Z4 t1 |# v, M data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
$ ~6 e' `8 F; _% K( ^8 r2 ~+ m% m }
) z" Z+ ?' L# \) t+ d这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) + g0 v- _. D& \
这样就能计算出结果了。 0 \$ V8 _+ Q/ n# k0 ~8 q
, R, d2 `% z9 Q
0 I3 [' L8 R# R |