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")