É comum usar pesos em aplicações como modelagem de mistura e combinar linearmente funções básicas. Pesos muitas vezes deve obedecer 0 e . Eu gostaria de escolher aleatoriamente um vetor de peso partir de uma distribuição uniforme desses vetores.
Pode ser tentador usar ondeU (0, 1), no entanto, conforme discutido nos comentários abaixo, a distribuição denão é uniforme.
Entretanto, dada a restrição , parece que a dimensionalidade subjacente do problema é , e que deve ser possível escolher um escolhendo parâmetros de acordo com alguma distribuição e depois computando o correspondente a esses parâmetros (porque uma vez que dos pesos são especificados, o peso restante é totalmente determinado).
O problema parece ser semelhante ao problema de escolha de pontos de esfera (mas, em vez de escolher 3 vetores cuja norma é unidade, quero escolher vetores cuja norma seja unidade).
Obrigado!
fonte
Respostas:
Escolha uniformemente (por meio de n - 1 reais uniformes no intervalo [ 0 , 1 ] ). Classifique os coeficientes de forma que 0 ≤ x 1 ≤ ⋯ ≤ x n - 1 . Conjuntox∈[0,1]n−1 n−1 [ 0 , 1 ] 0 ≤ x1≤ ⋯ ≤ xn - 1
Porque nós podemos recuperar o ordenado por meio das somas parciais do w i , o mapeamento x → w é ( n - 1 ) ! para 1; em particular, sua imagem é o n - 1 simplex em R n . Como (a) cada troca de um tipo é uma transformação linear, (b) a fórmula anterior é linear e (c) as transformações lineares preservam a uniformidade das distribuições, a uniformidade de x implica a uniformidade de w no n - 1 simplex.xEu WEu x → w ( n - 1 ) ! n - 1 Rn x W n - 1 Em particular, observe que os marginais de não são necessariamente independentes.W
Este gráfico de pontos 3D mostra os resultados de 2000 iterações desse algoritmo para . Os pontos são confinados ao simplex e são distribuídos aproximadamente uniformemente sobre ele.n = 3
Como o tempo de execução desse algoritmo é , é ineficiente para n grande . Mas isso responde à pergunta! Uma maneira melhor (em geral) de gerar valores uniformemente distribuídos no n - 1- simplex é desenhar n reais reais ( x 1 , … , x n ) no intervalo [ 0 , 1 ] , calcularO ( n log( n ) ) ≫ O ( n ) n n - 1 n ( x1, … , Xn) [ 0 , 1 ]
(o que faz com que cada positivo com probabilidade 1 , de onde a sua soma é quase certamente diferente de zero) e conjuntoyEu 1
Isto funciona porque cada tem um Γ ( 1 ) de distribuição, o que implica w tem um Dirichlet ( 1 , 1 , 1 ) de distribuição - e que é uniforme.yi Γ(1) w (1,1,1)
fonte
A primeira entrada é colocada em zero para identificação; você veria isso em modelos logísticos multinomiais. Obviamente, em modelos multinomiais, você também teria covariáveis sob os expoentes, em vez de apenas os
zz
s aleatórios . A distribuição doszz
s é a distribuição de valor extremo; você precisaria disso para garantir que os pesos resultantes sejam os mesmos que inicialmente coloqueirnorm
lá, mas depois tive a sensação de que isso não vai funcionar.fonte
A solução é óbvia. O código MathLab a seguir fornece a resposta para três pesos.
fonte