|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
% v3 b& j2 c' Z$ t, Y如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
/ M7 M+ K. ` ]8 s) f' c+ U! X' h首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。+ T' I: i. S! J( y- _7 R+ ]. a" c
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)
) O% [& I0 B5 Z" e: t$ Ct.test(newbomb)得到的结果如下
|4 h- |: o, w+ I7 ~2 T' g6 E- i- w. V5 m; |5 B
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
( N) }% o9 o2 U$ Z$ R当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。7 t: n/ T# t2 O& ]. m4 L# r7 O J
下面做一个两种情况下都可以用的函数。
; _$ {) _( D& Z2 h7 Xconfint<-function(x,sigma=-1,alpha=0.05)
! b( F" ]6 _, m( g {) S9 Q( a, m9 r4 T* h O$ ^6 Q
n<-length(x)9 y! @/ t( O; `
xb<-mean(x)
% d; K4 [' D5 l. t: y; w$ Z F9 D if(sigma>=0)
% T2 v5 r6 R! ? |" Q) e4 ~! w: U { ~) p$ q R/ F: B' l
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
0 y0 N" A7 N5 Q* g- G9 G a1 X/ n }
8 ?" d, J: @9 M* |1 Q$ H else{
" F0 t$ p' p' t& F/ T tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
# ? J+ T7 g% I7 b }0 Y! s% H& f4 @: @( K& f) h
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
0 c2 j7 W- ~* H5 A) ~8 E' W' L } }
" \9 @( H; K5 p* k3 {' T4 }0 z/ E. `这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) ' d( {: E& V3 ~! C: M
这样就能计算出结果了。 1 Q7 Q' u- R9 z
: p' z0 o4 [: F+ U6 w
: E6 p, l9 f2 \8 a: K( X: i; G# ? |