数学建模社区-数学中国

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

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

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

6 x( ]7 V8 I( j6 D& U' T
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了7 [  y( d1 j. ]. l* Y1 _: O7 e$ C
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
4 o' [5 k6 P' S& d& {我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)4 G& @* \6 `/ N: f- g
t.test(newbomb)得到的结果如下4 r  O$ P* f) S# c; `% ?
6 s& j" D4 R/ [% M: U
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。  V; P( V4 q! _8 Y) u
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。* k5 W3 p/ W, ]
下面做一个两种情况下都可以用的函数。+ ^- I& A# b# T8 _
confint<-function(x,sigma=-1,alpha=0.05)" `9 y! Q* W9 m8 G9 c
  {
. V/ I! J- W" X. R& E      n<-length(x)4 u) ^" \2 L6 I' x* I$ J" y
      xb<-mean(x)3 }9 @; @, i& u& J
      if(sigma>=0)* }: J2 J) y' B) N- L0 p# q0 }9 E% a
          {
! x! a4 n: ]7 ?$ q             tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n2 n+ ^6 A# v, e  y8 {; h* `
           }
$ u& `" O$ K  W/ j       else{8 S: X" n& r* y2 z( l
           tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
- N/ O4 C- p) X' `# [/ ?           }
# `+ d9 f  Q/ `6 u6 y2 y       data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)5 M$ Y2 h9 H/ G! }& k+ M. `- y
   }
. E1 e9 _& g0 J+ r

这个函数的使用:

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

2 |2 b: o* s5 O1 _

这样就能计算出结果了。

* N7 M1 E7 t" ~3 f% s

' I+ y; P$ N- T/ V- g, r* p' o- S% P5 C0 |: `





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