Learn R Programming

BayesSIM (version 1.0.0)

plot: Plot Method for BayesSIM

Description

Produce diagnostic plots for a fitted Bayesian single-index model.

Usage

# S3 method for bsim
plot(x, method = c("mean", "median"), interval = TRUE, alpha = 0.95, ...)

# S3 method for bsimPred plot(x, ...)

Value

The output consists of two plots:

  1. Observed vs Predicted plot: a diagnostic scatter plot comparing actual outcomes with posterior fitted values to visually assess model fit.

  2. Fitted curve plot: posterior \(\hat{y}\) as a function of the estimated single index, optionally with \(100 \times \alpha\) % credible intervals.

Arguments

x

A fitted object of BayesSIM or individual model.

method

Character string specifying the summary used for the posterior fitted values. Options are "mean" or "median". Default is "mean".

interval

A logical value indicating whether a credible interval is included in the fitted plot. Default is TRUE.

alpha

Numeric value between 0 and 1 specifying the credible level. By default, alpha = 0.95 produces a 95% credible interval.

...

Additional arguments passed to underlying plotting functions.

Details

The function internally calls predict() on the fitted model object to obtain posterior summaries of \(\hat{y}\). Predicted value of \(y\) is \(\hat{f}(X'\hat{\theta})\).

  • If interval = TRUE, the function requests posterior credible intervals and overlays them on the fitted curve.

  • If interval = FALSE, only the posterior mean or median curve is drawn.

See Also

predict.bsim(), summary.bsim()

Examples

Run this code
# \donttest{
simdata2 <- data.frame(DATA1$X, y = DATA1$y)

# 1. One tool version
fit_one <- BayesSIM(y ~ ., data = simdata2,
                    niter = 5000, nburnin = 1000, nchain = 1)

# Check median index vector estimates with standard errors
coef(fit_one, method = "median", se = TRUE)

# Fitted index values of median prediction
fitted(fit_one, type = "linpred", method = "median")

# Residuals of median prediction
residuals(fit_one, method = "median")

# Summary of the model
summary(fit_one)

# Convergence diagnostics
nimTraceplot(fit_one)

# Goodness of fit
GOF(fit_one)

# Fitted plot
plot(fit_one)

# Prediction with 95% credible interval at new data
newx <- data.frame(X1 = rnorm(10), X2 = rnorm(10), X3 = rnorm(10), X4 = rnorm(10))
pred <- predict(fit_one, newdata = newx, interval = "credible", level = 0.95)
plot(pred)


# 2. Split version
models <- BayesSIM_setup(y ~ ., data = simdata2)
Ccompile <- compileModelAndMCMC(models)
nimSampler <- get_sampler(Ccompile)
initList <- getInit(models)
mcmc.out <- runMCMC(nimSampler, niter = 5000, nburnin = 1000, thin = 1,
                    nchains = 1, setSeed = TRUE, inits = initList,
                    summary = TRUE, samplesAsCodaMCMC = TRUE)

# "fit_split" becomes exactly the same as the class of "fit_one" object and apply generic functions.
fit_split <- as_bsim(models, mcmc.out)

# }

Run the code above in your browser using DataLab