Estimativa computacionalmente eficiente do modo multivariado

14

Versão curta: Qual é o método mais eficiente computacionalmente para estimar o modo de um conjunto de dados multidimensionais, amostrado de uma distribuição contínua?

Versão longa: tenho um conjunto de dados em que preciso estimar o modo. O modo não coincide com a média ou mediana. Uma amostra é mostrada abaixo, este é um exemplo 2D, mas uma solução ND seria melhor: insira a descrição da imagem aqui

Atualmente, meu método é

  1. Calcular a estimativa da densidade do kernel em uma grade igual à resolução desejada do modo
  2. Procure o maior ponto calculado

Obviamente, isso calcula o KDE em muitos pontos não plausíveis, o que é especialmente ruim se houver muitos pontos de dados de grandes dimensões ou espero uma boa resolução no modo.

Uma alternativa seria usar um recozimento simulado, algoritmo genético etc. para encontrar o pico global no KDE.

A questão é se existe um método mais inteligente de realizar esse cálculo?

tkw954
fonte
Não sei a resposta, mas acho que essa é uma ótima pergunta. É difícil para mim pensar em abordagens melhores do que as que você mencionou. Eu acho que existem diferenças entre a abordagem da estimativa univariada do kernel em comparação com a multivariada. Este livro de David Scott pode ser útil em relação à abordagem multivariada do kernel, embora não tenha certeza de que ele discuta a caça ao pico. amazon.com/...
Michael R. Chernick

Respostas:

7

KKf(x)Kf(x)K

Uma exposição muito detalhada sobre o algoritmo também é fornecida nesta entrada do blog .

Sameer
fonte
3
Boas referências, Larry Wasserman também recentemente publicou um post mais curto, descrevendo a técnica em menos detalhes, The Amazing Mean Shift Algorithm .
Andy W
1
@AndyW Good call! A publicação de Larry Wasserman (e seu blog em geral) é ótima. Examinando os comentários, encontrei esta referência ilustrativa sobre mudança de média, mudança de período médio e uma variante, QuickShift.
Sameer
2
Obrigado. Não posso dizer se esse é o mais rápido, mas certamente encontra o máximo local. Aqui estão alguns gráficos da trajetória e da taxa de aprendizado em alguns dados sintéticos .
precisa saber é
9

Se o seu interesse principal for problemas bidimensionais, eu diria que a estimativa da densidade do kernel é uma boa opção porque possui boas propriedades assintóticas (observe que não estou dizendo que é a melhor). Veja por exemplo

Parzen, E. (1962). Na estimativa de uma função e modo de densidade de probabilidade . Annals of Mathematics Statistics 33: 1065-1076.

de Valpine, P. (2004). Probabilidades do espaço de estado de Monte Carlo por estimativa ponderada da densidade do núcleo posterior . Jornal da Associação Estatística Americana 99: 523-536.

Para dimensões mais altas (4+), esse método é realmente lento devido à conhecida dificuldade em estimar a matriz de largura de banda ideal, consulte .

Agora, o problema com o comando ksno pacote KDEé, como você mencionou, que ele avalia a densidade em uma grade específica, o que pode ser muito limitante. Este problema pode ser resolvido se você usar o pacote KDEpara estimar a matriz de largura de banda, usando, por exemplo Hscv, implementar o estimador de densidade de Kernel e, em seguida, otimizar essa função usando o comando optim. Isso é mostrado abaixo usando dados simulados e um kernel Gaussiano no R.

rm(list=ls())

# Required packages
library(mvtnorm)
library(ks)

# simulated data
set.seed(1)
dat = rmvnorm(1000,c(0,0),diag(2))

# Bandwidth matrix
H.scv=Hlscv(dat)

# [Implementation of the KDE](http://en.wikipedia.org/wiki/Kernel_density_estimation)
H.eig = eigen(H.scv)
H.sqrt = H.eig$vectors %*% diag(sqrt(H.eig$values)) %*% solve(H.eig$vectors)
H = solve(H.sqrt)
dH = det(H.scv)

Gkde = function(par){
return( -log(mean(dmvnorm(t(H%*%t(par-dat)),rep(0,2),diag(2),log=FALSE)/sqrt(dH))))
}

# Optimisation
Max = optim(c(0,0),Gkde)$par
Max

Estimadores com restrição de forma tendem a ser mais rápidos, por exemplo

Cule, ML, Samworth, RJ e Stewart, MI (2010). Estimativa de máxima verossimilhança de uma densidade log-côncava multidimensional . Revista Royal Statistical Society B 72: 545–600.

Mas eles estão muito altos para esse fim.

4

Outros métodos que você pode considerar usar são: ajustar uma mistura finita multivariada de normais (ou outras distribuições flexíveis) ou

Abraham, C., Biau, G. e Cadre, B. (2003). Estimativa simples do modo de uma densidade multivariada . The Canadian Journal of Statistics 31: 23–34.

Eu espero que isso ajude.

Comunidade
fonte
0

Recentemente, publicamos um artigo sugerindo um estimador de modo rápido e consistente.

PS Ruzankin e AV Logachov (2019). Um estimador de modo rápido no espaço multidimensional. Estatísticas e cartas de probabilidade

O(dn)dn

Eu também sugeriria os novos estimadores de modo de variação mínima do meu artigo recente

PS Ruzankin (2020). Uma classe de estimadores de modo não paramétrico. Comunicações em Estatística - Simulação e Computação

O(dn2)nRd

Pavel Ruzankin
fonte