Como devo coletar amostras com eficiência da seguinte distribuição?
Se não for muito grande, a amostragem por rejeição pode ser a melhor abordagem, mas não sei como proceder quando for grande. Talvez exista alguma aproximação assintótica que possa ser aplicada?
random-generation
beta-distribution
truncation
user1502040
fonte
fonte
Respostas:
A maneira mais simples e mais geral que se aplica a qualquer distribuição truncada (também pode ser generalizada para truncamento nos dois lados) é usar a amostragem por transformação inversa . Se é a distribuição cumulativa de juros, defina e tomeF p0=F(k)
onde é uma amostra de truncada à esquerda em . A função quantil vai mapear probabilidades para amostras de . Como tomamos valores de somente da "área" que corresponde aos valores da distribuição beta da região não truncada, você amostrará apenas esses valores.X F k F−1 F U
Este método é ilustrado na imagem abaixo, onde a área truncada é marcada por um retângulo cinza, os pontos em vermelho são desenhados da distribuição e depois transformados em amostras.U(p0,1) B(2,8)
fonte
scipy.special.betainc
o inverso e em R existepbeta
.qbeta
para a função quantílica em R.)@ A resposta de Tim mostra como a amostragem por transformação inversa pode ser adaptada para distribuições truncadas, liberando o tempo de execução da dependência do limite . Eficiências adicionais podem ser obtidas evitando a avaliação numérica dispendiosa da função beta quantil e usando a amostragem por transformada inversa como parte da amostragem por rejeição.k
A função densidade de uma distribuição beta com parâmetros de forma & duplamente truncada em (para um pouco mais de generalidade) éα β k1<k2
Pegue qualquer parte monotonicamente crescente da densidade entre e : para é log-côncava, para que você possa envolvê-lo com uma função exponencial desenhada tangente a qualquer ponto ao longo dele:xL xU α,β>1
Encontre definindo os gradientes das densidades de log iguaisλ
O melhor envelope para amostragem de rejeição é aquele com a menor área abaixo dela. A área é Substituindo expressões em por & , e largando fatores constantes dá
Escrever a derivada é deixado como um exercício para os leitores ou seus computadores. Qualquer algoritmo de busca de raiz pode então ser usado para encontrar o para o qual .dQdx x dQdx=0
O mesmo vale, mutatis mutandis, para partes monotonicamente decrescentes da densidade. Portanto, a distribuição beta truncada pode ser muito bem envolvida por duas funções exponenciais, digamos, uma de para o modo e outra do modo para , pronta para amostragem por rejeição. (Para uma variável aleatória uniforme truncada , tem uma distribuição exponencial truncada com o parâmetro de taxa .)k1 k2 U −log(1−U)λ λ
A beleza dessa abordagem é que todo o trabalho duro é feito. Uma vez definida a função de envelope, calculada a constante de normalização para a densidade beta truncada, tudo o que resta é gerar variáveis aleatórias uniformes e executar algumas operações aritméticas, logs e potências e comparações simples. Apertar a função de envelope - com linhas horizontais ou mais curvas exponenciais - pode, obviamente, reduzir o número de rejeições.
fonte