This function implements a optimisation routine that computes the scale parameter b
of the inverse gamma prior for τ^2 when a=b=ε with ε small
for a given design matrix and prior precision matrix
such that approximately P(f(x_{k}≤ c,k=1,…,p)≥ 1α
When a
unequal to a
the shape parameter a
has to be specified.
1 2 3  get_theta_ig(alpha = 0.01, method = "integrate", Z, c = 3,
eps = .Machine$double.eps, Kinv, equals = FALSE, a = 1,
type = "marginalt")

alpha 
denotes the 1α level. 
method 
with 
Z 
the design matrix. 
c 
denotes the expected range of the function. 
eps 
denotes the error tolerance of the result, default is 
Kinv 
the generalised inverse of K. 
equals 
saying whether 
a 
is the shape parameter of the inverse gamma distribution, default is 1. 
type 
is either numerical integration ( 
Currently, the implementation only works properly for the cases a
unequal b
.
an object of class list
with values from uniroot
.
Nadja Klein
Nadja Klein and Thomas Kneib (2015). ScaleDependent Priors for Variance Parameters in Structured Additive Distributional Regression. Working Paper.
Stefan Lang and Andreas Brezger (2004). Bayesian PSplines. Journal of Computational and Graphical Statistics, 13, 183212.
1 2 3 4 5 6 7 8 9 10 11 12 13 14  set.seed(123)
library(MASS)
# prior precision matrix (second order differences)
# of a spline of degree l=3 and with m=20 inner knots
# yielding dim(K)=m+l1=22
K < t(diff(diag(22), differences=2))%*%diff(diag(22), differences=2)
# generalised inverse of K
Kinv < ginv(K)
# covariate x
x < runif(1)
Z < matrix(DesignM(x)$Z_B,nrow=1)
theta < get_theta_ig(alpha = 0.01, method = "integrate", Z = Z,
c = 3, eps = .Machine$double.eps, Kinv = Kinv,
equals = FALSE, a = 1, type="marginalt")$root

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.