Número ideal de posições no histograma pela regra de Freedman-Diaconis: diferença entre taxa teórica e número real

8

A Wikipedia relata que, sob a regra de Freedman e Diaconis, o número ideal de posições em um histograma, deve crescer conformek

kn1/3

onde é o tamanho da amostra.n

No entanto, se você observar a nclass.FDfunção em R, que implementa essa regra, pelo menos com dados gaussianos e quando , o número de posições parece crescer a uma taxa mais rápida que , mais próximo de (na verdade, o melhor ajuste sugere ). Qual é a justificativa para essa diferença?n 1 / 3 n 1 - log(n)(8,16)n1/3 mn0,4n11/3mn0.4


Editar: mais informações:

insira a descrição da imagem aqui

A linha é a linha OLS, com interceptação 0.429 e inclinação 0.4. Em cada caso, os dados ( x) foram gerados a partir de um gaussiano padrão e alimentados no nclass.FD. O gráfico mostra o tamanho (comprimento) do vetor versus o número ideal de classe retornado pela nclass.FDfunção.

Citações da wikipedia:

Uma boa razão pela qual o número de compartimentos deve ser proporcional a é o seguinte: suponha que os dados sejam obtidos como n realizações independentes de uma distribuição de probabilidade limitada com densidade suave. Então, o histograma permanece igualmente "robusto", pois n tende ao infinito. Se é a »largura« da distribuição (por exemplo, o desvio padrão ou a faixa inter-quartil), então o número de unidades em um compartimento (a frequência) é da ordem o erro padrão relativo é da ordem . Comparando com o próximo compartimento, a mudança relativa da frequência é da ordem desde que a derivada da densidade seja diferente de zero. Esses dois são da mesma ordem se s n h / s n1/3snh/s h/shs/n 1 / 3 kn 1 / 3s/(nh)h/shé da ordem , de modo que é da ordem .s/n1/3kn1/3

A regra Freedman – Diaconis é:

h=2IQR(x)n1/3
user603
fonte
Pelo que me lembro, o número da lixeira é proporcional a , não como relatado acima. n1/3
Nick Cox
1
É tarde para eu checar a literatura, mas sua fórmula não toca nada comigo.
Nick Cox
Certamente, estas nada mais são do que regras práticas razoáveis ​​e, portanto, uma discrepância não tem importância teórica. Existe mais do que isso?
26615 Michael Lew
1
Você não está plotando ; você parece estar plotando (arredondado para cima). A menos que você esteja padronizando seus conjuntos de dados para um valor constante de , esse gráfico está confundindo alterações no intervalo com alterações em (presumivelmente, o IQR será razoavelmente estável). Então, exatamente o que você está fazendo para gerar esse enredo? k = Intervalo  n 1 / 3 / ( 2  IQR ) Gama / IQR khk=Range n1/3/(2 IQR)Range/IQRk
whuber
2
@ whuber: sim, isso parece ser o que está causando a diferença: eu esqueci de me ajustar para o aumento da faixa.
user603

Respostas:

8

A razão vem do fato de que a função histograma deve incluir todos os dados, portanto, ela deve abranger o intervalo dos dados.

A regra Freedman-Diaconis fornece uma fórmula para a largura dos compartimentos.

A função fornece uma fórmula para o número de posições.

A relação entre o número de posições e a largura das posições será afetada pelo intervalo dos dados.

Com dados gaussianos, o intervalo esperado aumenta com .n

Aqui está a função:

> nclass.FD
function (x) 
{
    h <- stats::IQR(x)
    if (h == 0) 
        h <- stats::mad(x, constant = 2)
    if (h > 0) 
        ceiling(diff(range(x))/(2 * h * length(x)^(-1/3)))
    else 1L
}
<bytecode: 0x086e6938>
<environment: namespace:grDevices>

diff(range(x)) é o intervalo dos dados.

Então, como vemos, ele divide o intervalo de dados pela fórmula FD para a largura do compartimento (e arredonda para cima) para obter o número de compartimentos.

Parece que eu poderia ter sido mais claro, então aqui está uma explicação mais detalhada:
A regra Freedman-Diaconis real não é uma regra para o número de posições, mas para a largura da posição. Pela análise deles, a largura do compartimento deve ser proporcional a . Como a largura total do histograma deve estar intimamente relacionada ao intervalo de amostra (pode ser um pouco maior, devido ao arredondamento para números agradáveis), e o intervalo esperado muda com , o número de compartimentos não é inversamente proporcional a largura do compartimento, mas deve aumentar mais rápido que isso. Portanto, o número de compartimentos não deve crescer como - próximo a ele, mas um pouco mais rápido, devido à maneira como o intervalo entra nele. n n 1 / 3n1/3nn1/3

Observando os dados das tabelas de 1925 de Tippett [1], o intervalo esperado em amostras normais padrão parece crescer muito lentamente com , no entanto - mais lento que :log ( n )nlog(n)

insira a descrição da imagem aqui

(de fato, a ameba indica nos comentários abaixo que deve ser proporcional - ou quase tão - a , que cresce mais lentamente do que sua análise na pergunta parece sugerir. Isso me faz pensar se há está chegando outro problema, mas não investiguei se esse efeito de intervalo explica completamente seus dados.)log(n)

Uma rápida olhada nos números de Tippett (que chegam a n = 1000) sugere que o intervalo esperado em um gaussiano é muito próximo de linear em acima de , mas parece não ser proporcional para valores nesse intervalo. 10n1000log(n)10n1000

insira a descrição da imagem aqui

[1]: LHC Tippett (1925). "Sobre os indivíduos extremos e a variedade de amostras retiradas de uma população normal". Biometrika 17 (3/4): 364–387

Glen_b -Reinstate Monica
fonte
1
Não, realmente não. Mais detalhes adicionados.
Glen_b -Reinstala Monica 26/03
1
A regra atual de Freedman-Diaconis não é uma regra para o número de posições, mas para a largura da posição. Pela análise deles, a largura do compartimento deve ser proporcional a . Como a largura total do histograma deve estar intimamente relacionada ao intervalo de amostra (pode ser um pouco maior, devido ao arredondamento para números agradáveis), e o intervalo esperado muda com , o número de compartimentos não é inversamente proporcional a largura do compartimento. Portanto, o número de compartimentos não deve crescer como - pelo menos não exatamente, devido à maneira como o intervalo entra nele. n n 1 / 3n1/3nn1/3
Glen_b -Reinstate Monica
3
O raciocínio que você cita da wikipedia na sua pergunta não leva em consideração o efeito do intervalo da amostra.
Glen_b -Reinstala Monica 26/03
1
Eu acho que isso resolve isso.
user603
2
Se eu aplicar essa postagem math.SE corretamente, o intervalo deverá aumentar como . log(n)
Ameba 27/03