|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 % N& J/ Q- m$ M- W8 o" [- `
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了7 `+ n5 Z# j p) n
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
' R0 X# W1 B: u2 l我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
* s0 x& f6 d+ l8 a& A4 Lt.test(newbomb)得到的结果如下( P. X# }& h" B, ]3 {, B L7 r# F
2 E' g; p( u6 t3 b7 C) c, a
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
% _! r/ E( `) {9 I [: x/ y当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
; u$ i$ X& H2 h# }- T下面做一个两种情况下都可以用的函数。1 l% j R2 }3 k/ I2 o
confint<-function(x,sigma=-1,alpha=0.05)
1 l8 m C% x. c6 F$ V: [3 C {; B7 M6 R8 f1 ~
n<-length(x)
& a I: e3 g7 V xb<-mean(x)% ~/ q3 G, ], {
if(sigma>=0)
( I) C- x) p* l! F6 u X8 T3 _" L* k {
% N) f- o- J2 X! Y tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
; S4 v l& P# Q) z& ]2 K% o) U }; G0 O( W( h z& {/ ~5 h+ X/ u# Z
else{! E/ {( W* I7 d5 e4 ]
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1* r, o( s# }- H0 ~: L
}
: I1 {0 z1 w" V9 s3 A' N3 S S; U' d data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
9 ~/ j* `& i) Z: P& m: p$ b5 z }! [5 x6 z9 F( ^
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) & a; I' U6 [5 _8 G- R# V. q) P* n
这样就能计算出结果了。 * R) a9 P" X" `( {: L0 F0 J
# ^: I/ y" Z" v2 W4 b- I9 T A3 l; ?0 f( c3 a1 A
|