偏向引导程序:是否可以将CI置于观察到的统计数据的中心?


11

这类似于Bootstrap:估算值超出置信区间

我有一些数据可以代表人群中基因型的数量。我想使用Shannon指数来估算遗传多样性,并且还要使用自举法生成一个置信区间。但是,我已经注意到,通过自举进行的估算往往会产生极大的偏差,并导致置信区间超出我观察到的统计数据。

下面是一个例子。

# Shannon's index
H <- function(x){
  x <- x/sum(x)
  x <- -x * log(x, exp(1))
  return(sum(x, na.rm = TRUE))
}
# The version for bootstrapping
H.boot <- function(x, i){
  H(tabulate(x[i]))
}

资料产生

set.seed(5000)
X <- rmultinom(1, 100, prob = rep(1, 50))[, 1]

计算方式

H(X)

## [1] 3.67948

xi <- rep(1:length(X), X)
H.boot(xi)

## [1] 3.67948

library("boot")
types <- c("norm", "perc", "basic")
(boot.out <- boot::boot(xi, statistic = H.boot, R = 1000L))

## 
## CASE RESAMPLING BOOTSTRAP FOR CENSORED DATA
## 
## 
## Call:
## boot::boot(data = xi, statistic = H.boot, R = 1000)
## 
## 
## Bootstrap Statistics :
##     original     bias    std. error
## t1*  3.67948 -0.2456241  0.06363903

通过偏差校正生成CI

boot.ci(boot.out, type = types)

## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
## 
## CALL : 
## boot.ci(boot.out = boot.out, type = types)
## 
## Intervals : 
## Level      Normal              Basic              Percentile     
## 95%   ( 3.800,  4.050 )   ( 3.810,  4.051 )   ( 3.308,  3.549 )  
## Calculations and Intervals on Original Scale

假设t的方差可用于t0的方差。

norm.ci(t0 = boot.out$t0, var.t0 = var(boot.out$t[, 1]))[-1]

## [1] 3.55475 3.80421

报告以t0为中心的CI是否正确?有没有更好的方法来生成引导程序?

Answers:


11

在由给定的OP的感兴趣的参数的设置是香农熵 这是概率向量的函数p[R 50。基于所述估计Ñ样品(Ñ = 100在仿真)是插件估计 θ Ñ = θ p Ñ= - 50 Σ=

θp=-一世=1个50p一世日志p一世
p[R50ññ=100 使用香农熵为log50=3.912的均匀分布生成样本由于香农熵在均匀分布中最大化,因此插件估算器必须向下偏置。仿真表明,b一个小号 θ 100-0.28,而 b一个小号 θ
θ^ñ=θp^ñ=-一世=1个50p^ñ一世日志p^ñ一世
日志50=3.912。b一世一种sθ^100-0.28。插件估计量是一致的,但是Δ方法不适用于 p为均匀分布,因为Shannon熵的导数为0。因此,对于 p的此特定选择,基于渐近参数的置信区间不明显。 b一世一种sθ^500-0.05Δpp

百分间隔基于分布其中p * Ñ是从采样得到的估计Ñ从观测p Ñθpñpññp^ñ。具体而言,是从的分布的2.5%到97.5%的间隔。作为OP的自举模拟显示, θ p * Ñ显然也向下偏压作为一个估计θ p Ñθpñθpñθp^ñ,这导致百分位数间隔完全错误。

对于基本(和正常)间隔,分位数的角色互换。这意味着该间隔确实看起来是合理的(覆盖3.912),尽管间隔超过3.912在逻辑上没有意义。此外,我不知道基本间隔是否具有正确的覆盖范围。其依据是以下近似的分布身份:

θpñ-θp^ñdθp^ñ-θp
ññ=100

θp^ñ±1.96sË^ñ

θppθp


5
1个/ñ

@EdM这是非常有用的信息。我不了解有关此特定偏差问题的文献。如果您可以将注释变成解释偏倚校正的答案,以及如何将其与自举结合使用(例如,以获得置信区间),则可能非常有用。
NRH 2015年

在这个问题和您的答案出现之前,我也不了解这些文献。这有点令人尴尬,因为香农熵在我的生物医学领域经常被用作一种度量。我将看到可以合并的其他答案。
EdM 2015年

1
θpñ

1
ñññ

6

正如@NRH指出的那样,问题不在于自举产生了偏差。只是基于样本数据的香农熵的简单“即插即用”估计值就偏离了真实总体值。

1950年代,在定义此索引的几年之内就认识到了这个问题。本文讨论了潜在问题,并参考了相关文献。

问题来自于各个概率与该熵测度之间的非线性关系。在这种情况下,基因观察到的基因型分数在样品Ñ p^ñ一世pñ一世

θ^ñ=θp^ñ=-一世=1个中号p^ñ一世日志p^ñ一世

非线性关系意味着结果值是真实遗传多样性的偏低估计。

偏倚取决于基因的数量, 中号ñ中号-1个/2ñ

R中有处理此问题的软件包。的simboot特别包装具有这样的功能estShannonf,使得这些偏置校正,和一个功能sbdiv,用于计算置信区间。最好使用这种已建立的开源工具进行分析,而不是尝试从头开始。


那么由于样本量的原因,估计量本身就是错误的吗?该simboot程序包看起来很有希望,但似乎不适合我的目的,因为它需要一个控制样本来估计置信区间。
ZNK 2015年

1
“错误”并不完全正确;估计值是“有偏见的”,因为其期望值与实际人口值不同。这并不意味着它是“错误的”。偏置估计量可能很有用,如 选择估计量时的偏差方差折衷所说明。如果simboot不能满足您的需求,谷歌“香农熵的偏置R”,链接到其它的R程序包一样entropyentropartEntropyEstimation
EdM 2015年

1
人口中存在的某些基因型可能在任何特定样本中都被遗漏,这一事实引起了其他问题。一些基于人口和生态的R软件包似乎具有解决此问题的方法。
EdM 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.