SPGWR error: new data matrix rows mismatch

131 Views Asked by At

I´m trying to run a GWR code with spgwr in R and I´m having a lot of hardships. I´m trying to run a Hedonic Model into GWR, using a point shapefile that I´ve prepared from a database of real estate transactions in my city, but I can´t run the model in any given form. My hedonic model, that is based on a multiple regression model, is extrapolated to GWR, as it is considered as the global regression. It uses numeric and categoric variables, and is used in the code below.

## Script - GWR ##

library(sp)
library(spgwr)
library(rgdal)
# Read Shape
map <- readOGR("E:/SHP/2010/ITBI_TRANS-2010_0.shp")
# Definition of the Influencing Variables
# ---------------------------
bwG_1 <- gwr.sel(map$X._M2_CORR ~ map$DIST_BRT + map$ANO_CONST + map$AREA_CONST + map$P_ACAB + map$TP_CONST + map$I_CENT, data = map, gweight = gwr.Gauss, verbose = FALSE)

gwrG_1 <- gwr(map$X._M2_CORR ~ map$DIST_BRT + map$ANO_CONST + map$AREA_CONST + map$P_ACAB + map$TP_CONST + map$I_CENT, data = map, bandwidth = bwG_1, gweight = gwr.Gauss)

#Error in gwr(map$X._M2_CORR ~ map$DIST_BRT + map$ANO_CONST + #map$AREA_CONST +  : 
#  new data matrix rows mismatch

warnings()
#Mensagens de aviso:
#1: In w.i * weights :
#  longer object length is not a multiple of shorter object length
#2: In w.i * weights :
#  longer object length is not a multiple of shorter object length
#3: In w.i * weights :
#  longer object length is not a multiple of shorter object length
# and so on

And here´s a sample of my map:

dput(head(map,10))
structure(list(X = c(602613.7621, 602317.8186, 603020.562, 603020.562, 
603020.562, 603020.562, 602861.0649, 602861.7141, 602861.7141, 
602861.7141), Y = c(7791266.152, 7790735.548, 7790894.146, 7790894.146, 
7790894.146, 7790894.146, 7790825.46, 7790821.82, 7790821.82, 
7790821.82), END_COMPLE = c("RUA ALVARO DA SILVEIRA 262 - SANTA MARGARIDA - 30640-230 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 1004 - SALA 102 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 300 - APT 1402 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 300 - APT 303 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 300 - APT 502 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 300 - APT 701 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 483 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 485 - SALA 202 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 485 - SALA 203 - BARREIRO - 30640-000 - BELO HORIZONTE - MG", 
"AVE SINFRONIO BROCHADO 485 - SALA 204 - BARREIRO - 30640-000 - BELO HORIZONTE - MG"
), END = c("RUA ALVARO DA SILVEIRA 262", "AVE SINFRONIO BROCHADO 1004", 
"AVE SINFRONIO BROCHADO 300", "AVE SINFRONIO BROCHADO 300", "AVE SINFRONIO BROCHADO 300", 
"AVE SINFRONIO BROCHADO 300", "AVE SINFRONIO BROCHADO 483", "AVE SINFRONIO BROCHADO 485", 
"AVE SINFRONIO BROCHADO 485", "AVE SINFRONIO BROCHADO 485"), 
    IDEND = c("287200262", "6611601004", "6611600300", "6611600300", 
    "6611600300", "6611600300", "6611600483", "6611600485", "6611600485", 
    "6611600485"), CEP = c("30640-230", "30640-000", "30640-000", 
    "30640-000", "30640-000", "30640-000", "30640-000", "30640-000", 
    "30640-000", "30640-000"), Bairro = c("SANTA MARGARIDA", 
    "BARREIRO", "BARREIRO", "BARREIRO", "BARREIRO", "BARREIRO", 
    "BARREIRO", "BARREIRO", "BARREIRO", "BARREIRO"), ANO_CONST = c("1994", 
    "1985", "1992", "1992", "1992", "1992", "1997", "1997", "1997", 
    "1997"), AREA_TERR = c(360, 360, 1984.58, 1984.58, 1984.58, 
    1984.58, 374.4, 374.4, 374.4, 374.4), AREA_CONST = c(167, 
    31.56, 154.65, 139.8, 139.8, 138.6, 26.95, 36.37, 39.45, 
    36.13), P_ACAB = c("P2", "P2", "P3", "P3", "P3", "P3", "P3", 
    "P3", "P3", "P3"), FRACAO_IDE = c(1, 0.07, 0.016612, 0.015017, 
    0.015017, 0.014888, 0.03103, 0.04188, 0.04543, 0.04161), 
    TP_CONST = c("LJ", "SL", "AP", "AP", "AP", "AP", "LJ", "SL", 
    "SL", "SL"), CAT_1 = c("N RES", "N RES", "RES", "RES", "RES", 
    "RES", "N RES", "N RES", "N RES", "N RES"), CAT_2 = c("MULTI", 
    "MULTI", "MULTI", "MULTI", "MULTI", "MULTI", "MULTI", "MULTI", 
    "MULTI", "MULTI"), X._TRANS = c(133222.2, 34927.2, 150783.75, 
    255000, 240000, 180000, 72000, 70000, 70000, 67000), X._M2_CORR = c(797.74, 
    1106.69, 975, 1824.03, 1716.74, 1298.7, 2671.61, 1924.66, 
    1774.4, 1854.41), ZONA_ITBI = c("ZAP", "ZCBA", "ZCBA", "ZCBA", 
    "ZCBA", "ZCBA", "ZCBA", "ZCBA", "ZCBA", "ZCBA"), IA_Z_BAIRR = c(0.212, 
    1.442, 1.442, 1.442, 1.442, 1.442, 1.442, 1.442, 1.442, 1.442
    ), IA_N_BAIRR = c(0.141, 0.198, 0.198, 0.198, 0.198, 0.198, 
    0.198, 0.198, 0.198, 0.198), I_CENT = c(0.011, 0.167, 0.167, 
    0.167, 0.167, 0.167, 0.167, 0.167, 0.167, 0.167), BRT_300m = c("0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0"), BRT_600m = c("0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0"), BRT_1200m = c("0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0"), BRT_1500m = c("0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0"), ID = c(12544L, 
    11681L, 11683L, 11684L, 11685L, 11686L, 11687L, 11688L, 11689L, 
    11690L), DIST_BARR = c(154.381151085945, 456.128361870267, 
    562.509774613338, 562.509774613338, 562.509774613338, 562.509774613338, 
    469.660249556493, 472.622402988416, 472.622402988416, 472.622402988416
    ), EST_BRT = c("TAMOIOS", "TAMOIOS", "TAMOIOS", "TAMOIOS", 
    "TAMOIOS", "TAMOIOS", "TAMOIOS", "TAMOIOS", "TAMOIOS", "TAMOIOS"
    ), DIST_BRT = c(9915.48440593417, 10468.0649384941, 9815.43514726265, 
    9815.43514726265, 9815.43514726265, 9815.43514726265, 9983.02222851471, 
    9984.77647467629, 9984.77647467629, 9984.77647467629), BARR_300m = c("1", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0"), BARR_600m = c("1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1"), BARR_1200m = c("1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1"), BARR_1500m = c("1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1")), row.names = c(NA, 
10L), class = "data.frame")

It appears to be an error with bandwidth matrix, that have one value only. I really don´t know what to do more. Search into the forum and also asked chat GPT, but I don´t have a clue of what is going. I would be greatful with any help.

0

There are 0 best solutions below