$P$ tiene una densidad en contra de una (de referencia) de medida de la medida de Lebesgue además de contar medida en $\{0,1\}$. La posterior medida, nos da los pesos de $1$ a los átomos de $0$$1$. Esto significa que la densidad de los átomos como 0 y 1 es igual a la del peso en el cómputo de la medida y sólo el recuento de medir!, por lo tanto es 1/6 y 2/6 para 0 y 1, respectivamente, en su ejemplo. (Ver esta otra entrada para comentarios adicionales sobre mixta medidas.)
Por lo tanto, MCMC y, en particular, de Metropolis-Hastings se aplica a este caso. Esto significa que la propuesta también debe ser continua en contra de la medida de la medida de Lebesgue más el conteo de medida, de ahí la propuesta puede tener a los átomos en 0 y 1. Para la cadena de convergencia se debe tener a los átomos en 0 y 1.
Aquí está un ejemplo de un (mudo) de Metropolis-Hastings algoritmo para su destino
#target is N(0,1) with prob 1/2, mass at 0 with prob 1/6 and at 1 with prob 1/3
targ=function(x,isint){
if (isint){ t=(x==0)/6+(x==1)/3
}else{ t=.5*dnorm(x)}
return(t)
}
#Metropolis with random walk+U{0,1} proposal
prop=function(val,isint){
isint[2]*.25+.5*(1-isint[2])*dnorm(val[2],mean=val[1],sd=.3)
}
T=1e5
samp=rep(NaN,T)
sampint=(runif(T)<.5)
samp[1]=runif(1)
sampint[1]=FALSE
for (t in 2:T){
if (sampint[t]){
samp[t]=as.integer(sample(c(0,1),1))
}else{
samp[t]=samp[t-1]+rnorm(1,0,.3)
}
metro=targ(samp[t],sampint[t])*prop(samp[t:(t-1)],sampint[t:(t-1)])/
targ(samp[t-1],sampint[t-1])/prop(samp[(t-1):t],sampint[(t-1):t])
if (runif(1)>metro){ samp[t]=samp[t-1];sampint[t]=sampint[t-1]}
}
Esto le da el ajuste apropiado, como lo muestra el siguiente diagrama:
y el (derecho) proporción de ceros y unos:
> sum(sampint)/T
[1] 0.49676
> sum(samp==0)/sum(samp==1)
[1] 0.5027832