|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 : |' {+ M- C; p+ h% ^4 n8 ]5 _
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
% U% m1 k9 G9 V首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
( @0 M, ^. f- E$ u- [我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19): {" |& ? ^1 _) {) f+ Y
t.test(newbomb)得到的结果如下! c& w+ C# e' F. A) }
: y; p4 T( c" n! T' u
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
2 V& R# M! n) ]0 _/ ?( U当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。6 @ T4 P1 _1 K. {$ d2 Q6 k% J( j
下面做一个两种情况下都可以用的函数。6 U4 M7 P# T$ z& J3 L2 h; d# x
confint<-function(x,sigma=-1,alpha=0.05)& [# o& _- T" d3 Q7 k
{
) m0 U' W5 H; X' |" Y+ e n<-length(x)/ v6 l0 h9 }! o |8 ~% S
xb<-mean(x)! {0 V0 l" F9 C; t$ d. o
if(sigma>=0)' q/ K, M; g* K; X
{, P+ \5 D1 m7 Q4 C8 C) K; N' L
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n0 E- e; m' q. k6 u8 b# V5 L
}& s0 p5 [/ |. N3 K& w* ?
else{
, K3 \' ?8 F) N) ~ tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
" @6 q: v8 C! k9 Y }4 r: E2 {; [ y" m+ d' E
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
, W- L5 `& j4 `* E2 W! o }
3 x9 N4 y, {, r这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
( c# h$ `0 F" W" J9 w/ t这样就能计算出结果了。
_$ t' C q- \9 p- r7 J' U+ I
) A" t5 Z2 @- e6 b. d% u' R
|