Eu estava lendo esta pergunta e pensei em simular a quantidade necessária. O problema é o seguinte: Se e são normais normais, o que é ? Então, eu quero simular . (para um valor escolhido de )B E ( A 2 | A + B ) E ( A 2 | A + B ) A + B
Eu tentei o seguinte código para conseguir isso:
n <- 1000000
x <- 1 # the sum of A and B
A <- rnorm(n)
B <- rnorm(n)
sum_AB = A+B
estimate <- 1/sum(sum_AB==x) * sum( (A[sum_AB==x])^2 )
O problema é que quase sempre não há valor em sum_AB
que correspondências x
(entre simulações). Se eu escolher algum elemento sum_AB
, geralmente é a única instância de seu valor no vetor.
Em geral, como lidar com esse problema e executar uma simulação precisa para encontrar uma expectativa do formulário fornecido? ( e podem não ser necessariamente normalmente distribuídos ou da mesma distribuição.)B
r
simulation
monte-carlo
conditional-expectation
Comp_Warrior
fonte
fonte
Respostas:
Meu comentário no tópico mencionado sugere uma abordagem eficiente: porque e são conjuntamente normais com covariância zero, eles são independentes, de onde a simulação precisa apenas gerar (que tem média e variação ) e construa . Neste exemplo, a distribuição de é examinada por meio do histograma de valores simulados.X=A+B Y=A−B Y 0 2 A=(X+Y)/2 A2|(A+B=3) 105
A expectativa pode ser estimada como
A resposta deve estar próxima de .11/4=2.75
fonte
Uma maneira genérica de resolver esse problema é considerar a mudança de variáveis de para . O Jacobiana deste transformar ser igual a um (1), a densidade de é Portanto, a densidade de condição de é com o termo de proporcionalidade sendo o inverso da densidade marginal de , . Como , uma transformação determinística, essa também é a densidade da junta de dada(A,B) (A,A+B=S) (A,S)
fonte
Você pode resolver esse problema usando amostras de inicialização. Por exemplo,
Executando este código, por exemplo, obtenho o seguinte
Portanto, quando então .A+B=0.9890429 E(A2|A+B=0.9890429)=0.7336328
Agora, para validar que essa deve ser a resposta, vamos executar o código do whuber em sua solução. Então, executando o código com
x<-0.9890429
resultados da seguinte maneira:E, portanto, as duas soluções são muito próximas e coincidem uma com a outra. No entanto, minha abordagem para o problema deve permitir que você insira qualquer distribuição que desejar, em vez de confiar no fato de que os dados vieram de distribuições normais.
Uma segunda solução de força bruta, mais baseada no fato de que, quando a densidade é relativamente grande, você pode executar facilmente um cálculo de força bruta, é a seguinte
Executando este código, obtemos o seguinte
Assim, a execução do código para resulta em que concorda com a verdadeira solução.A+B=3 E(A2|A+B=3)=2.757067
fonte
parece-me que a questão se torna esta:
vamos começar revisando a amostragem de importância :
onde os primeiros expectativas é em relação à variável aleatória com densidade e o segundo é um wrt com densidade .Z1 f1(z) Z2 f2(z)
Portanto, se você pode simular aleatoriamente 's de , faça uma estimativa usando ou alternativamente simule ' s de usandozi f1 1n∑iV(zi) zi f2 1n∑iV(zi)f1(zi)f2(zi)
Agora, voltemos ao nosso caso e são distribuídos como (X, Y) na condição X + Y = k, ou seja, e deixeU(x,y)=x2 (X,Y) f(x,y)∫x+y=kf(x,y) A=∫x+y=kf(x,y)
então agora o procedimento é:
fonte