lagsarlm                package:spdep                R Documentation

_S_p_a_t_i_a_l _s_i_m_u_l_t_a_n_e_o_u_s _a_u_t_o_r_e_g_r_e_s_s_i_v_e _l_a_g _m_o_d_e_l _e_s_t_i_m_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Maximum likelihood estimation of spatial simultaneous
     autoregressive lag and mixed models of the form:


                       y = rho W y + X beta + e


     where $\rho$ is found by 'optimize()' (prefered), or 'optim()'
     using method "L-BFGS-B" if argument optim=TRUE, first, and $beta$
     and other parameters by generalized least squares subsequently
     (one-dimensional search using optim performs badly on some
     platforms). In the mixed model, the spatially lagged independent
     variables are added to X.

_U_s_a_g_e:

     lagsarlm(formula, data=list(), listw, na.action=na.fail,
       type="lag", method="eigen", quiet=TRUE,
       zero.policy=FALSE, interval = c(-1, 0.999), tol.solve=1.0e-10, 
       tol.opt=.Machine$double.eps^0.5, control, optim=FALSE, cholAlloc=NULL)

_A_r_g_u_m_e_n_t_s:

 formula: a symbolic description of the model to be fit. The details 
          of model specification are given for 'lm()'

    data: an optional data frame containing the variables in the model.
           By default the variables are taken from the environment
          which the function  is called.

   listw: a 'listw' object created for example by 'nb2listw'

na.action: a function (default 'na.fail'), can also be 'na.omit' or
          'na.exclude' with consequences for residuals and fitted
          values - in these cases the weights list will be subsetted to
          remove NAs in the data. It may be necessary to set
          zero.policy to TRUE because this subsetting may create
          no-neighbour observations. Note that only weights lists
          created without using the glist argument to 'nb2listw' may be
          subsetted.

    type: default "lag", may be set to "mixed"; when "mixed", the
          lagged intercept is dropped for spatial weights style "W",
          that is row-standardised weights, but otherwise included

  method: "eigen" (default) - the Jacobian is computed as the product 
          of (1 - rho*eigenvalue) using 'eigenw', and "SparseM" for
          strictly symmetric weights lists of styles "B", "C" and "U",
          or made symmetric by similarity (Ord, 1975, Appendix C) if
          possible for styles "W" and "S", using code from the SparseM
          package to calculate the determinant. 

   quiet: default=TRUE; if FALSE, reports function values during
          optimization.

zero.policy: if TRUE assign zero to the lagged value of zones without 
          neighbours, if FALSE (default) assign NA - causing
          'lagsarlm()' to terminate with an error

interval: search interval for autoregressive parameter when not using
          method="eigen"; default is c(-1,1)

tol.solve: the tolerance for detecting linear dependencies in the
          columns of matrices to be inverted - passed to 'solve()'
          (default=1.0e-10). This may be used if necessary to extract
          coefficient standard errors (for instance lowering to 1e-12),
          but errors in 'solve()' may constitute indications of poorly
          scaled variables: if the variables have scales differing much
          from the autoregressive coefficient, the values in this
          matrix may be very different in scale, and inverting such a
          matrix is analytically possible by definition, but
          numerically unstable; rescaling the RHS variables alleviates
          this better than setting tol.solve to a very small value

 tol.opt: the desired accuracy of the optimization - passed to
          'optimize()' (default=square root of double precision machine
          tolerance)

 control: A list of control parameters passed to 'optim', se details in
          'optim'

   optim: If TRUE use experimental 'optim' branch and control argument

cholAlloc: control arguments for memory allocation in 'chol' for sparse
          matrices in method="SparseM": if NULL, default values are
          used (larger than SparseM defaults), otherwise a list with
          elements: nsubmax, nnzlmax, and tmpmax, for example
          cholAlloc=list(nsubmax=25000, nnzlmax=100000, tmpmax=25000)

_D_e_t_a_i_l_s:

     The asymptotic standard error of $\rho$ is only computed when
     method=eigen, because the full matrix operations involved would be
     costly for large n typically associated with the choice of
     method="SparseM". The same applies to the coefficient covariance
     matrix. Taken as the asymptotic matrix from the literature, it is
     typically badly scaled, and with the elements involving rho being
     very small, while other parts of the matrix can be very large
     (often many orders of magnitude in difference). It often happens
     that the 'tol.solve' argument needs to be set to a smaller value
     than the default, or the RHS variables can be centred or reduced
     in range.

     Note that the fitted() function for the output object assumes that
     the response  variable may be reconstructed as the sum of the
     trend, the signal, and the noise (residuals). Since the values of
     the response variable are known, their spatial lags are used to
     calculate signal components (Cressie 1993, p. 564). This differs
     from other software, including GeoDa, which does not use knowledge
     of the response  variable in making predictions for the fitting
     data.

