| marginal {INLA} | R Documentation |
Functions which operates on marginals
Description
Density, distribution function, quantile function, random generation,
hpd-interval, interpolation, expectations, mode and transformations of
marginals obtained by inla or inla.hyperpar(). These
functions computes the density (inla.dmarginal), the distribution function
(inla.pmarginal), the quantile function (inla.qmarginal), random generation
(inla.rmarginal), spline smoothing (inla.smarginal), computes expected
values (inla.emarginal), computes the mode (inla.mmarginal), transforms the
marginal (inla.tmarginal), and provide summary statistics (inla.zmarginal).
Usage
inla.smarginal(
marginal,
log = FALSE,
extrapolate = 0,
keep.type = FALSE,
factor = 15L
)
inla.emarginal(fun, marginal, ...)
inla.dmarginal(x, marginal, log = FALSE)
inla.pmarginal(q, marginal, normalize = TRUE, len = 2048L)
inla.qmarginal(p, marginal, len = 2048L)
inla.hpdmarginal(p, marginal, len = 2048L)
inla.rmarginal(n, marginal)
inla.tmarginal(
fun,
marginal,
n = 2048L,
h.diff = .Machine[["double.eps"]]^(1/3),
method = c("quantile", "linear")
)
inla.mmarginal(marginal)
inla.zmarginal(marginal, silent = FALSE)
inla.is.marginal(marginal)
Arguments
marginal |
A marginal object from either |
log |
Return density or interpolated density in log-scale? |
extrapolate |
How much to extrapolate on each side when computing the interpolation. In fraction of the range. |
keep.type |
If |
factor |
The number of points after interpolation is |
fun |
A (vectorised) function like |
... |
Further arguments to be passed to function which expectation is to be computed. |
x |
Evaluation points |
q |
Quantiles |
normalize |
Renormalise the density after interpolation? |
len |
Number of locations used to interpolate the distribution function. |
p |
Probabilities |
n |
The number of observations. If |
h.diff |
The step-length for the numerical differeniation inside
|
method |
Which method should be used to layout points for where the transformation is computed. |
silent |
Output the result visually (TRUE) or just through the call. |
Value
inla.smarginal returns list=c(x=c(), y=c()) of
interpolated values do extrapolation using the factor given, and the
remaining function returns what they say they should do.
Author(s)
Havard Rue hrue@r-inla.org
See Also
Examples
## a simple linear regression example
n = 10
x = rnorm(n)
sd = 0.1
y = 1+x + rnorm(n,sd=sd)
res = inla(y ~ 1 + x, data = data.frame(x,y),
control.family=list(initial = log(1/sd^2L),fixed=TRUE))
## chose a marginal and compare the with the results computed by the
## inla-program
r = res$summary.fixed["x",]
m = res$marginals.fixed$x
## compute the 95% HPD interval
inla.hpdmarginal(0.95, m)
x = seq(-6, 6, length.out = 1000)
y = dnorm(x)
inla.hpdmarginal(0.95, list(x=x, y=y))
## compute the the density for exp(r), version 1
r.exp = inla.tmarginal(exp, m)
## or version 2
r.exp = inla.tmarginal(function(x) exp(x), m)
## to plot the marginal, we use the inla.smarginal, which interpolates (in
## log-scale). Compare with some samples.
plot(inla.smarginal(m), type="l")
s = inla.rmarginal(1000, m)
hist(inla.rmarginal(1000, m), add=TRUE, prob=TRUE)
lines(density(s), lty=2)
m1 = inla.emarginal(function(x) x, m)
m2 = inla.emarginal(function(x) x^2L, m)
stdev = sqrt(m2 - m1^2L)
q = inla.qmarginal(c(0.025,0.975), m)
## inla-program results
print(r)
## inla.marginal-results (they shouldn't be perfect!)
print(c(mean=m1, sd=stdev, "0.025quant" = q[1], "0.975quant" = q[2L]))
## using the buildt-in function
inla.zmarginal(m)