|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
+ b3 B' g7 v) G$ n& D! h, Z+ j& ]如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了% S3 d. z' F6 f# Y
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。$ p) q3 u' r: a& G* L( z
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)+ z; z" B3 Z3 r, K6 Q' ]4 Y- B
t.test(newbomb)得到的结果如下- y; T7 N: \& P0 t
1 A( T. t. r* v: ]8 C {
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
L+ N, z. x; H; r( ]# a1 V. A当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。0 [7 _$ P1 y& C" l# b7 w( |7 o0 E
下面做一个两种情况下都可以用的函数。
- b$ v6 o1 i! V% B6 U6 vconfint<-function(x,sigma=-1,alpha=0.05)0 b$ p' M1 R; {9 @5 f; G7 d0 I
{
2 m; Y/ d" b, V* A! C) C+ \ n<-length(x)1 N* z5 J- C7 {& o' k$ ^; ^! [, [
xb<-mean(x)
- ?( @+ B2 ^3 X8 F& r! G if(sigma>=0)
, o$ g- Q5 A! K% L; y2 l* G {/ }+ O% M' Q0 u( G
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n" y2 I3 e; k0 K: A
}
3 m% d6 c( ]+ S1 }, ~ else{
* i8 o9 O5 W9 J8 i; ^) k9 l- Z tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1; a6 l: [9 f2 L
}
: p% Z& Y1 t' W0 {2 B data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp). W5 n5 o; O; G D0 ~
}, [# L' A/ m( p. @9 N) O
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
. q/ ? J3 O$ e6 \! x9 v7 y这样就能计算出结果了。
' ^8 z7 S9 w! C; b
) C$ i. c9 D9 h; p( y/ J% u a4 k9 _1 C2 ]$ L+ r" V' s
|