Modèle étrange dans l'estimation de l'intervalle de confiance de l'écart-type via le bootstrap

8

Je voulais estimer l'intervalle de confiance pour l'écart-type de certaines données. Le code R ressemble à ceci:

library(boot)
sd_boot <- function (x, ind) {                
        res <- sd(x$ReadyChange[ind], na.rm = TRUE)
        return(res)            
}
data_boot <- boot::boot(data, statistic = sd_boot, R = 10000)
plot(data_boot)

Et j'ai l'intrigue suivante: entrez la description de l'image ici

Je suis coincé avec l'interprétation correcte de cet histogramme de bootstraps. Tous les autres ensembles de données similaires montrent des distributions normales des estimations de bootstrap ... Mais pas cela. Soit dit en passant, il s'agit de données brutes réelles:

> data$ReadyChange
 [1] 27.800000  8.985046 11.728021  8.830856  5.738600 12.028310  7.771528  9.208924 11.778611  6.024259  5.969931  6.063484  4.915764
[14] 12.027639  9.111146 13.898171 12.921377  6.916667 10.764479  6.875000 12.875000  7.017917  9.750000  7.921782 12.911551  6.000000

Pouvez-vous m'aider à interpréter ce modèle de bootstrap?

user16
la source
1
Je ne peux pas reproduire vos résultats même en copiant et en collant le code. J'obtiens un histogramme très normalement distribué.
jwimberley
1
@jwimberley, il y avait un mauvais vecteur de données ... Merci de votre temps pour l'avoir découvert. Les données réelles sont publiées sous EDIT.
user16
2
configuration confirmée pour les nouvelles données. Je suppose que cela est dû au point de données 27.800000, qui est bien plus grand que tous les autres.
psarka
2
@psarka Confirmant cela. La suppression de ce point élimine le comportement étrange. L'écart type de sd sans ce point est de 3,02, mais de 4,24 avec ce point. Cela explique les pics à 3.02 et 4.24 (point non inclus dans le bootstrap; point inclus dans le bootstrap). Les résonances les plus élevées surviennent lorsque ce point est inclus plusieurs fois.
jwimberley
1
@mdewey Ceci était basé sur une observation de psarka dont je ne veux pas m'attribuer le mérite.
jwimberley

Réponses:

21

Vous pourriez avoir un bogue dans votre code, ou la bibliothèque d'amorçage fait autre chose que prévu.

Éditer:

Après que les données corrigées ont été fournies, il est devenu évident que le motif était causé par une valeur aberrante, chaque pic correspondant au nombre différent de fois où la valeur aberrante a été sélectionnée dans un échantillon.

entrez la description de l'image ici

psarka
la source
1
Idem dans R: Après avoir fait les données vectorielles de 21 éléments de manière évidente, créez une matrice d'indices avec inds <- matrix(sample(21,10000*21,replace=TRUE),10000,21), puis recherchez les éléments de données de chaque colonne et trouvez l'écart-type avec hist(apply(inds,1,function(ind){sd(data[ind])})). Il n'y a pas de pics multiples.
jwimberley
1
Cette réponse explique et illustre très bien le problème, mais ne fournit aucune orientation ou conseil sur ce qu'il faut faire à ce sujet dans la pratique.
amoeba
8

J'hésite à poser cela comme une réponse, mais pour moi, cela semble être causé par la petite quantité de points de données sur lesquels vous basez votre bootstrap (21, corrigez-moi si je me trompe).

Pour être plus précis, il me semble que ces 21 valeurs spécifiques , à partir desquelles vous échantillonnez, n'ont que quelques écarts-types fréquemment possibles (les pics de votre histogramme). Si l'échantillon de base était plus grand et plus diversifié, l'histogramme résultant serait beaucoup plus lisse (et probablement plus semblable à la distribution normale que vous attendiez).

Sur une note générale et en supposant que je suis à droite ici, c'est un bon exemple pour montrer que le bootstrap ne résout pas les problèmes d'avoir un petit échantillon.

IWS
la source
3
J'aime les explications comme ça, mais je ne peux pas reproduire le résultat!
Nick Cox
1
@NickCox Vous avez absolument raison de le souligner. J'ai entré cette réponse sans essayer de reproduire ces résultats. Comme on peut le voir dans la réponse de Psarka (que j'ai immédiatement votée), il doit y avoir eu une erreur de codage. Par conséquent, j'ai également appris quelque chose (pour essayer de reproduire un tel problème).
IWS
Il est également essentiel que le bootstrap dépend nécessairement des données d'origine.
Nick Cox
Bien sûr, quel est votre point?
IWS
1
Vous soutenir! À savoir, en faisant valoir que les artefacts sont possibles et que la vigilance est nécessaire.
Nick Cox