|
用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了。
& U2 ]% o. F1 r. j) M如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了/ Z8 \7 U8 n# J' z& J! ^, x2 p
首先,输入da=c(你的数据,用英文逗号分割),然后t.test(da),运行就能得到结果了。
& m# c9 A# D" [% {' q& C我的数据是newbomb <- c(28,26,33,24,34,-44,27,16,40,-2,29,22,24,21,25,30,23,29,31,19)- K- R( e; D$ ~ k
t.test(newbomb)得到的结果如下
) Q) v) i7 @/ d1 p& B
, C4 d1 [) W1 Y如果要求任意置信度下的置信区间的话,就需要自己编一个函数了。
o' K& N7 T, p9 g0 t当然,有两点要记住的,置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。
8 B5 x( o! a5 V% W下面做一个两种情况下都可以用的函数。& l% F9 C$ v! w' k4 b: |
confint<-function(x,sigma=-1,alpha=0.05)
8 `; [1 ]: X& V9 `" H0 B+ v {
. h2 K/ u W2 k8 \ Y n<-length(x)
1 X# b* K0 X; G; N* A b8 } xb<-mean(x)# b ~& v# o9 w& S# v
if(sigma>=0)
4 H" }' W. f `& G5 c# r {% Z+ g; U' J+ O2 {
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);df<-n
% U: e8 A2 {; k7 U3 Z }5 L. f4 b& J% b o* E' `
else{
: ]5 T4 e1 m; g; p tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);df<- n-1# ?! X. v( A2 S4 _; r: p
}% t( I$ K2 X. x
data.frame(mean=xb,df=df,a=xb-tmp,b=xb+tmp)3 Z# v7 C+ ^( a4 W1 w; |$ w
}
$ d4 s: l$ e# H这个函数的使用: 如果不知道方差,则confint(x,alpha) 知道方差,则confint(x,sigma,alpha)
G& Z/ C) D9 H+ |4 F0 T这样就能计算出结果了。
) N; X- ? @: c# \) r6 n, p W* q
0 j& T& t3 n: n5 H* C0 F, X. C7 M
+ X; c/ g/ n/ M/ M |