Faz sentido interpolar? Acredito que sim, partindo do princípio que a dependência espacial pode existir, mas seu método não permitiu detectá-la. Acredito que a causa mais comum seja o esquema de amostragem utilizado, sobretudo no que se refere à distância entre amostras. No caso particular, você conseguiu modelar em algumas áreas e não em outras, dando margem à essa interpretação.
O colega Elias já postou uma solução, mas acrescento o código abaixo, caso ainda tenha interesse em utilizar o {gstat}.
Em termos gerais, a ideia de operação no {gstat} é similar a do {geoR}, no sentido em que você vai precisar criar um grid pra receber o resultado da interpolação. O espaçamento da grade será a resolução da interpolação. O ponto principal é que tem que trabalhar com objetos da classe 'sp'.
Verifique os parâmetros número de vizinhos (nmax) e peso/potência da distância (idp). No {gstat} por default utilizam-se todos os pontos e o idp=2.
### <code r>
sapply(c("gstat", "sp", "geoR", "RColorBrewer"), require, character.only=T)
data(parana); names(parana)
hist(parana$data, col=3)
points(parana, pt.divide='quart')
### Criar objeto 'sp'
pr <- data.frame(x=parana$coords[,1], y=parana$coords[,2], chuva=parana$data)
names(pr); coordinates(pr) <- ~x+y
class(pr)
plot(pr, asp=1, axes=T, pch=20); polygon(parana$borders, border=2)
### Criar 'grid'
bbox(pr)
lim <- round(bbox(pr)+c(-1,-1, 1, 1)*50); lim ### amplia a área do bbox
grid <- expand.grid(x=seq(lim[1,1],lim[1,2], by=10), y=seq(lim[2,1],lim[2,2], by=10))
gridded(grid) = ~x+y ### SpatialPixels
coordinates(grid.pt) = ~x+y ### SpatialPoints
### IDW Default
idw <- idw(pr$chuva~1, pr, grid)
### Visualização
spplot(idw, "var1.pred", main = "IDW Default")
spplot(idw.pt, "var1.pred", main = "IDW default - Mapa Pontuado")
image(idw); polygon(parana$borders); points(pr)
### Variando parâmetros
idw.data <- data.frame(
default = idw(chuva ~ 1, pr, grid)$var1.pred, ### nmax=todos & idp=2
idw6 = idw(chuva ~ 1, pr, grid, nmax=6)$var1.pred,
idw9 = idw(chuva ~ 1, pr, grid, nmax=9)$var1.pred,
idp1 = idw(chuva ~ 1, pr, grid, idp = 1)$var1.pred,
idp4 = idw(chuva ~ 1, pr, grid, idp = 4)$var1.pred,
idp8 = idw(chuva ~ 1, pr, grid, idp = 8)$var1.pred)
grid.data <- SpatialPixelsDataFrame(grid, idw.data)
dput(names(grid.data))
spplot(grid.data, c("default", "idw6", "idw9", "idp1", "idp4", "idp8"), main = "IDW", col.regions=rainbow(16)
# idp: numeric; specify the inverse distance weighting power
# nmax: the number of nearest observations that should be used
### </code>