数学建模社区-数学中国

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

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

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

0 r+ l  T# W' w7 k
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
2 f3 Z$ J+ [& ]首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
7 N; e8 v( c, C, o9 m) H3 T7 H我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
& W3 A% Q. r: B, g# W" e& J2 bt.test(newbomb)得到的结果如下: X  d3 K0 n9 v& L/ c! [' e, P' o
0 l8 Z5 @& g% [% p& y: |  ~4 E
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
9 s# `1 a: Y4 r8 x当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
9 N7 {  h0 t/ t" _4 i1 \下面做一个两种情况下都可以用的函数。
. f& D! J( h* D/ T* l! A: x* fconfint<-function(x,sigma=-1,alpha=0.05)" `, D( J1 K9 c. V' x* J- P9 @
  {8 c( E2 I* Q1 Q
      n<-length(x)
* F. u" w, y5 X* J: v& n      xb<-mean(x)' R7 B4 s7 w  @+ N" T1 F) @
      if(sigma>=0)
2 x: g& }+ ^6 A: i" A. ]8 y          {# S' K# G2 P& d& U4 m7 c
             tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
( G) t1 M- [0 a- F1 U& ^           }( b$ x1 F6 D. R5 c8 D$ @
       else{
* _3 d  ^& ~; G) K+ w: J" G4 C* l           tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1% n/ B' ?- G) e$ h8 o
           }6 n" }$ v" G; B8 x. Q# T
       data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp), c8 `8 K: W& S
   }6 H! W0 o7 L0 h! b

这个函数的使用:

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


! F3 J2 n) }7 z) ]6 ?

这样就能计算出结果了。


5 b/ H$ e; C% H/ F! D
) O  {  V. e- L( m/ L! m2 Z' ^$ M& i9 J) j  F8 M: m" c





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