Supongamos que A sigue a la distribución exponencial; B sigue la distribución Gamma Cómo trazar el PDF de 0,5 * (A + B)¿Cómo graficar la función de densidad probabilística de una función?
Respuesta
Esto es bastante sencillo utilizando el " distr" paquete:
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)
Editar por JD largo
parcela resultante es la siguiente:
No soy un programador R, pero podría ser útil saber que para las variables aleatorias independientes con archivos PDF f (x) y f (x), la PDF de la suma de las dos variables es dada por la convolución f * f (x) de los dos archivos PDF de entrada.
Aquí hay un intento de hacer la convolución (a la que se refiere @Jim Lewis) en R. Tenga en cuenta que probablemente haya maneras mucho más eficientes de hacerlo.
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)
No se moleste en la generación de los datos de las funciones, simplemente dibujar las funciones. Utilizaría curve() en lugar de lines() con add = TRUE. – John
Si sólo está buscando gráfica rápida que suele hacer el enfoque de simulación rápida y sucia. Hago un poco de llama, Mate de una densidad de Gauss en los sorteos y el argumento de que el chico malo:
numDraws <- 1e6
gammaDraws <- rgamma(numDraws, 2)
expDraws <- rexp(numDraws)
combined <- .5 * (gammaDraws + expDraws)
plot(density(combined))
resultado debe ser un poco como esto:
- 1. ¿Cómo usar la curva de función en [R] para graficar una curva normal?
- 2. Función de una función
- 3. ¿Cómo obtener la densidad de una pantalla?
- 4. Acceder a una función dentro de una función (función anidada?)
- 5. Implementando una función de densidad de probabilidad gaussiana multivariante para> 2 dimensiones en C++
- 6. Función dentro de una función.?
- 7. ¿Declarar una función dentro de una función?
- 8. Generación probabilística de redes semánticas
- 9. Excel: la mejor forma de graficar el cambio de una celda en función del cambio de otra celda
- 10. cómo establecer la longitud de una función
- 11. Cómo imprimir la dirección de una función?
- 12. cómo devolución de llamada una función lua de función ac
- 13. Alcance de la función declarada dentro de una función
- 14. Uso de la función de mapa con una función multivariada
- 15. Convirtiendo la función de Javascript en una función de PHP
- 16. Cómo salir de una función
- 17. ¿Cómo se divide una función de la API de Win32 en función de los parámetros de la función?
- 18. función pasa como argumento de la función
- 19. Densidad de probabilidad de trazado/función de masa del conjunto de datos en R
- 20. ¿La función array.clear() de JavaScript no es una función?
- 21. Función dentro de una función TSQL
- 22. Función dentro de una función en Java
- 23. jquery función dentro de una función
- 24. JavaScript: ¿Cómo pasar una función anónima como parámetro de función?
- 25. cómo aislar una función
- 26. Probabilidad de trazado con ggplot2 (no densidad)
- 27. obtienen llamadas nombre de la función de la función llamada
- 28. ¿Cómo puedo obtener el nombre de la función dentro de una función de JavaScript?
- 29. argumentos de la función
- 30. derivado de una función
Eso es bastante limpio. No estaba familiarizado con el paquete distr. –