衣带渐宽终不悔分享 http://blog.sciencenet.cn/u/tuqiang2014 在康河的柔波里,做一条水草, 向青草更青处漫溯。

博文

环境与生态统计||置信区间的估计

已有 4134 次阅读 2019-1-12 11:06 |系统分类:科研笔记

经典统计学的核心思想就是用样本(我们所能采集到的数据,如总磷浓度,TP)去估计总体(关于总体情况的描述);总体的参数是未知的,不可测度或难以测度,注意它是固定了的数值;

我们采集了有限的TP,而且在前人研究的基础上已知一个生态系统中TP可以被近似为对数正态分布,那么剩下的工作就是要估计分布的对数均值和对数标准差。估计总体的均值和标准差,最自然的方法就是用样本的均值和标准差去估计。

为了估计这个总体的参数,我们就要通过样本来构造统计量,注意它是一个随机变量。因为我们不能仅用一次采样的数据来估计总体,我们每一次采样都会得到一个均值和标准差。这样这个用于估计的值就是一个随机变量。

随机变量的意思是随着你样本选取的不同,具体到每一个样本的统计量的统计值也不尽相同。这个随机变量的统计值就是对总体参数的点估计,由于样本估计总体总是会存在一定的偏差,所以我们为了更好的估计总体参数,于是用到了置信区间。

95%的置信度的意思是如果你从总体中抽取100个不同样本,每个样本都用相同的统计量构造的置信区间(注意:由于样本不相同,这些置信区间的范围也不尽相同),那么有95个置信区间包含了总体参数的真值。换句话说,95%的置信区间意味着真值\mu落在区间内的概率是0.95。

最关键的是要理解统计量是随机变量而总体的参数是一个实实在在的数值。

置信区间的计算在知道方差和不知道方差的情况下,计算公式是不一样的。

confint<-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)
   }
--------------------- 
作者:DawnJobs 
来源:CSDN 
原文:https://blog.csdn.net/LittleYearYear/article/details/39940231 
版权声明:本文为博主原创文章,转载请附上博文链接!

如果不知道方差,则confint(x,alpha)  知道方差,则confint(x,sigma,alpha)

思考:置信区域的形状如何?置信区域与假设检验有何联系?

按照我的简要理解,置信椭圆基本上是对置信区域的描述方式,其长轴和短轴分别为置信区域的参数,置信椭圆的长短半轴,分别表示二维位置坐标分量的标准差(如经度的σλ和纬度的σφ)。一倍标准差(1σ)的概率值是68.3%,二倍标准差(2σ)的概率值为95.5%;三倍标准差(3σ)的概率值是99.7%。

μ的置信度为1−α的置信区域为

当p=1时,它是一个区间;当p=2时,它是一个椭圆,这时可将其在坐标平面上画出;当p=3时,它是一个椭球;当p>3时,它是一个超椭球;它们均以    为中心。

同置信区间与假设检验的关系一样,置信区域与假设检验之间也有着同样的密切关系。一般来说,μ0包含在上述置信区域内,当且仅当原假设 H0:μ=μ0在显著性水平α下被接受。因此,可以通过构造置信区域的方法来进行假设检验。

我们用 rnorm(20, 0.2, 1)来构建TP的浓度,计算95% 和50% 的置信区间:

source("D:\\Users\\Administrator\\Desktop\\RStudio\\Environmental_and_Ecological_Statistics_with_R\\DataCode\\Code\\FrontMatter.R")

################
## Chapter 4  ##
################
plotDIRch4 <- paste(plotDIR, "chapter4","figures", sep="/")
if(file_test("-d", plotDIRch4)){cat("plotDIRch3 already exists")}else{dir.create(plotDIRch4,recursive = TRUE)}
y <- rnorm(20, 0.2, 1)
n <- length (y)
y.bar <- mean(y)
se <- sd(y)/sqrt(n)
int.50 <- y.bar + qt(c(0.25, 0.75), df=n-1)*se
int.95 <- y.bar + qt(c(.025, .975), df=n-1)*se
print( c(y.bar, int.95))
[1] -0.09966904  1.99591665  2.40901554

在这个案例中,我们假设TP浓度对数值的真实分布是N(2.05,0.34),并且利用计算机从这个分布中采取30个随机数来模仿采样过程,然后计算置信区间。当多次重复,我就会期望区间会包含2.05.

n.sims <- 1000
n.size <- 30
inside <- 0
for (i in 1:n.sims){  ## looping through n.sims iterations
  y <- rnorm(n.size, mean=2.05, sd=0.34)
  ## random samples from N(2.05, 0.34)
 se <- sd(y)/sqrt(n.size)
 int.95 <- mean(y) + qt(c(.025, .975), n.size-1)*se
 inside <- inside + sum(int.95[1]<2.05 & int.95[2]>2.05)
}
inside/n.sims  ## fraction of times true mean inside int.95
[1] 0.951
模拟中心极限定理

样本均值的分布是正态的不论中体的分布是怎样的

## central limit theorem simulation
two.prob()
central.sim(mux=1, vx=1, n=c(5, 20, 100))
#postscript(file=paste(plotDIR, "cltSims.eps", sep="/"),
#           width=4.75, height=3, horizontal=F)
central.sim(mux=1, vx=1, n=c(5, 20, 100))
#dev.off()

以上均是对均值的推断,统计推断还有第二部分,即是对标准差的推断。同样是用样本的标准差来估计总体的标准差。

通过对总体均值和标准差的估计,可以确定模型的参数。但是,Everglades湿地研究背后的问题是要设定TP的环境标准:使用背景浓度的75百分点作为标准。因此接下来的问题是如何估计0.75分位数。如果我们知道总体分布是正态分布的,且均值和标准差的真值是已知的,那么可以直接估计0.75分位数。假设均值=2.05,标准差=0.34.

qnorm(0.75,mean = 2.05,sd=0.34)
[1] 2.279327

TP浓度分布的0.75分位数就是e^{2.279327}=9.77pp。但是,如何描述0.75分位数的不确定性呢?

n.sims=1000
n<-30
y <- rnorm(20, 0.2, 1)
y.bar<-mean(y)
se<-sd(y)
x<-rchisq(n.sims,df=n-1)
sigma.chi2<-se*sqrt((n-1)/x)
sample.mean<-rnorm(n.sims,y.bar,sigma.chi2/sqrt(n))
q.75<-qnorm(0.75,sample.mean,sigma.chi2)
hist(exp(q.75),axes=F,xlab="0.75 Quantile Distribution")
axis(1)

#从模拟的不确定性给出95%的置信区间

quantile(exp(q.75),probs = c(0.25,0.975))
     25%    97.5% 
1.922981 2.949886


参考:

如何理解 95% 置信区间?
用R语言求置信区间
基础知识:置信椭圆confidence ellipse



https://blog.sciencenet.cn/blog-1835014-1156644.html

上一篇:统计推断概述
下一篇:环境与生态统计||探索性数据分析
收藏 IP: 123.151.22.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 01:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部