Qual algoritmo adaptável do Metropolis Hastings é implementado no pacote R MHadaptive?

7

Existem várias versões dos algoritmos adaptáveis ​​do Metropolis Hastings. Um é implementado na função Metro_Hastingsdo Rpacote MHadaptive, veja aqui . A referência listada lá, Spiegelhalter et al. (2002), infelizmente, não contém uma descrição de nenhum algoritmo adaptativo, até onde posso ver. No entanto, o Metro_Hastingsalgoritmo funciona muito bem na amostragem da distribuição posterior do modelo que considero, e é por isso que quero entender seus detalhes.

Eu fiz engenharia reversa do algoritmo um pouco. Alguém reconhece esse algoritmo adaptativo de MH? Isto é o que faz:

Seja a densidade alvo. Inicialize .θ 0 , i = 0 , Σqθ0,i=0,Σ

Para iterações faça:{ i = 1 , . . . , n }n{i=1,...,n}

  1. Propor .θ1N(θ1|θ0,i1,Σ)
  2. Aceite com probabilidade . Se aceito, defina \ theta_ {0, i}: = \ theta_1 . Se rejeitar: \ theta_ {0, i}: = \ theta_ {0, i-1} . A = min { 1 , q ( θ 1 ) / q ( θ 0 , i ) }θ1A=min{1,q(θ1)/q(θ0,i)}θ 0 , i : = θ 0 , i - 1θ0,i:=θ1θ0,i:=θ0,i1

Se i=j , onde j um vector definido de modo que todo o elemento de j>x (padrão x=100 ), há uma distância de y iterações entre os elementos (padrão y=20 ), e nenhum elemento j>z (padrão z=0.75n ), faça:

  1. Selecione θ~={θ0k,...,θ0,i} (padrão k=0.5i ).
  2. Atualização: Σ:=S(θ~) onde S o estimador de probabilidade máxima da matriz de covariância de variâncias de θ~ assumindo normalidade multivariada.

Os passos 1 e 2 são MH padrão. As etapas 3 e 4 são as adaptações que ocorrem nas etapas e usam as iterações anteriores para atualizar na matriz de covariância das iterações anteriores.j - k ΣjjkΣ

tomka
fonte
1
desculpe pela pergunta boba, mas você tentou entrar em contato com o proprietário do pacote (primeiro) e David Spiegelhalter (segundo)? O proprietário do pacote deixou a McGill há alguns anos atrás, portanto, é perfeitamente possível que o endereço de email no pacote não seja mais monitorado. No entanto, com apenas um pouco de fu do Google, você pode descobrir facilmente os contatos atuais (é claro que não estou compartilhando aqui porque não sei se ele gostaria). Se você não puder entrar em contato com ele, David Spiegelhalter é um cara muito legal, e acho que ele responderia se você enviasse um e-mail para ele.
DeltaIV 30/10
@ DeltaIV Entrei em contato com ele, mas não recebi uma resposta. Não considerei escrever para Spiegelhalter, pois ele é apenas citado (imho incorretamente) e não tenho certeza se ele sabe sobre o pacote. Entrei em contato com o autor no endereço de e-mail indicado na embalagem. Parece que ainda está ativo e, portanto, não considerei encontrá-lo em outro lugar. Vou tentar isso.
Tomka
Concordo que é improvável que a Spiegelhalter conheça os pacotes: foi por isso que sugeri entrar em contato com o proprietário do pacote. No entanto, ele pode saber sobre o algoritmo que você descreve (ou talvez não, se ele foi citado incorretamente como você suspeita). Se você conseguir obter uma resposta para sua pergunta, informe-nos. Estou curioso.
DeltaIV 30/10
1
@DeltaIV Não consigo identificar um endereço de e-mail na instituição atual. Provavelmente vou precisar deixar assim, a menos que você possa me indicar.
Tomka
claro, vamos discutir isso no chat . Espero que esteja claro que quero ajudar, estava preocupado com a privacidade do proprietário do pacote.
DeltaIV 30/10

Respostas:

1

Sua descrição soa como o algoritmo adaptativo de Haario et al (1999) . A ideia é de fato atualizar a matriz de covariância da distribuição da proposta usando um número fixo de amostras recentes.

Observe que o algoritmo descrito em Haario et al (1999) tem bom desempenho, mas NÃO é ergódico. Haario et al (2001) descreveram um algoritmo aprimorado que é ergódico. A idéia é atualizar a matriz de covariância da distribuição da proposta usando todas as amostras anteriores.

Heisenberg
fonte