Distribuições em subconjuntos de

9

Gostaria de saber se há algum tipo de distribuição padrão em subconjuntos de números inteiros . De maneira equivalente, poderíamos expressar isso como uma distribuição em um vetor de comprimento de resultados binários, por exemplo, se então corresponde ao vetor (1, 0, 1, 0, 1) .{1,2,...,J}JJ=5{1,3,5}(1,0,1,0,1)

Idealmente, o que estou procurando é alguma distribuição , proveniente de uma família indexada por um parâmetro dimensional finito , que distribuiria sua massa de tal maneira que dois vetores binários e terão probabilidade de se eles são "fechar" em conjunto, ou seja, e têm probabilidades semelhantes. Realmente, o que pretendo fazer é colocar um prior em modo que, se eu sei que é bastante grande, então provavelmente seja grande em relação a vetores distantes de .νθ()θr1r2r1=(0,0,1,0,1)r2=(0,0,1,1,1)θνθ(r1)νθ(r2)r1

Uma estratégia que vem à mente seria colocar uma métrica ou alguma outra medida de dispersão em em e, em seguida, tomar ou algo semelhante. Um exemplo explícito seria em analogia com a distribuição normal. Tudo bem, mas espero que exista algo padrão e favorável à análise bayesiana; com isso, não consigo anotar a constante de normalização.dθ{0,1}Jνθ(r)exp(dθ(r,μ))exp{rμ2/(2σ2)}

cara
fonte
A amostragem de um subconjunto é um problema básico na metodologia de pesquisa.
Stéphane Laurent
@ Stephane claro, mas acho que meu problema difere, pois tenho uma estrutura adicional desejada que gostaria que minha distribuição refletisse. Talvez formular a pergunta em termos de subconjuntos tenha sido uma má idéia, pois tenho uma vaga noção de distância trabalhando para mim.
cara
Você queria escrever "... então provavelmente é pequeno ..."? No que diz respeito à constante de normalização, considere usar a distância de Hamming para métrica: para famílias de distribuições em escala de local, é possível calcular essa constante como a soma de apenas termos . Além disso, todas essas famílias que atendem aos seus critérios podem ser descritas apenas por parâmetros discretos (para a localização) e por parâmetros contínuos. J + 1 J Jvθ(r2)J+1JJ
whuber
@ Whuber não, eu quis dizer grande. Quero que distribua sua massa em torno de pontos próximos. Provavelmente teria sido mais apropriado formular a pergunta como uma distribuição nas vértices de um hipercubo. Eu tinha considerado a distância de Hamming (que eu acho que é a mesma que no meu caso); Eu provavelmente gostaria de ajustá-lo como, e eu acho que provavelmente teria que fazer algum MCMC para fazer uma amostra dessa distribuição. L 1| r i - μ iνθ()L1|riμiσi|
guy
Oh, eu vejo agora. Mas não foi isso que você disse originalmente. Por exemplo, na sua caracterização, se for grande e for o conjunto de vetores "distantes" de e for qualquer vetor que não esteja em , então também deverá "provavelmente" seja grande. Mas "não muito longe" e "perto" não significam exatamente as mesmas coisas. Seria mais simples - e mais consistente internamente - reformular a condição como você fez no seu comentário. Mas não, você não precisa do MCMC para amostrar a partir de distribuições em escala de localização com base nas distâncias de Hamming: existem maneiras muito mais eficientes. R r 1 r 2 R ν ( r 2 )ν(r1)Rr1r2Rν(r2)
whuber

Respostas:

6

Você pode favorecer famílias de locais com base na distância de Hamming , devido à sua riqueza, flexibilidade e capacidade de processamento computacional.


Notação e definições

Lembre-se de que em um módulo de dimensão finita livre com base , a distância de Hamming entre dois vetores e é o número de lugares , onde .( e 1 , e 2 , , e J ) δ H v = v 1 e 1 + + v J e J w = w 1 e 1 + + w J e J i v iw iV(e1,e2,,eJ) δHv=v1e1++vJeJw=w1e1++wJeJiviwi

