Bootstrap biaisé: est-il correct de centrer l'IC autour de la statistique observée?

11

Ceci est similaire à Bootstrap: l'estimation est en dehors de l'intervalle de confiance

J'ai quelques données qui représentent le nombre de génotypes dans une population. Je veux estimer la diversité génétique à l'aide de l'indice de Shannon et générer également un intervalle de confiance à l'aide du bootstrap. J'ai remarqué, cependant, que l'estimation via le bootstrap a tendance à être extrêmement biaisée et se traduit par un intervalle de confiance qui se situe en dehors de ma statistique observée.

Voici un exemple.

# 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]))
}

Génération de données

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

Calcul

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

Génération des CI avec correction de biais

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

En supposant que la variance de t peut être utilisée pour la variance de t0 .

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

## [1] 3.55475 3.80421

Serait-il correct de rapporter l'IC centré autour de t0 ? Existe-t-il une meilleure façon de générer le bootstrap?

ZNK
la source

Réponses:

11

Dans la configuration donnée par l'OP, le paramètre d'intérêt est l'entropie de Shannon qui est une fonction du vecteur de probabilité . L'estimateur basé sur échantillons ( dans la simulation) est l'estimateur plug-in Les échantillons ont été générés en utilisant la distribution uniforme pour laquelle l'entropie de Shannon estÉtant donné que l'entropie de Shannon est maximisée dans la distribution uniforme, l'estimateur plug-in doit être biaisé vers le bas . Une simulation montre que

θ(p)=i=150pilogpi,
pR50nn=100
θ^n=θ(p^n)=i=150p^n,ilogp^n,i.
log(50)=3.912.bias(θ^100)0.28 tandis que . L'estimateur du plug-in est cohérent, mais la méthode ne s'applique pas pour étant la distribution uniforme, car la dérivée de l'entropie de Shannon est 0. Ainsi, pour ce choix particulier de , les intervalles de confiance basés sur des arguments asymptotiques ne sont pas évidents. bias(θ^500)0.05Δpp

L'intervalle centile est basé sur la distribution de où est l'estimateur obtenu à partir de l'échantillonnage de observations de . Plus précisément, c'est l'intervalle entre le quantile de 2,5% et le quantile de 97,5% pour la distribution de . Comme le montre la simulation bootstrap de l'OP, est clairement également biaisé à la baisse en tant qu'estimateur de , ce qui entraîne l'intervalle de centile étant Totalement faux.θ(pn)pnnp^nθ(pn)θ(pn)θ(p^n)

Pour l'intervalle de base (et normal), les rôles des quantiles sont échangés. Cela implique que l'intervalle semble raisonnable (il couvre 3.912), bien que les intervalles s'étendant au-delà de 3.912 ne soient pas logiquement significatifs. De plus, je ne sais pas si l'intervalle de base aura la couverture correcte. Sa justification repose sur l'identité distributionnelle approximative suivante:

n n = 100

θ(pn)θ(p^n)Dθ(p^n)θ(p),
qui pourrait être discutable pour (relativement petite) comme .nn=100

La dernière suggestion de OP d'une erreur standard basé intervalle sera pas travailler soit à cause du grand parti pris. Cela peut fonctionner pour un estimateur corrigé du biais, mais vous devez d'abord avoir des erreurs standard correctes pour l'estimateur corrigé du biais.θ(p^n)±1.96se^n

Je considérerais un intervalle de vraisemblance basé sur le log-vraisemblance du profil pour . J'ai peur de ne pas savoir de méthode simple pour calculer la probabilité de journalisation du profil pour cet exemple, sauf que vous devez maximiser la probabilité de journalisation sur pour différentes valeurs fixes de .p θ ( p )θ(p)pθ(p)

