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()', or 'optim()' using method
     "L-BFGS-B" if argument optim=TRUE, first, and $beta$ and other
     parameters by generalized least squares subsequently. 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)

_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

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

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

_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)

