在置信度一定的前提下置信区间的长度越短,其精度越高,估计也就越好实际情况中,通常是给定一定的置信度,求尽可能短的置信区间,下面我们就来说一说关于r语言统计分析方法?我们一起去了解并探讨一下这个问题吧!
r语言统计分析方法
在置信度一定的前提下置信区间的长度越短,其精度越高,估计也就越好。实际情况中,通常是给定一定的置信度,求尽可能短的置信区间。
均值的区间估计在《每天一点统计学——构建置信区间》这篇文章中已经介绍过置信区间,现在使用R语言来完成置信区间的计算。计算均值的置信区间,需要分为总体方差已知和总体方差未知两种情况,下面是均值置信区间的计算函数(程序名:interval_estimate1.R)
interval_estimate1<-function(x,sigma=-1,alpha=0.05){
n<-length(x);
xb<-mean(x);
if(sigma>=0){
tmp<-sigma/sqrt(n)*qnorm(1-alpha/2);
df<-n;
} else {
tmp<-sd(x)/sqrt(n)*qt(1-alpha/2,n-1);
df<-n-1
}
data.frame(mean=xb,df=df,a=xb-tmp,b=xb tmp);
}
在程序中,x是来自总体的样本数据,sigma是总体的标准差,当标准差已知时,输入相应的值,程序采用正态分布计算区间端点,当标准差未知时,输入项可缺省,程序采用t-分布计算区间端点。aplha是显著性水平,缺省值为0.05.函数以数据框的形式输出,输出的内容有:样本均值mean,自由度df和均值区间估计的上下限a、b。
例子:某工厂生产的零件长度X被认为服从N( μ,0.04),先从该产品中随机抽取6个,其长度的测量值如下(单位:毫米)
14.6,15.1,14.9,14.8,15.2,15.1
试求该零件长度的置信系数为0.95的区间估计
解:输入数据,调用函数interval_estimate1()
> source("interval_estimate1.R")
> X<-c(14.6,15.1,14.9,14.8,15.2,15.1)
> interval_estimate1(X,sigma = 0.2)
得到
mean df a b
1 14.95 6 14.78997 15.11003
因此,该零件长度的置信系数为0.95的区间估计[14.79,15.11]
例子:为估计一件物体的重量μ,将其称了10次,得到的重量(单位:千克)为:
10.1,10,9.8,10.5,9.7,10.1,9.9,10.2,10.3,9.9
假设所称物体重量服从N(μ ,σ^2),求该物体μ置信系数为0.95的置信区间。
解:输入数据,调用函数interval_estimate1()
> source("interval_estimate1.R")
> Y<-c(10.1,10,9.8,10.5,9.7,10.1,9.9,10.2,10.3,9.9)
> interval_estimate1(Y)
得到
mean df a b
1 10.05 9 9.877225 10.22278
因此,该物体μ置信系数为0.95的置信区间为[9.87,10.22]
再使用R语言的t.test()检验函数完成相应的区间估计工作:
> t.test(Y)
One Sample t-test
data: Y
t = 131.59, df = 9, p-value = 4.296e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
9.877225 10.222775
sample estimates:
mean of x
10.05
得到了相应的区间估计函数[9.88,10.22]和其他一些信息。t.test()函数得到的区间估计与我们编写的函数得到的区间估计是相同的,从这里可以帮助大奖了解t.test()函数的计算过程。
方差的区间估计计算方差的置信区间,需要分为总体均值已知和总体均值未知两种情况,下面是方差置信区间的计算函数(程序名:interva_var1.R)
interval_var1<-function(x,mu=Inf,alpha=0.05){
n<-length(x)
if(mu<Inf){
S2<-sum((x-mu)^2)/n;
df<-n;
}else{
S2<-var(x);
df<-n-1
}
a<-df*S2/qchisq(1-alpha/2,df);
b<-df**S2/qchisq(alpha/2,df);
data.frame(var=S2,df=df,a=a,b=b)
}
在程序中,x是来自总体的样本数据,mu是总体的均值,当均值已知时,输入相应的值,程序采用自由度为n的卡方分布计算区间端点,当均值未知时,输入项可缺省,程序采用自由度为n-1的卡方分布计算区间端点。aplha是显著性水平,缺省值为0.05。函数以数据框的形式输出,输出的内容有:样本方差var,自由度df和方差区间估计的上下限a、b。
例子:为估计一件物体的重量μ,将其称了10次,得到的重量(单位:千克)为:
10.1,10,9.8,10.5,9.7,10.1,9.9,10.2,10.3,9.9
下面用区间估计的方法计算这次测量的测量误差,
>#输入数据,调用编写好的程序
> source("interval_var1.R")
> X<-c(10.1,10,9.8,10.5,9.7,10.1,9.9,10.2,10.3,9.9)
>#作方差的区间估计,如果均值为10
> interval_var1(X,mu=10)
var df a b
1 0.055 10 0.0268513 0.3495597
>#作方差的区间估计,如果均值未知
> interval_var1(X)
var df a b
1 0.05833333 9 0.02759851 0.420957
当均值已知(μ =10),其方差的区间估计为[0.0268,0.169],当均值未知时,其方差的区间估计为[0.0276,0.194]。从计算结果来看,在均值已知的情况下,计算结果更好一些。