|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 + h6 y) R% U5 I2 D
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
' O! y, O4 a1 ~% |5 x首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。# G& r2 p U0 {' P$ m7 L
我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)- o! Y& N! V. V' j$ p1 L( `
t.test(newbomb)得到的结果如下
) r' I4 o* [1 I& b/ W+ q- D+ g# u7 R$ K: F' r
如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
% ^9 x j* S1 A( W5 d3 y0 [0 }6 l当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
! r6 q$ c: w8 p$ T# e4 y j下面做一个两种情况下都可以用的函数。
4 ?- y% `2 d5 i* mconfint<-function(x,sigma=-1,alpha=0.05)5 P& m' X- u; |% b
{% p: p! T2 u' i
n<-length(x)
- {4 G1 M5 |) h xb<-mean(x)5 o; J4 L& T6 A' F% G2 _
if(sigma>=0)# `: ~% \2 Q! s3 P8 h1 M" W$ {
{
% y$ M5 A9 X' l& c0 U tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n, C7 P6 J( T: n5 B0 T. D
}: X# t& W9 m+ h. O1 o. _2 Z* [
else{
( y7 D6 t: v+ H# r) l) W {2 ^# D tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
. E" H) j: s. R0 N }% R1 k, k3 y6 n# S& j' s, O6 j- b
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)
1 P0 i/ z4 D( m, R }' F* Y% e9 j% Q$ W
这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
9 v( S4 F5 ~# X. ?4 k" z/ x0 s这样就能计算出结果了。 ' b5 b$ v1 E i) B$ h& @8 k+ b2 v
. U% P$ j( U7 d7 j
( | s6 @! W3 I |