sdPrior (version 1.0-0)

get_theta: Find Scale Parameter for (Scale Dependent) Hyperprior

Description

This function implements a optimisation routine that computes the scale parameter \(\theta\) of the scale dependent hyperprior for a given design matrix and prior precision matrix such that approximately \(P(|f(x_{k}|\le c,k=1,\ldots,p)\ge 1-\alpha\)

Usage

get_theta(alpha = 0.01, method = "integrate", Z, c = 3,
  eps = .Machine$double.eps, Kinv)

Arguments

alpha

denotes the 1-\(\alpha\) level.

method

either integrate or trapezoid with integrate as default. trapezoid is a self-implemented version of the trapezoid rule.

Z

the design matrix.

c

denotes the expected range of the function.

eps

denotes the error tolerance of the result, default is .Machine$double.eps.

Kinv

the generalised inverse of K.

Value

an object of class list with values from uniroot.

References

Nadja Klein and Thomas Kneib (2015). Scale-Dependent Priors for Variance Parameters in Structured Additive Distributional Regression. Working Paper.

Examples

Run this code
# NOT RUN {
set.seed(91179)
library(BayesX)
library(MASS)
# prior precision matrix to zambia data set
K <- read.gra(system.file("examples/zambia.gra", package="sdPrior"))
# generalised inverse of K
Kinv <- ginv(K)

# read data
dat <- read.table(system.file("examples/zambia_height92.raw", package="sdPrior"), header = TRUE)

# design matrix for spatial component
Z <- t(sapply(dat$district, FUN=function(x){1*(x==rownames(K))}))

# get scale parameter
theta <- get_theta(alpha = 0.01, method = "integrate", Z = Z, 
                            c = 3, eps = .Machine$double.eps, Kinv = Kinv)$root
# }
# NOT RUN {
# }

Run the code above in your browser using DataCamp Workspace