| extractSamples {BayesX} | R Documentation |
This is a convenience function to extract samples from a BayesX results directory, which processes the log file to e.g. convert the spline coefficients samples to function values samples.
extractSamples(directoryWithBasename, logfile = file.path(dirname(directoryWithBasename), "log.txt"))
directoryWithBasename |
The BayesX results directory with basename for the files (e.g. "results/test", if this was specified as outfile in BayesX for the bayesreg object) |
logfile |
The log file of the MCMC run, defaults to log.txt in the results directory. |
Returns a list with the extracted samples of effects and deviances as well as the prediction data.frame:
<function name> |
for P-Splines, Random Walks and spatial effects: a list with mcmc objects 'functionSamples' and 'varianceSamples' containing the respective effects/function and variance parameter samples. |
FixedEffects |
an mcmc object of all fixed simple parametric effects |
Deviance |
an mcmc object with the (unstandardized and saturated) deviance |
PredictMeans |
data.frame corresponding to the possible predictmean file in the BayesX directory |
You should be sure that only one MCMC run is saved in the given results directory in order to get sensible results out of this function.
Daniel Sabanes Bove
## get the samples
samples <- extractSamples(file.path(system.file("examples/samples", package="BayesX"),
"res"))
str(samples)
## check deviance convergence
plot(samples$Deviance)
## fixed parametric effects
plot(samples$FixedEffects)
## nonparametric effects:
## handy plot function to get means and pointwise credible intervals
nonpPlot <- function(samplesMatrix,
...)
{
x <- as.numeric(colnames(samplesMatrix))
yMeans <- colMeans(samplesMatrix)
yCredible <- t(apply(samplesMatrix,
MARGIN=2,
FUN=quantile,
prob=c(0.025, 0.975),
na.rm=TRUE))
matplot(x, cbind(yMeans, yCredible),
type="l",
lty=c(1, 2, 2),
lwd=c(2, 1, 1),
col=c(1, 2, 2),
...)
}
nonpPlot(samples$f_x1$functionSamples,
xlab=expression(x[1]),
ylab=expression(hat(f)(x[1])))
nonpPlot(samples$f_x2$functionSamples,
xlab=expression(x[2]),
ylab=expression(hat(f)(x[2])))
## spatial effect
tanzania <- read.bnd(file=system.file("examples/tanzania.bnd", package="BayesX"))
drawmap(map=tanzania,
data=
with(samples$f_district,
data.frame(name=colnames(functionSamples),
estimate=colMeans(functionSamples))),
regionvar="name",
plotvar="estimate")