R: Create symmetric similar weights lists

similar.listw {spatialreg} | R Documentation

## Create symmetric similar weights lists

### Description

From Ord's 1975 paper, it is known that the Jacobian for SAR models may be found by "symmetrizing" by similarity (the eigenvalues of similar matrices are identical, so the Jacobian is too). This applies only to styles "W" and "S" with underlying symmetric binary neighbour relations or symmetric general neighbour relations (so no k-nearest neighbour relations). The function is invoked automatically within the SAR fitting functions, to call `eigen` on a symmetric matrix for the default eigen method, or to make it possible to use the Matrix method on weights that can be "symmetrized" in this way.

### Usage

    similar.listw(listw)

### Arguments

`listw` | a `listw` object created for example by `nb2listw`

### Value

a `listw` object

### Author(s)

Roger Bivand Roger.Bivand@nhh.no

### References

Ord, J. K. 1975 Estimation methods for models of spatial interaction, Journal of the American Statistical Association, 70, 120-126

### See Also

`lagsarlm`, `errorsarlm`

### Examples

    #require("spdep", quietly=TRUE)
    data(oldcol, package="spdep")
    COL.W <- spdep::nb2listw(COL.nb, style="W")
    COL.S <- spdep::nb2listw(COL.nb, style="S")
    sum(log(1 - 0.5 * eigenw(COL.W)))
    sum(log(1 - 0.5 * eigenw(similar.listw(COL.W))))
    W_J <- as(as_dsTMatrix_listw(similar.listw(COL.W)), "CsparseMatrix")
    I <- as_dsCMatrix_I(dim(W_J)[1])
    c(determinant(I - 0.5 * W_J, logarithm=TRUE)$modulus)
    sum(log(1 - 0.5 * eigenw(COL.S)))
    sum(log(1 - 0.5 * eigenw(similar.listw(COL.S))))
    W_J <- as(as_dsTMatrix_listw(similar.listw(COL.S)), "CsparseMatrix")
    c(determinant(I - 0.5 * W_J, logarithm=TRUE)$modulus)

[Package spatialreg version 1.2-1 Index]