|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
# ~6 F- g/ H2 T1 c/ Y4 ~$ D2 r如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
2 v; o, ]4 E9 V* |首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
) {. {+ S. m, `+ x7 Y( Q1 d我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)1 F6 K# \) s7 A; r% V& g0 ]5 r; D
t.test(newbomb)得到的结果如下2 C% F4 W' A5 W% q0 [( o2 W
* V% o" n3 [$ a2 x8 P如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。$ n1 u) V3 W% j8 o- }1 i
当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
. p% J: ^3 u U8 @下面做一个两种情况下都可以用的函数。1 Z8 ~- S0 C5 r( j# }6 \8 l
confint<-function(x,sigma=-1,alpha=0.05)8 k$ M& a' u; \' w! y
{
" E p1 D; g1 g n<-length(x)2 |& G7 U6 O$ K2 z- U$ K
xb<-mean(x)
& I4 C* u& \; N. b if(sigma>=0)
, ?' m9 p* A# y- H' y {% }$ {: D! b% L4 G1 f; `
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n2 ?* L0 u- n4 e+ X8 ~ y# S
}$ E0 y: y+ Q+ C7 B9 S0 j
else{
1 ?9 z; B$ u3 Y' ] q tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1& `; ^/ D' ?# Z8 m
}
, {9 F4 N6 f1 l8 @& `9 z* p data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
6 Z$ F# W3 d5 J* E$ P+ e } v1 l7 p/ H' c0 |3 x
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha) $ _# n1 L7 O# E% {- r7 x
这样就能计算出结果了。
% Y( a: @; I: ]8 r
" _) T7 K9 d# G* h; |8 ]+ Y) B( U1 K
|