Remove PROJ4 support #178
Warning: Coordinate names for
Spatial*objects have been inconsistently available in the predictor expression evaluation. Avoid relying on those being present, and use explicit calls to
coordinates(.data.)if you need the coordinate values (e.g. for custom spatial covariate evaluation.). When possible, use the built-in covariate evaluation method,
eval_spatial(), either implicitly with
comp(covariate, ...)or explicitly,
comp(eval_spatial(covariate, where = .data.), ...).
Change rgl.* functions to *3d. Thanks to Duncan Murdoch #181
ibm_jacobian.bru_mapper_harmonicsfor large models
eval_spatialsupported to sf objects (for point-in-polygon data lookups)
CRAN release: 2022-12-02
NAinput for default 1D mappers to generate effect zero, like in
SpatRasterdata and and
Experimental integration support for sphere and globe meshes.
bru_mapper_pipe(), used to link mappers in sequence.
bru_mapper_logsumexp(), used for blockwise weighted sums and log-sum-exp mappings,
output[k] = sum(weights[block==k]*state[block==k])))and
output[k] = log(sum(weights[block==k]*exp(state[block==k]))), with optional weight normalisation within each block. Allows providing the weights as log-weights, and uses block-wise shifts to avoid potential overflow.
bru_mapper_define(). Implementations should register S3 methods instead.
spatstat.coredependency. Fixes #165
Fixed issue with plain mapper evaluation in the
ibm_eval.bru_mapper_collect()methods, where they would return zeros instead of the intended values. The main component evaluation and estimation code was not directly affected as that is based on the
bru_mapper_multi()class methods that rely on the Jacobians instead. The bug would therefore mainly have impacted the future, not yet supported nonlinear mapper extensions.
eval_spatial.SpatRaster; Work around inconsistent logic in
nrow(where)==1. Fixes #169
CRAN release: 2022-10-24
bru_get_mappergeneric, and associated methods for
inla.rgenericobjects. This allows
inlabruto automatically extract the appropriate
bru_mapperobject for each model component, and can be used as a hook by external packages implementing new INLA object classes.
<component>_eval()methods available in predictor expressions now handle optional scaling weights, like in ordinary component effect evaluation.
terrasupport for covariate inputs
*_layerarguments are now evaluated in the data context, to allow dynamic layer selection for spatial raster covariates. A new generic
eval_spatial()provides support for grid/pixel based
SpatRaster. Expanded support is in progress.
New vignettes on the
General overhaul of the
bru_mapperand linearised predictor system, to prepare for new features.
ibm_evalgeneric for evaluating mappers for given states.
bru_mapper_taylor, used as an internal mapper for linearised mappers. This and
ibm_evalis aimed at future support for nonlinear mappers. Associated new generic methods:
New mapper implementations should use
ibm_amatrix. This allows defining a linearised mapper via
ibm_eval(input, state0) + ibm_jacobian(input, state0) %*% (state - state0).
New mapper class
bru_mapper_const, which replaces
bru_mapper_offsetis now deprecated and will produce warnings.
CRAN release: 2022-09-05
predict()input data to be be a list.
Allow arbitrary quantile summaries in
robins_subsetdata set and associated variable coefficient web vignette
Propagate multi-likelihood A-matrix information instead of recomputing. Fixes iteration issue for bym2 and other
Turn on predictor summaries during iterations to allow
inla.mode="classic"to use proper line search.
Avoid deprecated Matrix (>=1.4-2) class coercion methods
Work around for lack of full Matrix and ModelMatrix support for the
uniquemethod. Fixes #145
CRAN release: 2022-03-30
More robust package checks
More robust namespace and INLA availability checks
Add package vignette with links to the website examples
Revert to R language features compatible with R 4.0.5
CRAN release: 2022-03-21
bru()timing information in
data(further special arguments remain to be added)
New transformation helper tools
Experimental support for matrix and formula component inputs. E.g. with
~ name(~ -1 + a + b + a:b, model = "fixed"), covariate fixed effect interaction specifications can be made. For formula input,
MatrixModels::model.Matrix()is called to construct matrix input that is then used as the A-matrix for fixed effects, one per column, added up to form the combined effect.
Documentation and examples improvements
Fix A-matrix construction for
evaluate_model()for cases where the
More efficient and robust mesh integration code
Cleanup of environment handling for component lists
CRAN release: 2021-12-19
Allow predictors to have different size than the input data. The
dataargument is now allowed to be a
list(), and the new argument
response_dataallows separate specification of component inputs and response variables.
bru_mapper_collectclass for handling sequential collections of mappers, including collections where all but the first mapper is hidden from the
values, as needed to support e.g. “bym2” models.
control.familyas a direct argument to
like(). Gives a warning if a
control.familyargument is supplied to the the
bru(), but at least one likelihood has
control.familyinformation. (Issue #109)
Fix support for
model = "offset"components instead of special options, to avoid interfering with the linearisation system (Issue #123)
Make the iterations more robust by resetting the internal INLA predictor states to initial value zero at each step
Rename the option
bru_method$rel_tol. Automatic conversion to the new name, but a warning is given.
bru_method$max_stepto control the largest allowed line search scaling factor. See
New default option
TRUEto compress the predictor expression for
family="cp"to use a single element for the linear predictor sum.
CRAN release: 2021-03-22
Documentation and dependency updates for CRAN compatibility
See NEWS for version 2.3.0 for the major updates since version 2.1.13
CRAN release: 2021-03-16
The model component argument
maphas been deprecated. Use
mainto specify the main component input,
~ elev(main = elevation, model = "rw2"). Unlike the old
mainis the first one, so the shorter version
~ elev(elevation, model = "rw2")also works.
Intercept-like components should now have explicit inputs, e.g.
~ Intercept(1)to avoid accidental confusion with other variables.
The argument list for
bru()has been simplified, so that all arguments except
optionsmust either be outputs from calls to
like(), or arguments that can be sent to a single
The option setting system has been replaced with a more coherent system; see
lgcpmodels is now stricter, and requires explicit
domaindefinitions for all the point process dimensions. Alternatively, user-defined integration schemes can be supplied via the
The model component input arguments
weightscan now take general R expressions using the data inputs. Special cases are detected:
SpatialPixels/GridDataFrameobjects are evaluated at spatial locations if the input data is a
SpatialPointsDataFrameobject. Functions are evaluated on the data object, e.g.
field(coordinates, model = spde)
The component arguments
replicate_mappercan be used for precise control of the mapping between inputs and latent variables. See
?bru_mapperfor more details. Mapper information is automatically extracted from
copyfeatures are now supported.
The predictor expressions can access the data object directly via
If data from several rows can affect the same output row, the
allow_combine = TRUEargument must be supplied to
predict()can be used to specify which components are used for a given likelihood model or predictor expression. This can be used to prevent evaluation of components that are invalid for a likelihood or predictor.
Predictor expressions can access the latent state of a model component directly, by adding the suffix
_latentto the component name, e.g.
like(), this requires
allow_latent = TRUEto activate the needed linearisation code for this.
Predictor expressions can evaluate component effects for arbitrary inputs by adding the suffix
_evalto access special evaluator functions, e.g.
name_eval(1:10). This is useful for evaluating the 1D effect of spatial covariates. See the NEWS item for version 2.2.8 for further details.
The internal system for predictor linearisation and iterated INLA inference has been rewritten to be faster and more robust
See the NEWS entries for versions 2.1.14 to 2.2.8 for further details on new features and bug fixes
_evalsuffix feature for
predict.bru, that provides a general evaluator function for each component, allowing evaluation of e.g. nonlinear effects of spatial covariates as a function of the covariate value instead of the by the spatial evaluator used in the component definition. For example, with
components = ~ covar(spatial_grid_df, model = "rw1"), the prediction expression can have
~ covar_eval(covariate), where
covariateis a data column in the prediction data object.
For components with
replicatefeatures, these also need to be provided to the
..._eval(..., group = ..., replicate = ...)
This feature is built on top of the
_latentsuffix feature, that gives direct access to the latent state variables of a component, so in order to use
_evalin the model predictor itself, you must use
like(..., allow_latent = TRUE)in the model definition.
Add support for
nrepin component definitions
mrseadata sets, with consistent km units and improved mesh designs
predict(..., include)discussion to distance sampling vignette, for handling non-spatial prediction in spatial models.
Fix bugs in
Fix minor bug in
Spatial*object handling and plotting
- Properly extract the joint latent conditional mode instead of the marginal latent conditional mode
Fixed issue with
predict()logic for converting output to
control.mode=list(restart=FALSE)in the final inla run for nonlinear models, to avoid an unnecessary optimisation.
Support for the INLA “copy” feature,
comp2(input, copy = "comp1")
Allow component weights to be an unnamed parameter,
comp(input, weights, ...)
Direct access to the data objects in component inputs and predictor expressions, as
.data., allowing e.g.
covar(fun(.data.), ...)for a complex covariate extractor method
Partial support for spherical manifold meshes
Uses INLA integration strategy “eb” for initial nonlinear iterations, and a specified integration strategy only for the final iteration, so that the computations are faster, and uses the conditional latent mode as linearisation point.
New options system
New faster linearisation method
New line search method to make the nonlinear inla iterations robust
Method for updating old stored estimation objects
System for supplying mappings between latent models and evaluated effects via
Improved factor support; Either as “contrast with the 1st level”, via the special
"factor_contrast"model, or all levels with model
"factor_full". Further options planned (e.g. a simpler options to fix the precision parameter). The estimated coefficients appear as random effects in the
Interface restructuring to support new features while keeping most backwards compatibility. Change
main=or unnamed first argument; Since
mainis the first parameter, it doesn’t need to be a named argument.
Keep components with zero derivative in the linearisation
Add random seed option for posterior sampling
Add package unit testing
New backend code to make extended feature support easier
int.argsoption to control spatial integration resolution, thanks to Martin Jullum (
CRAN release: 2019-06-24
- Workaround an integration points error for old (ca pre-2018) INLA versions
NEWS.mdfile to track changes to the package.
Added protection for examples requiring optional packages
sample.lgcpoutput formatting, extended CRS support, and more efficient sampling algorithm
Avoid dense matrices for effect mapping
iinla()tracks convergence of both fixed and random effects
CRAN release: 2018-02-11
Added matrix geom
Fixed CRAN test issues