Major Updates
- Added the
range_constrain
argument to splm()
and spglm()
to constrain the range parameter to enhance numerical stability. The default for range_constrain
is FALSE
, implying the range is not constrained.
- Updated the
seal
data with additional polygons and a factor variable, stock
, with two levels (8
and 10
) that indicates seal stock (i.e., seal type).
Minor Updates
- Changed diagonal tolerance threshold for
spglm()
and spgautor()
model objects. See this link for details.
- Added the
"ie"
spatial covariance type to splm()
and spglm()
models. For splm()
models, "ie"
is an alias for "none"
. For spglm()
models, "none"
now fixes both the de
and ie
covariance parameters at zero, while "ie"
fixes the de
covariance parameter at zero but allows the ie
covariance parameter to vary. Thus, "none"
from spmodel $\le$ v0.8.0
matches "ie"
from spmodel
v0.9.0 and but is different from "none"
from spmodel v0.9.0
.
- Added the
na.action
argument to predict.spmodel()
functions to clarify that missing values in newdata
return an error.
- Minor documentation updates.
Bug Fixes
- Fixed a bug that caused incorrect degrees of freedom for the likelihood ratio test (
anova(model1, model2)
) when estmethod
is "ml"
for both models.
- Fixed a bug that caused an error in
anova(object1, object2)
when the name of object1
had special characters (e.g., $
).
Major Updates
- Added support for the
emmeans
R package for estimating marginal means of splm()
, spautor()
, spglm()
, and spgautor()
models.
- Added a vignette to the
spmodel
website titled “Using emmeans to Estimate Marginal Means of spmodel Objects”.
- Added support for distance-based neighborhood definitions of
spautor()
and spgautor()
models via the cutoff
argument, required when data
are an sf
object with POINT
geometry and W
is not specified.
- Added the
texas
data set, which contains voter turnout data from eligible voters in Texas, USA, during the 1980 Presidential election.
- Added the
lake
and lake_preds
data sets, which contain data from the United States Environmental Protection Agency’s National Lakes Assessment and LakeCat.
Minor Updates
- Changed the
type
argument in augment()
for spglm()
and spgautor()
models to type.predict
to match broom::augment.glm()
.
-
augment()
for spglm()
and spgautor()
models now returns fitted values on the link scale by default to match broom::augment.glm()
.
- Added a
type.residuals
argument for spglm()
and spgautor()
models to match broom::augment.glm()
.
- Updated
logLik()
to match lm()
and glm()
behavior. logLik()
now returns a vector with class logLik
and attributes nobs
and df
.
- Added support for using
AIC()
and BIC()
from stats
and removed spmodel
-specific AIC()
and BIC()
methods.
- Added support for
"terms"
prediction for splm()
, spautor()
, spglm()
, and spgautor()
models.
- Added
scale
and df
arguments to predict()
for splm()
and spautor()
models.
- Add
dispersion
argument to predict()
for spglm()
and spgautor()
models.
- Enhanced numeric stability of deviance and pseudo R-squared for
spglm()
or spgautor()
models when family = "beta"
.
- Added the
cov_type
argument to covmatrix()
to return observed by observed, prediction by observed, observed by prediction, and prediction by prediction covariance matrices.
- Added a
warning
argument to glances()
that determines whether relevant warnings should be displayed or not.
- Added a warning message to
glances()
about interpreting likelihood-based statistics (e.g., AIC, AICc, BIC) when a one model has estmethod = "ml"
and another model has estmethod = "reml"
.
- Added a warning message to
glances()
about interpreting likelihood-based statistics (e.g., AIC, AICc, BIC) when two models with estmethod = "reml"
have distinct formula
arguments.
- Added a warning message to
glances()
about interpreting likelihood-based statistics (e.g., AIC, AICc, BIC) when two models have different sample sizes.
- Added a warning message to
glances()
about interpreting likelihood-based statistics (e.g., AIC, AICc, BIC) when two models have different family supports (which can happen with spglm()
and spgautor()
models).
- All data sets now have
tbl_df
and tbl
classes (i.e., are tibbles).
- Added a
cloud
argument to esv()
to return a cloud semivariogram.
-
esv()
output now has tbl_df
and tbl
classes (i.e., are tibbles) and an esv
class.
- Added a
plot()
method for esv
objects.
- Minor vignette updates.
- Minor documentation updates.
Minor Updates
- Added
AUROC()
functions to compute the area under the receiver operating characteristic (AUROC) curve for spglm()
and spgautor()
models when family
is "binomial"
and the response is binary (i.e., represents a single success or failure).
- Added a
BIC()
function to compute the Bayesian Information Criterion (BIC) for splm()
, spautor()
, spglm()
, and spgautor()
models when estmethod
is "reml"
(restricted maximum likelihood; the default) or "ml"
(maximum likelihood).
- Added a
type
argument to loocv()
when cv_predict = TRUE
and using spglm()
or spgautor()
models so that predictions may be obtained on the link or response scale.
- Added a warning message when
data
is an sf
object and a geographic (i.e., degrees) coordinate system is used instead of a projected coordinate system.
- Changed the default behavior of
local
in predict.spmodel
so that it depends only on the observed data sample size. Now, when the observed data sample size exceeds 10,000 local
is set to TRUE
by default. This change was made because prediction for big data depends almost exclusively on the observed data sample size, not the number of predictions desired.
- Minor external data updates (for package testing).
- Minor vignette updates.
- Minor documentation updates.
- Minor error message updates.
Bug Fixes
- Fixed a bug that prohibited proper indexing when calling
predict()
with the local
method "distance"
on a model object fit with a random effect or partition factor.
Minor Updates
- Improved efficiency of handling random effects in big data models fit using
splm(..., local)
and spglm(..., local)
.
- Changed
Matrix::rankMatrix(X, method = "tolNorm2")
to Matrix::rankMatrix(X, method = "qr")
when determining linear independence in X
, the design matrix of explanatory variables.
- Replaced an error message with a warning message when
X
has perfect collinearities (i.e., is not full rank). If this warning message occurs, it is possible that a subsequent error occurs while model fitting resulting from a covariance matrix that is not positive definite (i.e., a covariance matrix that is singular or computationally singular).
- Improved efficiency of
splm()
when spcov_type
is "none"
and there are no random effects (#15).
- Added a
range_positive
argument to spautor()
and spgautor()
that when TRUE
(the new default), restricts the range parameter to be positive. When FALSE
(the prior default), the range parameter may be negative or positive.
- Updated the initial parameter grid search for
spautor()
and spgautor()
to include range parameter values near the lower and upper boundaries.
- Minor documentation updates
Bug Fixes
- Fixed a bug that yielded improper predictions when performing local prediction (specifying
local
in a call to predict(object, newdata, ...)
) when the model object (object
) was fit using splm(formula, ...)
or spglm(formula, ...)
and formula
contained at least one call to poly(..., raw = FALSE)
.
- Fixed a bug that caused big data models fit using
splm(..., local)
and spglm(..., local)
to fail when a user-specified local index was passed to local
that was a factor variable and at least one factor level not was observed in the local index.
- Fixed a bug that caused models fit using
splm(..., partition_factor)
and spglm(..., partition_factor)
to fail when the partition factor variable was a factor variable and at least one factor level was not observed in the data.
- Fixed a bug in
spgautor()
that inflated the covariance matrix of the fixed effects (accessible via vcov()
).
- Fixed a bug in
sp*(spcov_params, ...)
simulation functions that caused an error when spcov_params
had class "car"
or "sar"
and W
was provided by the user.
Minor Updates
- Set a default value of
newdata_size = 1
when newdata_size
was omitted while predicting type = "response"
for binomial families.
- Improved computational efficiency of
loocv(object)
when object
was created using splm()
or spglm()
, spcov_type
was "none"
, and there were no random effects specified via random
.
- Changed the number of k-means iterations from 10 to 30 (when fitting models using the
local
argument to splm()
or spglm()
).
- Added bias and root-mean-squared-prediction error to
loocv(object)
. When object
was created using splm()
or spautor()
, loocv(object)
added the squared correlation between the observed data and leave-one-out predictions, regarded as a prediction r-squared.
- Improved prediction efficiency (using
predict()
or augment()
) for splm()
objects when spcov_type
was "none"
and there were no random effects.
- Minor error message updates.
Bug Fixes
- Fixed a bug that caused local prediction to fail when the fitted model used a partition factor (#13).
- Fixed a bug that caused significant increases in computational and memory demands when calling
loocv(object, local, ...)
if object
was created using splm(..., random)
or spglm(..., random)
(i.e., when random effects were specified via the random
argument to splm()
or spglm()
).
- Fixed a bug that caused significant increases in computational and memory demands when calling
loocv(object, local, ...)
if object
was created using splm(..., partition_factor)
or spglm(..., partition_factor)
(i.e., when a partition factor was specified via the partition_factor
argument to splm()
or spglm()
).
Minor updates
- Predictions can now be made for prediction locations whose random effect levels are not present in the observed data
- When this occurs, the random-effect covariance between the observed data and these prediction locations is assumed to be zero.
- The default for
local = TRUE
in splm()
and spglm()
now uses the kmeans
assignment method with group sizes approximately equal to 100.
- Previously, the
random
assignment method was used with group sizes approximately equal to 50.
- The default for
local = TRUE
in predict()
and augment()
now uses 100 local neighbors.
- Previously, 50 local neighbors were used.
- Moved the “A Detailed Guide to
spmodel
” and “Technical Details” vignettes to the package website.
- Added a “Spatial Generalized Linear Models in
spmodel
” vignette to the package website.
- Changed name of “An Overview of Basic Features in
spmodel
” vignette to “An Introduction to spmodel
” and changed output type from PDF to HTML.
- Other minor vignette updates.
- Minor documentation updates.
Bug fixes
- Fixed a bug that occurred with prediction for success/failure binomial data (e.g., Bernoulli data) when
local
in predict()
was TRUE
.
- Fixed a bug that could affect simulating data using
sprbinom()
when the size
argument was different from 1
.
- Fixed a bug that could cause local prediction to fail when only one level of a random effect was present in the prediction site’s local neighborhood.
- Fixed a bug that could cause an error when local estimation was used for the
"sv-wls"
estimation method.
- Fixed a bug that caused undesirable behavior from
tidy()
when conf.level
was less than zero or greater than one.
Major updates
- Added an
spglm()
function to fit spatial generalized linear models for point-referenced data (i.e., generalized geostatistical models).
-
spglm()
syntax is very similar to splm()
syntax.
- Poisson, negative binomial, binomial, beta, gamma, and inverse Gaussian families are accommodated.
-
spglm()
fitted model objects use the same generics as splm()
fitted model objects.
- Added an
spgautor()
function to fit spatial generalized linear models for areal data (i.e., spatial generalized autoregressive models).
-
spgautor()
syntax is very similar to spautor()
syntax.
- Poisson, negative binomial, binomial, beta, gamma, and inverse Gaussian families are accommodated.
-
spgautor()
fitted model objects use the same generics as spautor()
fitted model objects.
Minor updates
- In
augment()
, made the level
and local
arguments explicit (rather than being passed to predict()
via ...
).
- Added
offset
support for relevant modeling functions.
- Minor documentation updates.
- Minor vignette updates.
Bug fixes
- Fixed a bug in
spcov_params()
that yielded output with improper names when a named vector was used as an argument.
- Fixed a bug in
spautor()
that did not properly coerce M
if given as a matrix (instead of a vector).
- Fixed a bug in
esv()
that prevented coercion of POLYGON
geometries to POINT
geometries if data
was an sf
object.
- Fixed a bug in
esv()
that did not remove NA
values from the response.
- Fixed a bug in
splm()
and spautor()
that caused an error when random effects or partition factors were ordered factors.
- Fixed a bug in
spautor()
that prevented an error from occurring when a partition factor was not categorical or not a factor
- Fixed a bug in
covmatrix(object, newdata)
that returned a matrix with improper dimensions when spcov_type
was "none"
.
- Fixed a bug in
predict()
that caused an error when at least one level of a fixed effect factor was not observed within a local neighborhood (when the local
method was "covariance"
or "distance")
.
- Fixed a bug in
cooks.distance()
that used the Pearson residuals instead of the standardized residuals.
Minor updates
- Added the
varcomp
function to compare variance components.
- Added an error message when there are
NA
values in predictors.
- Added an error message when the design (model) matrix is not invertible (i.e., perfect collinearities are detected).
- Added support for plotting anisotropic level curves of equal correlation when the
which
argument to plot()
contains 8
.
- Renamed
residuals()
type raw
to response
to match stats::lm()
.
- Changed class of
splm()
output to "splm"
from "spmod"
or "splm_list"
from "spmod_list"
.
- Changed class of
spautor()
output to "spautor"
from "spmod"
or "spautor_list"
from "spautor_list"
.
- Changed class of
splmRF()
output to "splmRF"
from "spmodRF"
or "splmRF_list"
from "spmodRF_list"
.
- Changed class of
spautorRF()
output to "spautorRF"
from "spmodRF"
or "spautorRF_list"
from "spmodRF_list"
.
- Methods corresponding to a generic function defined outside of
spmodel
are now all documented using an .spmodel
suffix, making it easier to find documentation of a particular spmodel
method for the generic function of interest.
- Added an error when random effect grouping variables or partition factors are numeric.
- Added an error when random effect or partition factor levels in
newdata
are not also in data
.
- Updated citation information.
Bug fixes
- Fixed a bug that produced irregular spacing in an error message for
spcov_initial()
.
- Fixed a bug that prevented proper display of row names when calling
predict()
with interval = "confidence"
.
- Fixed a bug that sometimes caused miscalculations in model-fitting and prediction when random effect or partition factor variables were improperly coerced to a different type.
- Fixed bugs that sometimes caused miscalculations in certain model diagnostics.
- Fixed inconsistencies in several non-exported generic functions.
- Fixed a bug that prevented names from appearing with output from certain model diagnostics.
-
spmodel
v0.3.0 changed the names of spmod
, spmodRF
, spmod_list
, and spmodRF_list
objects.
Minor updates
-
splm()
and spautor()
allow multiple models to be fit when the spcov_type
argument is a vector of length greater than one or the spcov_initial
argument is a list (with length greater than one) of spcov_initial
objects.
- The resulting object is a list with class
spmod_list
. Each element of the list holds a different model fit.
-
glances()
is used on an spmod_list
object to glance at each model fit.
-
predict()
is used on an spmod_list
object to predict at the locations in newdata
for each model fit.
- Added the
splmRF()
and spautorRF()
functions to fit random forest spatial residual models.
- The resulting object has class
spmodRF
(one spatial covariance) or spmodRF_list
(multiple spatial covariances)
- These objects are built for use with
predict()
to perform prediction.
- Added the
covmatrix()
function to extract covariance matrices from an spmod
object fit using splm()
or spautor()
.
- Minor vignette updates.
- Minor documentation updates.
Bug fixes
- Fixed a bug that prevents display of spatial covariance type in summary of
spmod
objects.
- Fixed a bug that prevented prediction of factor variables when all levels of all factor variables did not appear in
newdata
.
Minor updates
- Updated unit tests so that they are compatible with an upcoming version of
Matrix
.
This is the initial release of spmodel.