Dada qualquer origem , a distância de Hamming particiona nas esferas , , em que . Quando o anel de aterramento possui elementos, possui elementos e possui . (Isso ocorre imediatamente após observar que os elementos de diferem de exatamente em locais - dos quais existemV S i ( v 0 )i=0,1,,J S i ( v 0 )={ wV | δ H ( w , v 0 )=i}nV n Jv0VVSi(v0)i=0,1,,JSi(v0)={wV | δH(w,v0)=i}nVnJ( JSi(v)Si((Ji)(n1)iv i ( JSi(v)vi n-1(Ji)possibilidades - e que existem, independentemente, opções de valores para cada local.)n1

A tradução afim em atua naturalmente em suas distribuições para fornecer famílias de locais. Especificamente, quando é qualquer distribuição em (que significa pouco mais que , para todos e ) e é qualquer elemento de , então também é uma distribuição Ondef V f : V [ 0 , 1 ] f ( v ) 0 vV vV f ( v ) = 1 w V f ( w )VfVf:V[0,1]f(v)0vVvVf(v)=1wVf(w)

f(w)(v)=f(vw)

para todos . Uma família local de distribuições é invariante no âmbito desta acção: implica para todos .Ω f ΩvV ΩfΩvVf(v)ΩvV

Construção

Isso nos permite definir famílias de distribuições potencialmente interessantes e úteis, especificando suas formas em um vetor fixo , que, por conveniência, considerarei e traduzindo essas "distribuições geradoras" sob a ação de para obter a família completa . Para atingir a propriedade desejada que deve ter valores comparáveis ​​em pontos próximos, basta exigir essa propriedade de todas as distribuições geradoras.0 = ( 0 , 0vV Ω f0=(0,0,,0)VΩf

Para ver como isso funciona, vamos construir a família de locais de todas as distribuições que diminuem com o aumento da distância. Como apenas as distâncias Hamming são possíveis, considere qualquer sequência decrescente de números reais não negativos = . Conjuntoa 0J+1a0a0a1aJ0

A=i=0J(n1)i(Ji)ai

e defina a função porfa:V[0,1]

fa(v)=aδH(0,v)A.

Então, como é fácil de verificar, é uma distribuição em . Além disso, se e somente se for um múltiplo positivo de (como vetores em ). Assim, se quisermos, podemos padronizar para . V f a = f a ' a ' a R J + 1 a a 0 = 1faVfa=faaaRJ+1aa0=1

Dessa forma, essa construção fornece uma parametrização explícita de todas as distribuições invariantes a localização que estão diminuindo com a distância de Hamming: qualquer distribuição está no formato para alguma sequência e algum vetor . a = 1 fa(v)vVa=1a1a2aJ0vV

Essa parametrização pode permitir uma especificação conveniente de prioros: fatorá-los em um prior no local e um prior no formato . (Obviamente, pode-se considerar um conjunto maior de priores onde a localização e a forma são independentes, mas isso seria uma tarefa mais complicada.)ava

Gerando valores aleatórios

Uma maneira de amostrar a partir de é por etapas, fatorando-a em uma distribuição através dos raios esféricos e outra distribuição condicional em cada esfera:fa(v)

  1. Desenhe um índice da distribuição discreta em dada pelas probabilidades , onde é definido como antes .i( J{0,1,,J}A(Ji)(n1)iai/AA

  2. O índice corresponde ao conjunto de vetores que diferem de exatamente em lugares. Portanto, selecione aqueles que coloque fora dos subconjuntos possíveis , dando a cada probabilidade igual. (Esta é apenas uma amostra do subscritos fora do sem substituição.) Que este subconjunto de lugares ser escrito .ivi ( Jii i(Ji)iI IJ iI

  3. Desenhe um elemento selecionando independentemente um valor uniformemente no conjunto de escalares diferentes de para todos os e defina . Equivalentemente, crie um vetor selecionando uniformemente aleatoriamente nos escalares diferentes de zero quando e definindo . Defina .w j v j j I w j = v j u u j j I u j = 0 w = vwwjvjjIwj=vjuujjIuj=0w=v+u

O passo 3 é desnecessário no caso binário.


Exemplo

Aqui está uma Rimplementação para ilustrar.

rHamming <- function(N=1, a=c(1,1,1), n=2, origin) {
  # Draw N random values from the distribution f_a^v where the ground ring
  # is {0,1,...,n-1} mod n and the vector space has dimension j = length(a)-1.
  j <- length(a) - 1
  if(missing(origin)) origin <- rep(0, j)

  # Draw radii `i` from the marginal distribution of the spherical radii.
  f <- sapply(0:j, function(i) (n-1)^i * choose(j,i) * a[i+1])
  i <- sample(0:j, N, replace=TRUE, prob=f)

  # Helper function: select nonzero elements of 1:(n-1) in exactly i places.
  h <- function(i) {
    x <- c(sample(1:(n-1), i, replace=TRUE), rep(0, j-i))
    sample(x, j, replace=FALSE)
  }

  # Draw elements from the conditional distribution over the spheres
  # and translate them by the origin.
  (sapply(i, h) + origin) %% n
}

Como um exemplo de seu uso:

test <- rHamming(10^4, 2^(11:1), origin=rep(1,10))
hist(apply(test, 2, function(x) sum(x != 0)))

Demorou segundos para desenhar elementos iid da distribuição que , (o caso binário), e estão diminuindo exponencialmente.10 4 f ( v ) a J = 10 n = 2 v = ( 1 , 1 , , 1 ) a = ( 2 11 , 2 10 , , 2 1 )0.2104fa(v)J=10n=2v=(1,1,,1)a=(211,210,,21)

(Este algoritmo não exige que esteja diminuindo; assim, ele gera variáveis ​​aleatórias a partir de qualquer família de localizações, não apenas as unimodais.)a

whuber
fonte
Obrigado por isso! A distância de Hamming, neste caso, é apenas em restrita às vértices do cubo; Nesse contexto, a distância de Hamming está agindo isotropicamente. Afastar-me disso complica essas coisas porque tenho mais do que valores diferentes para a minha medida de distância? Algum comentário geral sobre isso? L1RJJ
cara
Sim: uma escolha de funções de distância dependerá do que os valores em representam. Como a pergunta foi formulada de maneira abstrata, não temos realmente nada a fazer para formar opiniões sobre o que seriam boas escolhas. A distância de Hamming seria apropriada para valores nominais e talvez também em outros casos, mas outras distâncias podem funcionar melhor quando houver um senso inerente de distância para o conjunto . No caso binário , é difícil generalizar as distâncias de Hamming: elas já são bastante gerais. { 1 , 2 , , n } n = 2{1,2,,n}{1,2,,n}n=2
whuber
1

Uma amostra de um processo de ponto determinante k modela uma distribuição por subconjuntos que incentivam a diversidade, de modo que itens semelhantes têm menor probabilidade de ocorrerem juntos na amostra. Consulte a amostragem do processo do ponto determinante K por Alex Kulesza, Ben Taskar.

carro fúnebre
fonte