NRH
la source
5
Le problème de biais lié à l'utilisation de l'estimateur «plug-in» pour l'entropie est apprécié depuis des décennies. Cet article analyse des estimations moins biaisées. Une correction de biais jusqu'à l'ordre de , qui date de 1955 (voir éq. 4 du document lié), peut être appliquée au cas présenté par l'OP. La correction est de 0,245, presque identique au biais identifié par le bootstrap. Peut-être que le bootstrap devrait être utilisé ici pour estimer l'entropie elle-même, pas seulement ses limites de confiance. 1/n
EdM
@EdM ce sont des informations très utiles. Je ne connaissais pas la littérature sur ce problème de biais particulier. Il pourrait être très utile de transformer le commentaire en une réponse expliquant la correction du biais et comment elle pourrait être utilisée avec le bootstrap, par exemple, pour obtenir des intervalles de confiance.
NRH
Je ne connaissais pas non plus cette littérature, jusqu'à ce que cette question et votre réponse apparaissent. Ce qui est quelque peu gênant, car l'entropie de Shannon est souvent utilisée comme mesure dans mon domaine des sciences biomédicales. Je vais voir ce que je peux rassembler comme réponse supplémentaire.
EdM
1
Augmenter le nombre d'échantillons de bootstrap n'aidera pas vraiment. Il doit être suffisamment grand pour que vous puissiez estimer de manière fiable les quantités d'intérêt pour la distribution de , par exemple, mais sinon l'augmentation du nombre d'échantillons de bootstrap ne supprimera pas le biais ou ne fera pas la confiance plus appropriée. θ(pn)
NRH
1
Désolé ZNK, j'ai mal compris votre question. Si vous augmentez la taille de l'échantillon , le biais sera plus petit, oui! L'estimateur est cohérent. Précisément pour la distribution uniforme, je serais quelque peu sceptique quant à la couverture réelle des intervalles de confiance, même pour les grands pour les raisons que j'ai décrites dans la réponse. Pour toutes les autres distributions, le CLT s'applique et les différentes méthodes produiront une couverture asymptotiquement correcte pour . n n nnn
NRH
6

Comme le souligne la réponse de @NRH, le problème n'est pas que le bootstrapping a donné un résultat biaisé. C'est que la simple estimation «plug in» de l'entropie de Shannon, basée sur les données d'un échantillon, est biaisée vers le bas par rapport à la valeur réelle de la population.

Ce problème a été reconnu dans les années 50, quelques années après la définition de cet indice. Cet article discute des problèmes sous-jacents, avec des références à la littérature associée.

p^n,ipn,i

θ^n=θ(p^n)=i=1Mp^n,ilogp^n,i.

la relation non linéaire signifie que la valeur résultante est une sous-estimation biaisée de la véritable diversité génétique.

MN(M1)/2N

Il existe des packages dans R qui traitent de ce problème. Le simbootpackage en particulier a une fonction estShannonfqui effectue ces corrections de biais, et une fonction sbdivde calcul des intervalles de confiance. Il sera préférable d'utiliser ces outils open source établis pour votre analyse plutôt que d'essayer de recommencer à zéro.

EdM
la source
Donc, l'estimateur en soi est erroné en raison de la taille de l'échantillon? Le simbootpackage semble prometteur, mais ne semble pas adapté à mes besoins car il a besoin d'un échantillon de contrôle pour estimer les intervalles de confiance.
ZNK
1
"Erroneous" n'est pas tout à fait raison; l'estimateur est «biaisé» en ce que sa valeur attendue n'est pas la même que la valeur réelle de la population. Cela ne signifie pas que c'est "erroné"; les estimateurs biaisés peuvent être utiles, comme l'illustre le compromis biais-variance dans la sélection des estimateurs. Si simbootne répond pas à vos besoins, Google « biais de shannon r » pour des liens vers d' autres packages R comme entropy, entropartet EntropyEstimation.
EdM
1
Il y a des problèmes supplémentaires découlant du fait que certains génotypes présents dans la population sont susceptibles d'être manqués dans un échantillon particulier. Certains packages R basés sur la population et l'écologie semblent avoir des moyens de résoudre ce problème.
EdM