invIrM {spdep} | R Documentation

## Compute SAR generating operator

### Description

Computes the matrix used for generating simultaneous autoregressive random variables, for a given value of rho, a neighbours list object, a chosen coding scheme style, and optionally a list of general weights corresponding to neighbours.

### Usage

    invIrM(neighbours, rho, glist=NULL, style="W")
    invIrW(listw, rho)

### Arguments

`neighbours` | an object of class `nb`
`rho` | autoregressive parameter
`glist` | list of general weights corresponding to neighbours
`style` | `style` can take values W, B, C, and S
`listw` | a `listw` object from for example `nb2listw`

### Details

The function generates the full weights matrix V, checks that rho lies in its feasible range between 1/min(eigen(V)) and 1/max(eigen(V)), and returns the nxn inverted matrix

(I - rho V)^{-1}

### Value

An nxn matrix with a "call" attribute.

### Author(s)

Roger Bivand Roger.Bivand@nhh.no

### References

Tiefelsdorf, M., Griffith, D. A., Boots, B. 1999 A variance-stabilizing coding scheme for spatial link matrices, Environment and Planning A, 31, pp. 165-180; Tiefelsdorf, M. 2000 Modelling spatial processes, Lecture notes in earth sciences, Springer, p. 76; Haining, R. 1990 Spatial data analysis in the social and environmental sciences, Cambridge University Press, p. 117; Cliff, A. D., Ord, J. K. 1981 Spatial processes, Pion, p. 152.

### See Also

`nb2listw`

### Examples

    nb7rt <- cell2nb(7, 7, torus=TRUE)
    x <- matrix(rnorm(500*length(nb7rt)), nrow=length(nb7rt))
    res0 <- apply(invIrM(nb7rt, rho=0.0) %*% x, 2, function(x) var(x)/length(x))
    res2 <- apply(invIrM(nb7rt, rho=0.2) %*% x, 2, function(x) var(x)/length(x))
    res4 <- apply(invIrM(nb7rt, rho=0.4) %*% x, 2, function(x) var(x)/length(x))
    res6 <- apply(invIrM(nb7rt, rho=0.6) %*% x, 2, function(x) var(x)/length(x))
    res8 <- apply(invIrM(nb7rt, rho=0.8) %*% x, 2, function(x) var(x)/length(x))
    res9 <- apply(invIrM(nb7rt, rho=0.9) %*% x, 2, function(x) var(x)/length(x))
    plot(density(res9), col="red", xlim=c(-0.01, max(density(res9)$x)),
      ylim=range(density(res0)$y),
      xlab="estimated variance of the mean",
      main=expression(paste("Effects of spatial autocorrelation for different ",
        rho, " values")))
    lines(density(res0), col="black")
    lines(density(res2), col="brown")
    lines(density(res4), col="green")
    lines(density(res6), col="orange")
    lines(density(res8), col="pink")
    legend(c(-0.02, 0.01), c(7, 25), legend=c("0.0", "0.2", "0.4", "0.6", "0.8", "0.9"), col=c("black", "brown", "green", "orange", "pink", "red"), lty=1, bty="n")

[Package spdep version 0.3-25 Index]