exp.gibbs | R Documentation |
Performs Gibbs sampling for problem with two truncated exponential variables. See Practical 11.3 of Davison (2003) for details.
exp.gibbs(u1 = NULL, u2 = NULL, B, I = 100, S = 100)
u1 |
Initial values for variable 1 |
u2 |
Initial values for variable 2 |
B |
Value at which exponential distribution is truncated |
I |
Number of iterations of sampler |
S |
Number of replicates of sampler |
This is provided simply so that readers spend less time typing. It is not intended to be robust and general code.
A 2 x S x I array containing the values of the variables for the successive iterations
Anthony Davison (anthony.davison@epfl.ch
)
Davison, A. C. (2003) Statistical Models. Cambridge University Press.Practical 11.3.
add.exp.lines <- function( exp.out, i, B=10)
{
dexp.trunc <- function( u, lambda, B )
dexp(u, rate=lambda)/(1-exp(-lambda*B))
S <- dim(exp.out)[2]
I <- dim(exp.out)[3]
u <- seq(0.0001,B,length=1000)
fu <- rep(0,1000)
for (s in 1:S) fu <- fu + dexp.trunc(u,exp.out[3-i,s,I],B)/S
lines(u,fu,col="red")
invisible()
}
par(mfrow=c(3,2))
B <-10; I <- 15; S <- 500
exp.out <- exp.gibbs(B=B,I=I,S=S)
hist(exp.out[1,,I],prob=TRUE,nclass=15,xlab="u1",ylab="PDF",xlim=c(0,B),ylim=c(0,1))
add.exp.lines(exp.out,1)
hist(exp.out[2,,I],prob=TRUE,nclass=15,xlab="u2",ylab="PDF",xlim=c(0,B),ylim=c(0,1))
add.exp.lines(exp.out,2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.