Supponiamo di avere una funzione che voglio integrare Ovviamente supponendo che vada a zero agli endpoint, nessun ingrandimento, bella funzione. Un modo in cui mi sono armeggiato è usare l'algoritmo Metropolis-Hastings per generare un elenco di campioni dalla distribuzione proporzionale a , che manca della costante di normalizzazione che chiamerò , e quindi calcolando alcune statistiche su queste :
Poiché , posso sostituire in per cancellare dall'integrale, risultando in un'espressione della forma Quindi, a condizione che integri con lungo quella regione, dovrei ottenere il risultato 1 / N , che potrei semplicemente prendere il reciproco per ottenere la risposta che desidero. Quindi potrei prendere l'intervallo del mio campione (per usare in modo più efficace i punti) r = x_ \ max - x_ \ min e lasciare U (x) = 1 / r per ogni campione che ho disegnato. In questo modo U (x)f ( x ) = U ( x ) / g ( x ) g 1U(x)11/Nr=xmax-xminU(x)=1/rU(x)
Ho provato a provare questo in R per la funzione di esempio . In questo caso non utilizzo Metropolis-Hastings per generare i campioni, ma utilizzo le probabilità effettive rnorm
per generare campioni (solo per testare). Non riesco a ottenere i risultati che sto cercando. Fondamentalmente la piena espressione di ciò che vorrei calcolare è:
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896
Modifica per CliffAB
Il motivo per cui utilizzo l'intervallo è solo per definire facilmente una funzione diversa da zero nella regione in cui si trovano i miei punti, ma che si integra con nell'intervallo . La specifica completa della funzione è: Non ho dovuto usare come densità uniforme. Avrei potuto usare un'altra densità integrata a , ad esempio la densità di probabilità Tuttavia, ciò avrebbe reso banale la somma dei singoli campioni [ - ∞ , ∞ ] U ( x ) = { 1U(x)1P(x)=1
Potrei provare questa tecnica per altre distribuzioni che si integrano in . Tuttavia, vorrei ancora sapere perché non funziona per una distribuzione uniforme.