|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 4 X% }, j4 l: B% f& ~6 l
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了& w. y: s' R d& ?8 E
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。+ z" l- B" ]/ V* v0 d
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
7 G, C5 ^: I$ ?t.test(newbomb)得到的结果如下/ U+ j: ?) h8 O% n+ M
9 P$ U% I& B3 |2 ~# a如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。# h2 o3 ?/ [( X) J
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。$ |- }7 ]4 [6 [2 J/ J6 g- d% ?
下面做一个两种情况下都可以用的函数。
7 x W s* T# t% G$ ]confint<-function(x,sigma=-1,alpha=0.05)
6 {5 u# |8 J+ Z" a! P4 F9 { {0 E0 b# }8 @0 m8 o0 T5 c
n<-length(x)8 D+ q; M3 G/ a( K3 U
xb<-mean(x)" o# ^0 J/ v% G' Y/ `4 z
if(sigma>=0)! J) d7 M; ]4 C
{. u1 o2 f0 {4 J% F7 s" O/ U
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
, \" E# ?! u* O5 `4 W }% I1 \, a/ ~# m, Z: P' I2 o
else{4 }# l0 A) l0 c
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
" U8 U# u' n/ ~* a }2 `0 v* k+ [/ \: w# ]- u# v7 I
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)6 e4 A; A% \1 _ i) _
}! j+ D" X3 R5 h. \* [3 H
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
3 w' Y3 ~- ?8 F% v1 g* L这样就能计算出结果了。 5 v" }0 x6 {7 ~; S
" h1 K2 g& @& @) [2 J8 e( ^, t& s5 b
! y! h' _ J) `
|