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