_V_a_l_u_e:

     A list object of class 'sarlm' 

    type: "lag" or "mixed"

     rho: simultaneous autoregressive lag coefficient

coefficients: GLS coefficient estimates

 rest.se: asymptotic standard errors if ase=TRUE

      LL: log likelihood value at computed optimum

      s2: GLS residual variance

     SSE: sum of squared GLS errors

parameters: number of parameters estimated

lm.model: the 'lm' object returned when estimating for $\rho=0$

  method: the method used to calculate the Jacobian

    call: the call used to create this object

residuals: GLS residuals

lm.target: the 'lm' object returned for the GLS fit

fitted.values: Difference between residuals and response variable

  se.fit: Not used yet

 formula: model formula

     ase: TRUE if method=eigen

     LLs: if ase=FALSE (for method="SparseM"), the log likelihood
          values of models estimated dropping each of the independent
          variables in turn, used in the summary function as a
          substitute for variable coefficient significance tests

  rho.se: if ase=TRUE, the asymptotic standard error of $\rho$

  LMtest: if ase=TRUE, the Lagrange Multiplier test for the absence of
          spatial autocorrelation in the lag model residuals

zero.policy: zero.policy for this model

na.action: (possibly) named vector of excluded or omitted observations
          if non-default na.action argument used


     The internal sar.lag.mixed.* functions return the value of the log
     likelihood function at $\rho$.

_A_u_t_h_o_r(_s):

     Roger Bivand Roger.Bivand@nhh.no, with thanks to Andrew  Bernat
     for contributions to the asymptotic standard error code.

_R_e_f_e_r_e_n_c_e_s:

     Cliff, A. D., Ord, J. K. 1981 _Spatial processes_, Pion; Ord, J.
     K. 1975 Estimation methods for models of spatial interaction,
     _Journal of the American Statistical Association_, 70, 120-126;
     Anselin, L. 1988 _Spatial econometrics: methods and models._
     (Dordrecht: Kluwer); Anselin, L. 1995 SpaceStat, a software
     program for the analysis of spatial data, version 1.80. Regional
     Research Institute, West Virginia University, Morgantown, WV
     (<URL: www.spacestat.com>); Anselin L, Bera AK (1998) Spatial
     dependence in linear regression models with an introduction to
     spatial econometrics. In: Ullah A, Giles DEA (eds) Handbook of
     applied economic statistics. Marcel Dekker, New York, pp. 237-289;
     Cressie, N. A. C. 1993 _Statistics for spatial data_, Wiley, New
     York.

_S_e_e _A_l_s_o:

     'lm', 'errorsarlm',  'eigenw', 'asMatrixCsrListw',
     'predict.sarlm', 'residuals.sarlm'

_E_x_a_m_p_l_e_s:

     data(oldcol)
     COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb), method="eigen", quiet=FALSE)
     COL.lag.eig <- errorsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb, style="W"), method="eigen", quiet=FALSE)
     COL.lag.SM <- lagsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb), method="SparseM", quiet=FALSE)
     summary(COL.lag.eig, correlation=TRUE)
     summary(COL.lag.SM, correlation=TRUE)
     COL.lag.B <- lagsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb, style="B"))
     summary(COL.lag.B, correlation=TRUE)
     COL.mixed.B <- lagsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb, style="B"), type="mixed", tol.solve=1e-9)
     summary(COL.mixed.B, correlation=TRUE)
     COL.mixed.W <- lagsarlm(CRIME ~ INC + HOVAL, data=COL.OLD,
      nb2listw(COL.nb, style="W"), type="mixed")
     summary(COL.mixed.W, correlation=TRUE)
     NA.COL.OLD <- COL.OLD
     NA.COL.OLD$CRIME[20:25] <- NA
     COL.lag.NA <- lagsarlm(CRIME ~ INC + HOVAL, data=NA.COL.OLD,
      nb2listw(COL.nb), na.action=na.exclude, tol.opt=.Machine$double.eps^0.4)
     COL.lag.NA$na.action
     COL.lag.NA
     resid(COL.lag.NA)

