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