数学建模社区-数学中国

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

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

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

8 U+ H( h1 X8 n, V/ G3 E
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了1 l* H1 X/ H6 U$ I1 t" m
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
% F$ S5 z- N' j( |/ `# L" b2 I8 f我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)* y* U5 [' N4 T& U0 x( L$ R- x' I1 I
t.test(newbomb)得到的结果如下: _& f/ t6 L# c6 n5 g: Z7 n9 I' W' C
; A0 t! B# a, \
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。* j& R  T% a* |& L
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
+ {+ |$ N9 Z( s$ I& t: }下面做一个两种情况下都可以用的函数。
( }5 w; F( t) `" mconfint<-function(x,sigma=-1,alpha=0.05)
5 v% E- {: ]& Y+ |  {1 a" ]# h3 {: h9 W* z
      n<-length(x)9 z) k, D# H- b+ j
      xb<-mean(x)) v2 K4 k4 B5 D$ N; F$ U& D. K6 a
      if(sigma>=0)0 ?6 c' N* |: p$ A/ u9 R8 r# {7 V
          {
( n0 p# C+ z- J$ @             tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
' |- c0 }1 v3 [& G* T6 X# x           }
$ \. r3 _, f; k$ w2 k' K       else{# a+ a/ q6 `! B6 A: N8 W
           tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-15 c0 \. z1 z: j8 I
           }: j( k; u. [- D- A3 t! G0 e$ y
       data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
+ |2 O+ Z& b1 K( _- _   }
$ P) T0 b' T  m0 [" k# G

这个函数的使用:

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


7 i; o. u, g' n1 O# |+ C6 n: o

这样就能计算出结果了。

4 X5 V  c! ~$ @( H$ |

; T# i7 U" T" x: G2 ~9 `
! [  c, n2 k) X  ?7 {




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