|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。 & T4 y) T5 i) K6 h$ b' }% e9 \/ T
如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了
7 I5 j) ?* l% H9 X/ J& y @" z首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
4 v% D. L) `& r( C5 L# R我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)# t& _7 I6 d1 g9 n0 a# ]
t.test(newbomb)得到的结果如下. y# R$ ^( v/ X5 j6 `! `9 j
2 W3 X; l4 }3 M3 S9 |如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
0 `: |4 i, b) Q! _8 D当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
0 C7 w# V8 G' F$ g9 G9 h3 |下面做一个两种情况下都可以用的函数。/ \ u9 d+ Y, E2 `3 z& s5 O
confint<-function(x,sigma=-1,alpha=0.05)$ ]+ B* m9 X+ ~! E& m- D% i* ?4 ]
{
. k& u7 x3 ?" W; A/ M n<-length(x)
1 D( K8 ~% B* m' [ xb<-mean(x)
' o3 {; S, D9 m( c1 C if(sigma>=0)1 X+ U, |* A! y. K% Y
{, ~4 _8 P; k, ?7 h& r& U
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
9 g; ~8 ~% |6 |. Q5 {- i }* ]' }4 Z6 @5 V
else{
& _6 P. w$ z1 T tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1
9 D5 a7 ]0 q( A& M+ X. L }
0 B, Z# m0 U- a* Y' I$ ]- L data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)9 l) @) ]% J: ^ N- @# |' h% Y+ i
}
7 L( M0 i! I; @( L这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
# d' u7 g2 K' \7 C: z# S' g9 y! ~3 R这样就能计算出结果了。
. O2 R0 Q% s2 ?$ G5 Y7 ^/ I
4 ~: H2 A- s+ n- d/ f/ R* k
7 N4 ^& x7 r3 L6 v |