Releases: ConnorDonegan/geostan
geostan 0.8.0
New Features
Spatial econometric models and better sampling for hierarchical spatial auto-regressive models:
- geostan now provides more support for spatial econometric models: spatial error (SEM), spatially-lagged dependent variable (SLM), and the ‘Durbinized’ versions of each (SDEM, SDLM). Methods for calculating impacts are and predicted values for SLM/SDLM are included. Users can also draw from the posterior predictive distributions of these models: see geostan::stan_sar and geostan::impacts.
- geostan::sim_sar can now simulate draws from the spatial lag model as well as the spatial error model.
- The CAR and SAR models, when placed in a Poisson or binomial model for count data, can sample poorly when the data is sparse. This can usually be fixed using the new
zmp
option which switches CAR/SAR models to a zero-mean parameterization. Details are in the vignette on building custom spatial models.
Bug fix
- A bug was introduced to v0.7.0 which added a small bias to coefficient estimates which only appeared when the slx option was used. This has been fixed.
Other stuff
- A set of Monte Carlo analyses have been added to the package tests, verifying that the estimates match expectations. This is also part of a process of moving away from the ‘testthat’ package.
- The package documentation and vignettes have also been improved a little bit.
Upcoming release
- The new vignette on 'Spatial analysis with geostan' causes installation to fail on older versions of windows and mac os, so v0.8.1 will come out with a patch for this in the coming days.
geostan 0.7.0
V0.7.0 includes various adjustments to speed up the models, and the DIC is now provided for model comparison (in addition to WAIC).
New features:
- Deviance information criteria (DIC). WAIC is considered to be more robust than DIC, but DIC remains common in spatial statistics because (unlike WAIC) it does not assume independent observations.
Changes in the background that should improve the user experience:
Changes in the background that should improve the user experience:
- Samples for the pointwise log likelihood are no longer collected in the Stan models. Instead, they are calculated in R when needed for calculating waic or dic. This should improve sampling speed and lower memory and storage use.
- The QR decomposition is now implemented (automatically) for models with covariates. (Note that this cannot be used for measurement error models.) The benefits of the QR decomposition in terms of sampling speed and efficiency are greatest when covariates are centered (which you can do using the centerx argument).
- A change recommended by Roger Bivand takes advantage of an improvement in spdep’s creation of neighbors objects (#19). This will speed up the shape2mat function in some cases.
Other changes:
Other changes:
- Stan code for the CAR and SAR models has been simplified a bit. The changes are reflected in the vignette on custom spatial models. The output of prep_car_data and prep_sar_data have changed somewhat, but the user workflow is the same.
geostan 0.6.2
geostan was removed from CRAN for a moment due to an issue with the StanHeaders R package. This should be resolved now. This release puts geostan back on CRAN with minimal internal changes to geostan. The package home page still provides install instructions that serve if/when geostan is not available on CRAN.
geostan 0.6.1
Two updates:
- Multiple changes related to spatial connectivity matricies, including a new vignette.
- A change to geostan::predict.
There are three updates related to spatial connectivity matrices:
- There is a new vignette on spatial connectivity matrices (see
browseVignettes('geostan')
), written for new users. - Visualizing spatial neighbors: geostan::edges can now return a simple features object; this can be used to visualize (map) the graph structure of the spatial connectivity matrix. There is an example in the new vignette.
- Changes to geostan::shape2mat: an option for k-nearest neighbors has been added, the queen argument is being replaced by method, and the function now prints a summary of the matrix to the console (using the new
geostasn::n_nbs
function)
There was one change to the geostan::predict method:
- this method is for getting predicted values from a fitted model, given user-provided covariate values. Previously, the function used a point estimate of the intercept when calculating the predicted values. Now, the method uses samples from the posterior distribution of the intercept, just like it does for other parameters. The user (still) has the option to provide a matrix of samples for the intercept term; this is in case one wishes to incorporate the spatial trend term into the intercept (as a spatially-varying intercept).
geostan 0.6.0
Updates to geostan:
- Missing outcome data is now allowed in most models
- A bug in
prep_icar_data
has been fixed - Install instructions for using
install_github
Details:
-
The model fitting functions (
stan_glm
,stan_car
, etc.) now allow for missing data in the outcome variable (not covariates). This is explained in the geostan::stan_glm documentation, next to the discussion of handling censored observations. When missing observations are present, there will (only) be a warning issued. This functionality is available for any GLM (stan_glm
), any ESF model (stan_esf
), and any model for count data (Poisson and binomial models including CAR and SAR models). The only models for which this functionality is not currently available are CAR and SAR models that are being been fit to continuous outcome variables. -
The
prep_icar_data
function, which is used inside stan_icar, did not have the expected behavior in all cases - for some cases the function would fail to create the data required for the ICAR models, and the models would fail. (This means that it is unlikely that any results obtained from the models were negatively influenced by this issue - if you obtained results, then the bug probably didn't affect you.) This has been fixed thanks to this pull request. -
New install instructions are found on the package home page https://connordonegan.github.io/geostan/ Please report any difficulties with installation.
geostan 0.5.4
This release updates some of the vignettes (especially the one on measurement error models) and incorporates an important update to StanHeaders, which addresses an issue that may have caused installation errors for some users.
geostan 0.5.3
Minor updates
geostan 0.5.2
geostan 0.5.2
This release was built using rstan 2.26.23, which incorporates Stan's new syntax for declaring arrays. Some models seems to run a little bit faster, but otherwise there are no changes that users should notice.
A new vignette shows how to implement some of geostan's spatial models directly in Stan, using the custom Stan functions that make the CAR and SAR models sample quickly, and using some geostan functions that make the data cleaning part easy.
The warnings issued about the sp package can be ignored; these are due to geostan's dependence on spdep, which imports sp but does not use any of the deprecated functions.
geostan 0.5.1
This release fixes some issues that were introduced with the slim and drop arguments (in v0.5.0).
geostan 0.5.0
New additions
The package now provides some support for spatial regression with raster data, including for layers with hundreds of thousands of observations (possibly more, depending on one’s computational resources). Two new additions make this possible.
- slim = TRUE The model fitting functions (stan_glm, stan_car, stan_sar, stan_esf, stan_icar) now provide the option to trim down the parameters for which MCMC samples are collected. For large N and/or many N-length vectors of parameters, this option can speed up sampling considerably and reduce memory usage. The new drop argument provides users control over which parameter vectors will be ignored. This functionality may be helpful for any number of purposes, including modeling large data sets, measurement error models, and Monte Carlo studies.
prep_sar_data2
andprep_car_data2
These two functions can quickly prepare required data for SAR and CAR models when using raster layers (observations on a regularly spaced grid). The standard and more generally applicable functions,prep_car_data
andprep_sar_data
, are limited in terms of the size of spatial weights matrices they can handle. These new functions are discussed in a new vignette titled “Raster regression." Seevignette("raster-regression", package = "geostan")
.
Minor changes
The PDF documentation has been improved—previously, multi-line equations were not rendered properly. Now they render correctly, and a mistake in the description of Binomial CAR models has been corrected.