Computando o modo de dados amostrados de uma distribuição contínua

12

Quais são os melhores métodos para ajustar o 'modo' de dados amostrados de uma distribuição contínua?

Como o modo é tecnicamente indefinido (certo?) Para uma distribuição contínua, estou realmente perguntando 'como você encontra o valor mais comum'?

Se você presumir que a distribuição pai é gaussiana, poderá bin os dados e encontrar, digamos, que o modo é o local da bin com maiores contagens. No entanto, como você determina o tamanho da bandeja? Existem implementações robustas disponíveis? (ou seja, robusto para valores extremos). Eu uso python/ scipy/ numpy, mas provavelmente posso traduzir Rsem muita dificuldade.

Keflavich
fonte
8
Não tenho certeza se o modo é tecnicamente definido dessa maneira, mas o modo global de uma distribuição contínua geralmente é entendido como o ponto com a maior densidade.
Macro
1
@ Macro - isso é útil. Você pode então ler minha pergunta como: 'Quais são os melhores métodos para determinar a densidade (pico)?'
Keflavich
1
Talvez ajuste uma estimativa de densidade de kernel para seus dados e estime o modo como o pico disso? Parece uma abordagem razoável, mas não estou familiarizado com a literatura sobre esse problema.
Macro
1
Se você não presumir que a distribuição pai é gaussiana, ainda é possível colocar os dados no bin e assumir o modo como o local do bin com a maior contagem? Por que ou por que não? Em uma observação mais séria, por que não encontrar os deciles modo que 10 % das amostras estejam no intervalo x i + 1 - x i , e por isso é provável que o modo está no mais curtox0 0=xmin,x1,x2,...,x9,x10=xmax10%xEu+1-xEuintervalo inter-disco ? Em seguida, considere o tamanho da lixeira como, por exemplo, um quarto desse menor intervalo entre discos. min1j10xj+1-xj
Dilip Sarwate
2
Que suposições você pode fazer sobre a distribuição dos pais, keflavich? Se eles são paramétricos, é melhor estimar os parâmetros e depois estimar o modo a partir desses parâmetros. (Por exemplo, a média da amostra estima o modo de uma distribuição normal.) Caso contrário, o binning pode ser um método ruim. Em vez disso, uma sequência de estimadores de kernel com meia largura variável pode ser usada para fornecer uma sequência de estimadores; normalmente, se a distribuição subjacente é unimodal, os modos do kernel suavizam parecem convergir para um modo exclusivo, à medida que as meias-larguras ficam grandes e essa pode ser sua estimativa.
whuber

Respostas:

4

Em R, aplicando o método que não é baseado na modelagem paramétrica da distribuição subjacente e usa o estimador de densidade do kernel padrão para 10000 variáveis ​​distribuídas gama:

x <- rgamma(10000, 2, 5)
z <- density(x)
plot(z) # always good to check visually
z$x[z$y==max(z$y)]

retorna 0,199, que é o valor de x estimado para ter a densidade mais alta (as estimativas de densidade são armazenadas como "z $ y").

Peter Ellis
fonte
3
A única coisa que eu faria diferente seria usar uma largura de banda diferente. A largura de banda padrão para density () não é particularmente boa. a densidade (x, bw = "SJ") é melhor. Melhor ainda seria usar uma largura de banda projetada para estimativa de modo. Consulte sciencedirect.com/science/article/pii/0167715295000240 para alguma discussão.
Rob Hyndman
2

Suponha que você faça um histograma, com o tamanho do compartimento b, e o compartimento maior tenha k entradas, a partir da amostra total do tamanho n. Em seguida, o PDF médio nessa bandeja pode ser estimado em b * k / n.

O problema é que outro compartimento, que possui menos membros totais, pode ter uma alta densidade de pontos. Você só pode saber sobre isso se tiver uma suposição razoável sobre a taxa de alteração do PDF. Se você o fizer, poderá estimar a probabilidade de que o segundo maior compartimento realmente contenha o modo.

O problema subjacente é este. Uma amostra fornece um bom conhecimento do CDF, pelo teorema de Kolmogorov-Smirnov, e, portanto, uma boa estimativa da mediana e de outros quantis. Mas conhecer uma aproximação a uma função em L1 não fornece conhecimento aproximado de sua derivada. Portanto, nenhuma amostra fornece um bom conhecimento do PDF, sem suposições adicionais.

chrishmorris
fonte
0

Aqui estão alguns esboços gerais de solução que também funcionam para distribuições de alta dimensão:

  • Treine um f-GAN com divergência reversa de KL, sem fornecer nenhuma entrada aleatória ao gerador (ou seja, force-o a ser determinístico).

  • Treine um f-GAN com divergência reversa de KL, mova a distribuição de entrada para o gerador em direção a uma função delta Dirac à medida que o treinamento avança e adicione uma penalidade de gradiente à função de perda do gerador.

  • Treine um modelo generativo (diferenciável) que possa avaliar de maneira tratável uma aproximação do pdf a qualquer momento (acredito que, por exemplo, um VAE, um modelo baseado em fluxo ou um modelo autoregressivo o fariam). Em seguida, use algum tipo de otimização (algum sabor de ascensão gradiente pode ser usado se a inferência do modelo for diferenciável) para encontrar o máximo dessa aproximação.

Stephane Bersier
fonte