数学建模社区-数学中国

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

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

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


3 l. U0 ?7 s0 v! l如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
) u8 ^0 E$ G0 s首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
/ H4 O) ~7 B9 Q% k2 N我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)6 _2 s/ w; P+ l* x: m
t.test(newbomb)得到的结果如下
0 N5 Q. U( i% k# C+ q) B+ n
7 y% J$ t* j/ U3 Z* f7 O9 Y- n如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
4 {% v( b: a; f1 F当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
. c# R, ?- v4 L  _7 U6 x下面做一个两种情况下都可以用的函数。
6 a5 F  Y! j  Z1 u1 m+ S; I  {confint<-function(x,sigma=-1,alpha=0.05)! k% {$ `+ t: N. h1 N3 U- B& C4 w
  {
+ l( s/ U3 |3 @8 c4 G      n<-length(x)) f, }6 X8 U; f% V- n; v2 Q" q
      xb<-mean(x): v, b9 P0 h# @+ G# R& Q
      if(sigma>=0)
. c3 H6 P4 j1 @  o- N  x          {' j- }2 i" A8 a. J* o4 n# w3 a! [
             tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
  O, j; G7 v+ f8 c           }( E% O& y, [7 L2 ~! A% a7 m
       else{  ]2 Z; v; {; C( S; c5 e$ x
           tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
' ~* a6 C2 O3 o           }/ E  r! G/ `2 }8 `5 h
       data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
# Z# {7 ?  g( q" L4 d   }2 N: z, ]) `( f- ?1 _: V

这个函数的使用:

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

9 y6 W' k& B; ]1 z$ t4 X7 C

这样就能计算出结果了。

/ P' ~- M! e; L

; i. h: g5 R" F: r
1 V( m9 Y9 w0 x9 {$ H/ D. u




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