Como eu gero números aleatórios normais aleatoriamente distribuídos de forma idêntica, mas não independentes, de modo que sua soma caia dentro de um intervalo pré-especificado com probabilidade ?
(Essa pergunta é motivada pela geração de uma caminhada aleatória que termina em um ponto pré-especificado: afinal, um processo aleatório não é tão aleatório (determinístico) . Como uma variável aleatória contínua tem uma probabilidade zero de atingir um número exato, fazemos a segunda melhor coisa e peça um intervalo inteiro para terminar.)
EDIT: A geração de amostras a partir da distribuição Gaussiana singular foi proposta como duplicada, que por sua vez é fechada como duplicata de Gerar números aleatórios normalmente distribuídos com matriz de covariância definida não positiva . Concordo que ambos são úteis. No entanto, o objetivo da pergunta atual (mais especificamente, da resposta) é primeiro descobrir que podemos usar uma distribuição normal multivariada para abordar a questão e, segundo, que tipo de matriz de covariância funciona. Como obter amostras de uma distribuição com essa covariância é uma terceira etapa, na qual os threads vinculados são úteis.
fonte
Respostas:
Geraremos normais multivariados com e forma que sua soma seja satisfatória nossa condição. Seja .X∼MN(μ,Σ) μ∈Rn Σ∈Rn×n Z=X1+⋯+Xn
Como um meio comum, escolhemos
Para que com probabilidade , seu desvio padrão deva cumprirZ∈[a,b] p
onde é o quantil normal padrão para o nível , aqui .qα α α=1−1−p2
Agora precisamos especificar . Temos muita margem de manobra aqui. Vamos supor que queremos que a cada seja e a covariância seja para . A chave para criar um "bom" é esta resposta anterior por probabilityislogic . Isso resulta que a soma de nossos s tem variaçãoΣ Xi σ2 cov(Xi,Xj)=τ i≠j Σ Xi
então precisamos disso
Também precisamos garantir que seja definitivo positivo, mas isso não é muito difícil. A maneira mais fácil de fazer isso é garantir que todas as entradas em sejam positivas, por exemplo, definindoΣ Σ
mas isso fornece valores muito pequenos e somas e trajetórias cumulativas muito chatas:
Menos chato é definir
que produz trajetórias muito mais interessantes:
Observe que definir isso de fato produz uma matriz de covariância válida, porque é então da forma , a saberΣ Σij=m(i−j)
e nós temos isso
que é uma condição suficiente para ser estritamente positivo definido pela Wikipedia (ponto 7 em "Outras propriedades" ).Σ
Código R abaixo, mas primeiro, vá para cima e vote na resposta da probabilityislogic .
fonte