Padrão estranho na estimativa do intervalo de confiança do desvio padrão via bootstrapping

8

Eu queria estimar o intervalo de confiança para o desvio padrão para alguns dados. O código R tem a seguinte aparência:

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)

E eu tenho o próximo enredo: insira a descrição da imagem aqui

Estou empolgado em interpretar esse histograma de bootstraps corretamente. Todos os outros conjuntos de dados semelhantes mostram distribuições normais de estimativas de bootstrap ... Mas não isso. A propósito, esses são dados brutos reais:

> 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

Você pode me ajudar com a interpretação desse padrão de inicialização?

user16
fonte
1
Não consigo reproduzir seus resultados nem mesmo copiando e colando o código. Eu recebo um histograma muito normalmente distribuído.
precisa saber é o seguinte
1
@jwimberley, havia um vetor de dados errado ... Obrigado pelo seu tempo para descobri-lo. Os dados reais estão publicados abaixo de EDIT.
usar o seguinte comando
2
padrão confirmado para novos dados. Meu palpite é que é causado pelo datapoint 27.800000, que é muito maior que todos os outros.
Psarka
2
@psarka Confirmando isso. A remoção deste ponto elimina o comportamento estranho. O desvio padrão de sd sem este ponto é 3,02, mas 4,24 com este ponto. Isso explica os picos em 3.02 e 4.24 (ponto não incluído no bootstrap; ponto incluído no bootstrap). As ressonâncias mais altas são quando esse ponto é incluído várias vezes.
precisa saber é o seguinte
1
@mdewey Isso foi baseado em uma observação da psarka que eu não quero levar em consideração.
precisa saber é o seguinte

Respostas:

21

Você pode ter um erro no seu código ou a biblioteca de inicialização faz algo além do esperado.

Editar:

Após os dados corrigidos serem fornecidos, tornou-se aparente que o padrão foi causado por um erro externo, com cada pico correspondendo ao número diferente de vezes que o desvio externo foi selecionado em uma amostra.

insira a descrição da imagem aqui

psarka
fonte
1
Idem em R: Depois de criar os dados vetoriais dos 21 elementos da maneira óbvia, crie uma matriz de índices inds <- matrix(sample(21,10000*21,replace=TRUE),10000,21)e, em seguida, procure os elementos dos dados de cada coluna e encontre o desvio padrão com hist(apply(inds,1,function(ind){sd(data[ind])})). Não há vários picos.
precisa saber é o seguinte
1
Esta resposta explica e ilustra muito bem o problema, mas não fornece orientações ou conselhos sobre o que fazer na prática.
Ameba
8

Hesito em colocar isso como resposta, mas para mim isso parece ser causado pela pequena quantidade de pontos de dados em que você baseia o seu bootstrap (21, corrija-me se estiver errado).

Para ser mais preciso, para mim parece que esses 21 valores específicos , dos quais você faz uma amostra, têm apenas alguns desvios padrão frequentemente possíveis (os picos no seu histograma). Se a amostra base fosse maior e mais diversificada, o histograma resultante seria muito mais suave (e provavelmente mais parecido com a distribuição normal que você esperava).

Em uma observação geral, e supondo que eu esteja bem aqui, este é um bom exemplo para mostrar que o bootstrapping não resolve os problemas de ter uma amostra pequena.

IWS
fonte
3
Gosto de explicações como essa, mas não consigo reproduzir o resultado!
Nick Cox
1
@NickCox Você está absolutamente certo em apontar isso. Digitei esta resposta sem tentar replicar esses resultados. Como pode ser visto na resposta de Psarka (que eu imediatamente votei), deve ter havido algum erro de codificação. Por isso, também aprendi algo (para tentar replicar esse problema).
IWS
Também é importante que o autoinicializador dependa necessariamente dos dados originais.
Nick Cox
Claro que é, que ponto você está fazendo?
IWS
1
Apoiando você! Ou seja, argumentar que artefatos são possíveis e que é necessária vigilância.
Nick Cox