Fitting an underlying continuous process to areal data
Usage
fit_spm(x, ...)
# S3 method for class 'spm'
fit_spm(
x,
model,
theta_st,
nu = NULL,
tr = NULL,
kappa = 1,
mu2 = 1.5,
apply_exp = FALSE,
opt_method = "Nelder-Mead",
control_opt = list(),
comp_hess = TRUE,
...
)
fit_spm2(
x,
model,
nu,
tr,
kappa = 1,
mu2 = 1.5,
comp_hess = TRUE,
phi_min,
phi_max,
nphi = 10,
cores = getOption("mc.cores", 1L)
)
Arguments
- x
an object of type
spm
. Note that, the dimension oftheta_st
depends on the 2 factors. 1) the number of variables being analyzed, and 2) if the input is aspm
object.- ...
additional parameters, either passed to stats::optim.
- model
a
character
scalar indicating the family of the covariance function to be used. The options arec("matern", "pexp", "gaussian", "spherical", "gw")
.- theta_st
a
numeric
(named) vector containing the initial parameters.- nu
a
numeric
value indicating either the \(\nu\) parameter from the Matern covariance function (controlling the process differentiability), or the "pexp" for the Powered Exponential family. If themodel
chosen by the user is Matern andnu
is not informed, it is automatically set to .5. On the other hand, if the user chooses the Powered Exponential family and do not informnu
, then it is set to 1. In both cases, the covariance function becomes the so called exponential covariance function.- tr
tapper range
- kappa
\(\kappa \in \{0, \ldots, 3 \}\) parameter for the GW cov function.
- mu2
the smoothness parameter \(\mu\) for the GW function.
- apply_exp
a
logical
scalar indicating whether the parameters that cannot assume negative values should be exponentiate or not.- opt_method
a
character
scalar indicating the optimization algorithm to be used. For details, see stats::optim.- control_opt
a named
list
containing the control arguments for the optimization algorithm to be used. For details, see stats::optim.- comp_hess
a
boolean
indicating whether the Hessian matrix should be computed.- phi_min
a
numeric
scalar representing the minimum \(phi\) value to look for.- phi_max
a
numeric
scalar representing the maximum \(phi\) value to look for.- nphi
a
numeric
scalar indicating the number of values to compute a grid-search over \(phi\).- cores
a
integer
scalar indicating number of cores to be used. Default is getOption("mc.cores"). No effect on Windows.
Details
This function uses the stats::optim function optimization
algorithms to find the Maximum Likelihood estimators, and their standard
errors, from a model adapted from. The function allows the user to input
the control parameters from the stats::optim function through the argument
control_opt
, which is a named list. Additionally, the one can
input lower and upper boundaries for the optimization problem, as well
as the preferred optimization algorithm (as long as it is available for
stats::optim). The preferred algorithm is selected by the argument
opt_method
. In addition to the control of the optimization, the
user can select a covariance function among the following: Matern,
Exponential, Powered Exponential, Gaussian, and Spherical. The parameter
apply_exp
is a logical
scalar such that, if set to
TRUE
, the \(\exp\) function is applied to the nonnegative
parameters, allowing the optimization algorithm to search for all the
parameters over the real numbers.
Examples
data(liv_lsoa) ## loading the LSOA data
msoa_spm <- sf_to_spm(sf_obj = liv_msoa, n_pts = 500,
type = "regular", by_polygon = FALSE,
poly_ids = "msoa11cd",
var_ids = "leb_est")
## fitting model
theta_st_msoa <- c("phi" = 1) # initial value for the range parameter
fit_msoa <-
fit_spm(x = msoa_spm,
theta_st = theta_st_msoa,
model = "matern",
nu = .5,
apply_exp = TRUE,
opt_method = "L-BFGS-B",
control = list(maxit = 500))
AIC(fit_msoa)
#> [1] 295.2008
summary_spm_fit(fit_msoa, sig = .05)
#>
#> optimization algorithm converged: yes
#>
#> par estimate se ci
#> 1 mu 75.9479977 0.8112112 [74.358; 77.538]
#> 2 sigsq 23.0875619 4.1812494 [14.892; 31.283]
#> 3 phi 0.8370629 0.2183420 [0.409; 1.265]