0

I am trying to fit a spatial lag model (spdep::lagsarlm), after having built a neighbour distance matrix. I have two questions, because every time I read about it, the model always fit data that has only one single observation (one row) per each spatial location.

My dataset has a variable number of observations for each spatial point (but it's not temporal data) and I was wondering if it was valid to do like this, especially when creating the distance matrix because I get a warning:

Warning message:
In spdep::knearneigh(., k = 3, longlat = F) :
  knearneigh: identical points found

Indeed when I plot the neighbours relationships, I get a wrong graph (I guess that the algorithm thinks that the repeated points are neighbours with themselves so they get isolated); when I filter only the first measure, the plot is OK.

library(sp); library(spdep);set.seed(12345678)
df = data.frame('id'=rep(1:10, 3),
  'x'=rep(rnorm(10, 48, 0.1), 3),
  'y'=rep(rnorm(10, 2.3, 0.05),3),
  'response'=c(rnorm(5), rnorm(20, 1), rnorm(5)),
  'type.sensor'=rep(c(rep("a", 6), rep("b", 4)), 3))
coordinates(df)<-c("x", "y")
w <-  df %>% spdep::knearneigh(k=3, longlat=F) %>% knn2nb 
plot(w, coordinates(df))
df2 = head(df, 10) # I keep only the first measure for each location
w2 <-  df2 %>% spdep::knearneigh(k=3, longlat=F) %>% knn2nb 
plot(w2, coordinates(df2))

enter image description here

So i'm not very confident in the result of my lagsarlm model in the first case..

lagsarlm(response ~ type.sensor, data=df, listw=nb2listw(w), type = "lag" )
lagsarlm(response ~ type.sensor, data=df, listw=nb2listw(w2), type = "lag" )

However, if I try to fit my model with the larger dataset, but with the right neighbours matrix, it complains

Error in lagsarlm(response ~ type.sensor, data = df, listw = nb2listw(w2),  : 
  Input data and weights have different dimensions

How can I deal with such data, in the end? Thanks.

agenis
  • 8,069
  • 5
  • 53
  • 102
  • If you need help with data modeling, you should ask such questions at [stats.se] or [datascience.se]. This does not seem to be a specific programming question that's appropriate for Stack Overflow. – MrFlick Aug 03 '17 at 18:49
  • @MrFlick indeed I hesitated with CV when posting it. I've just posted it on CV as you advised. – agenis Aug 03 '17 at 19:16

0 Answers0