数学建模社区-数学中国

标题: 用R语言求置信区间 [打印本页]

作者: 数模天下    时间: 2012-12-24 14:05
标题: 用R语言求置信区间

用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。

: W0 ^2 e1 z+ M; G; d0 ?
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了6 u/ z& y8 _3 w  R9 k5 p
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。# y7 }; a, J; y6 e8 ^
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
( x. p7 H8 G! W9 H2 _1 b9 s* S! Qt.test(newbomb)得到的结果如下
$ F( Z& V9 W. M& a& u
" C; o" u2 i+ f3 l; n1 t% ~如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。; C0 `4 n  S# j4 }3 q3 S
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
+ ^4 I! {) ^: ]/ F下面做一个两种情况下都可以用的函数。, l" e( j& }& k! N/ Z5 l
confint<-function(x,sigma=-1,alpha=0.05)
& S- @) w7 w; `, l0 g6 |  {
9 d8 q( |3 P- l, c( b4 J; U$ ^1 k: |+ [      n<-length(x)
. h* G2 \1 v. q/ R. Y      xb<-mean(x), u; Y/ W- ]4 a7 Y# i8 [
      if(sigma>=0)
# k9 d% h0 r/ ^; S          {8 e' A% e: y" D8 W: y
             tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
9 T5 a' X+ `, a- }5 g& S           }# J3 b: \' g# J5 d1 v! j# A
       else{
& Q) r/ g! x$ u7 T           tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1  ]- ?! t- S6 w/ ~9 V9 B
           }
) a7 R; x3 T1 d8 l+ w, w       data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
% r# Z! h  p; B& C, d9 U% ^   }
1 {' J3 f, X  ^) _" g5 o- w

这个函数的使用:

如果不知道方差,则confint(x,alpha)  知道方差,则confint(x,sigma,alpha)


- `+ A. g- S* m( l2 q! Z

这样就能计算出结果了。

5 m* ^/ c6 r% T$ n

0 r8 U2 w: Z: R. U
1 R  j) N- z4 g2 O! M+ j/ X




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5