- 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).

- 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.

- 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.,`$`

).

- 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.

- 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.

- 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.

- 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.

- 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

- 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.

- 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.

- 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()`

).

- 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.

- Previously, the
- 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.

- 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.

- 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.

- 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.

- 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.

- 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.

- 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.

`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.

- The resulting object is a list with class
- 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.

- The resulting object has class
- Added the
`covmatrix()`

function to extract covariance matrices from an`spmod`

object fit using`splm()`

or`spautor()`

. - Minor vignette updates.
- Minor documentation updates.

- 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`

.

- Updated unit tests so that they are compatible with an upcoming
version of
`Matrix`

.

This is the initial release of spmodel.