Cordial saludo.
Estoy trabajando con una densidad conjunta algo elaborada (suma y cociente
de dos variables aleatorias positivas usando la cópula Frank) y requiero
encontrar la distribución marginal de cada una de las variables. A manera de
ejemplo (no es el caso específico, que tiene mucho más código), si partimos
de la distribución exponencial bivariada
#-----
theta<-0.5
f<-function(x,y){exp(x+y+theta*x*y)*((1+theta*x)*(1+theta*y)-theta)} #
Densidad conjunta
xx<-yy<-seq(0,1,0.02)
zz <- outer(xx, yy, f)
persp(xx,yy,zz)
#------
¿Cómo obtener la densidad marginal de X? Algo como:
# fx<-function(x){integral desde 0 hasta Inf de f(x,y)dy}
Muchas gracias de antemano por la ayuda.
Saludos.
César Escalante C.
[[alternative HTML version deleted]]
Según recuerdo, las copulas están definidas a partir de las marginales. Con lo cual, en principio debería disponer de ellas. Si por alguna razón no dispones de ellas, puedes evaluar las marginales utilizando por ejemplo el método de Importance Sampling. Por ultimo, me parece que la densidad que das no es una densidad de probabilidad sobre el intervalo [0, infinity], ya que tu función f(x,y) se dispara cuando x e y tienden hacia el infinito. Un saludo. Olivier -- ____________________________________ Olivier G. Nuñez Email: onunez en iberstat.es Tel : +34 663 03 69 09 Web: http://www.iberstat.es ____________________________________ El 02/05/2011, a las 0:02, Cesar Escalante escribió:> Cordial saludo. > > Estoy trabajando con una densidad conjunta algo elaborada (suma y > cociente > de dos variables aleatorias positivas usando la cópula Frank) y > requiero > encontrar la distribución marginal de cada una de las variables. A > manera de > ejemplo (no es el caso específico, que tiene mucho más código), si > partimos > de la distribución exponencial bivariada > #----- > theta<-0.5 > f<-function(x,y){exp(x+y+theta*x*y)*((1+theta*x)*(1+theta*y)-theta)} # > Densidad conjunta > xx<-yy<-seq(0,1,0.02) > zz <- outer(xx, yy, f) > persp(xx,yy,zz) > #------ > ¿Cómo obtener la densidad marginal de X? Algo como: > > # fx<-function(x){integral desde 0 hasta Inf de f(x,y)dy} > > Muchas gracias de antemano por la ayuda. > > Saludos. > > César Escalante C. > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
....
Lo siguiente debería funcionar para evaluar la marginal.
Par simplificar, utilicé la exponencial de media 1 como función de
importancia
Sin embargo, una Beta debería ser más apropiada (i.e., dar una
aproximación más estable) en el ejemplo que consideras.
.....
fx<-function(x){
n=1000 #tamaño de la muestra Monte Carlo
y=rexp(n)
fx=apply(data.frame(x),1,FUN=function(u) mean(f(u,y)*exp(y)))
}
plot(xx,fx(xx),type="l")
--
____________________________________
Olivier G. Nuñez
Email: onunez en iberstat.es
Tel : +34 663 03 69 09
Web: http://www.iberstat.es
____________________________________
El 02/05/2011, a las 0:02, Cesar Escalante escribió:
> Cordial saludo.
>
> Estoy trabajando con una densidad conjunta algo elaborada (suma y
> cociente
> de dos variables aleatorias positivas usando la cópula Frank) y
> requiero
> encontrar la distribución marginal de cada una de las variables. A
> manera de
> ejemplo (no es el caso específico, que tiene mucho más código), si
> partimos
> de la distribución exponencial bivariada
> #-----
> theta<-0.5
> f<-function(x,y){exp(x+y+theta*x*y)*((1+theta*x)*(1+theta*y)-theta)} #
> Densidad conjunta
> xx<-yy<-seq(0,1,0.02)
> zz <- outer(xx, yy, f)
> persp(xx,yy,zz)
> #------
> ¿Cómo obtener la densidad marginal de X? Algo como:
>
> # fx<-function(x){integral desde 0 hasta Inf de f(x,y)dy}
>
> Muchas gracias de antemano por la ayuda.
>
> Saludos.
>
> César Escalante C.
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es