|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 0 R! w- [8 {( K! c
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了( {: h1 { k* b; H( `7 C3 B; ^
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。- d0 \! i2 u) q4 r( T: [) {; y
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)3 G% Z Q! |$ z: X( V+ g" @
t.test(newbomb)得到的结果如下* }7 r. q! n. v y
4 z) D. S( a- R+ a) [0 W
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。# S f* j2 c0 g0 w7 w" Q
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
/ U! k- \7 q* d下面做一个两种情况下都可以用的函数。' Z% ]1 N) v5 Q* q
confint<-function(x,sigma=-1,alpha=0.05)7 c3 ?$ j/ I8 z, M0 y M7 R4 Q
{
9 n& e3 a( M$ B; S/ P l7 c n<-length(x)/ [2 m# G+ s$ @1 y4 i
xb<-mean(x)
0 v6 h1 J2 ^+ U, Q5 [: y) g& S if(sigma>=0)
: d3 c+ P* B, X0 s {
- V5 D, a/ a& h0 G( ]9 R tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
/ x3 H( G5 m0 Q6 ?$ `& b }
1 J& c+ u. j/ l' ? m1 @* y else{
/ }3 Z- \3 d( W2 m tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
1 p! E3 f# t: y7 T' q+ c }" r1 F6 J0 \0 S+ M. h: a. {
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
2 \/ _+ _7 Y5 A+ U& c+ L& h }
, Q0 U! ?1 \& c6 M% b9 p' e! Q这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
, l" p" N- c( t4 g2 j7 c这样就能计算出结果了。
, }2 `- e" W; c
0 |1 U& j" J" A. w1 w7 q0 z* Y/ R V9 a/ |1 d6 M7 {/ f% |, I: ^9 h
|