|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
( _. S; t* ]0 t/ r- _) `. s: g# H如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了4 x% ]/ U, H) {8 O8 F
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。. v" {3 r* F7 `# D& d
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19). q. O" L1 f. z5 K) j
t.test(newbomb)得到的结果如下) G, u- M( a9 ^7 P
7 ]: D8 K3 J: a3 D3 `如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。+ M# P+ G, C+ i
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
! I! [6 f! ?" y% ]下面做一个两种情况下都可以用的函数。, g& F/ ~0 l) ^" L6 ]
confint<-function(x,sigma=-1,alpha=0.05)6 T9 D- m* O6 u. j. E' B% M6 R: K. D
{
: ~, v) } @/ S0 B5 e6 c n<-length(x)
1 {, t* V3 o6 d6 w' t0 {7 G2 a xb<-mean(x)" m$ P T4 R/ Z( g% c" Y0 g
if(sigma>=0)! @8 [- ?! @0 j m+ r# l
{4 P5 v) K7 A, _! N7 q3 _
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n% C; J1 v ?* J! ~! u
}8 g: P/ e( D# C% @- r
else{
& j5 g' a; m. i2 i) H6 } tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1* T" Y' u/ H0 o' @ S
}
$ R; w. ~; [6 Z6 S3 E5 ]' Q data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)0 W/ ^1 W; O$ E; g8 |' @ i
}
3 c# E. l8 h9 l( [& a4 ^这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) , d6 Q9 \9 `/ _2 v0 g
这样就能计算出结果了。
# M5 B: r) \. V* m; N4 x! D) E
2 H4 J6 p4 |9 M% V; \. K$ U# `5 k! S' Q& s/ A1 f# ^
|