Assume A segue Distribuzione esponenziale; B segue la distribuzione Gamma Come per tracciare il PDF del 0,5 * (A + B)Come tracciare la funzione di densità probabilistica di una funzione?
risposta
Questo è abbastanza semplice utilizzando il " distr" pacchetto:
library(distr)
A <- Exp(rate=3)
B <- Gammad(shape=2, scale=3)
conv <- 0.5*(A+B)
plot(conv)
plot(conv, to.draw.arg=1)
Edit da JD lungo
grafico risultante è simile al seguente:
Io non sono un programmatore di R, ma potrebbe essere utile sapere che per le variabili casuali indipendenti con i PDF f (x) ed f 2 (x), il PDF della somma delle due variabili è data dalla convoluzione f * f (x) dei due PDF ingresso.
Ecco un tentativo di convoluzione (a cui si riferisce @Jim Lewis) in R. Si noti che probabilmente ci sono modi molto più efficienti per farlo.
lower <- 0
upper <- 20
t <- seq(lower,upper,0.01)
fA <- dexp(t, rate = 0.4)
fB <- dgamma(t,shape = 8, rate = 2)
## C has the same distribution as (A + B)/2
dC <- function(x, lower, upper, exp.rate, gamma.rate, gamma.shape){
integrand <- function(Y, X, exp.rate, gamma.rate, gamma.shape){
dexp(Y, rate = exp.rate)*dgamma(2*X-Y, rate = gamma.rate, shape = gamma.shape)*2
}
out <- NULL
for(ix in seq_along(x)){
out[ix] <-
integrate(integrand, lower = lower, upper = upper,
X = x[ix], exp.rate = exp.rate,
gamma.rate = gamma.rate, gamma.shape = gamma.shape)$value
}
return(out)
}
fC <- dC(t, lower=lower, upper=upper, exp.rate=0.4, gamma.rate=2, gamma.shape=8)
## plot the resulting distribution
plot(t,fA,
ylim = range(fA,fB,na.rm=TRUE,finite = TRUE),
xlab = 'x',ylab = 'f(x)',type = 'l')
lines(t,fB,lty = 2)
lines(t,fC,lty = 3)
legend('topright', c('A ~ exp(0.4)','B ~ gamma(8,2)', 'C ~ (A+B)/2'),lty = 1:3)
Non preoccupatevi di generazione dei dati dalle funzioni, basta tracciare le funzioni. Dovresti usare curve() invece di lines() con add = TRUE. – John
Se stai cercando un grafico veloce, di solito faccio l'approccio di simulazione veloce e sporco. Faccio un po disegna, Slam una densità gaussiana sulla pareggi e trama che cattivo ragazzo:
numDraws <- 1e6
gammaDraws <- rgamma(numDraws, 2)
expDraws <- rexp(numDraws)
combined <- .5 * (gammaDraws + expDraws)
plot(density(combined))
output dovrebbe apparire un po 'come questo:
- 1. Tracciare una funzione in funzione di una funzione
- 2. Come tracciare una funzione multivariata in Python?
- 3. In che modo la densità di ggplot2 differisce dalla funzione di densità?
- 4. Come tracciare una mappa della densità in python?
- 5. Come tracciare un insieme di densità in 3D usando R?
- 6. Come tracciare un rettangolo dietro una funzione nel tempo
- 7. Come utilizzare la funzione diagonale D3 per tracciare linee curve?
- 8. Calcolo della derivata della funzione di densità cumulativa in Python
- 9. Come posso tracciare ± sqrt (x) in una funzione?
- 10. Funzione di densità di probabilità di plottaggio per campione con matplotlib
- 11. Funzione di densità di probabilità da una carta, implementata utilizzando C++, non funziona come previsto
- 12. come impostare la lunghezza di una funzione
- 13. Tracciare le funzioni di densità predefinite usando ggplot e R
- 14. R: genera dati da una distribuzione di densità di probabilità
- 15. Come accedere a una funzione all'interno di una funzione?
- 16. JavaScript - Come si chiama una funzione all'interno di una funzione?
- 17. come uscita di una funzione
- 18. Tracciare la distribuzione di Poisson usando la funzione stat di ggplot2
- 19. Matlab: come tracciare il testo 3D (non 2D come fa il testo di una funzione)
- 20. Come tracciare la funzione 3D come mappa di colori 2D in python?
- 21. Funzione all'interno di una funzione TSQL
- 22. Funzione all'interno di una funzione in Java
- 23. "riferimento alla funzione" come risultato di una funzione
- 24. La definizione di una funzione interna all'interno di una funzione ricorsiva è una cattiva idea?
- 25. Una funzione typedef come parametro di un'altra funzione
- 26. come passare argomenti in funzione all'interno di una funzione in
- 27. derivata di una funzione
- 28. Come misurare la velocità di esecuzione di una funzione Arduino?
- 29. Matlab - Controllare se la funzione handle è una funzione particolare o un tipo di funzione
- 30. Come determinare il nome della funzione dall'interno di una funzione
È abbastanza carino. Non avevo familiarità con il pacchetto distr. –