数学建模社区-数学中国
标题: 用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 |