On Sun, 20 Nov 2016, Miluji Sb wrote:

Dear Roger,

Thank you for your quick reply.

#
print(spatial_knn2listw_obj)

Characteristics of weights list object:
Neighbour list object:
Number of regions: 10927
Number of nonzero links: 21854
Percentage nonzero weights: 0.01830329
Average number of links: 2
Non-symmetric neighbours list

Weights style: W
Weights constants summary:
     n        nn    S0      S1    S2
W 10927 119399329 10927 10376.5 44660
#

The data is actually cross-sectional, is my mistake converting it
to pdata.frame? I have not tried the splm package, which is a mistake on my
part. I will try that now. Thanks.


If the data are not a spatial panel, then do not use splm, it is not relevant. If you have NAs in the response, you will need to address that once you can fit a model with complete cases. You may not have NAs in the covariates. I guess that the mistake was slag() and pdata.frame(), but your example is no help at all. Are you copying poor code from the internet? Why use k=2 (seems very ill-judged) - knn are intrinsically asymmetric, why 2?

Roger

Sincerely,

Milu

On Sun, Nov 20, 2016 at 8:29 PM, Roger Bivand <roger.biv...@nhh.no> wrote:

On Sun, 20 Nov 2016, Miluji Sb wrote:

I have a dataset as below (with NAs). I am trying to run a spatial lagged
model

##
E2_mod_pdssat <- as.data.frame(gcp_t_p[,c(2,3)])
names(E2_mod_pdssat) <- c("Lon", "Lat")
row.names(E2_mod_pdssat) <- NULL

coords_matrix  <- as.matrix(E2_mod_pdssat) # create coordinate matrix
IDs <- row.names(as(E2_mod_pdssat, "data.frame"))

spatial_knn2nb_obj <- knn2nb(knearneigh(coords_matrix, k=2,
longlat=TRUE),
row.names=IDs)

# Now convert the nb to listw for use in spatial regression call.
# Spatial weights, illustrated with coding style "W" (row standardized)

spatial_knn2listw_obj <- nb2listw(spatial_knn2nb_obj, glist=NULL,
style="W",  zero.policy=TRUE)


Did you examine this object? What did the print method tell you?


E2_mod_pdssat_org_lon_lat <- E2_mod_pdssat_org[, c(2:3)] # The lon and lat
will be required


This object "_org" does not yet exist ...

E2_mod_pdssat_org <- E2_mod_pdssat_org[, -c(2,3)]  # Remove the Lon, Lat
columns that are not required

E2_mod_pdssat_pdata_frame <- pdata.frame(E2_mod_pdssat_org) # Convert data
frame to pdata.frame


So you omitted to say that the data are (unbalanced) panel data ...

All goes well until here but when I try to convert the explanatory
variables in the pdata.frame to spatial lagged variables

E2_mod_pdssat_X_lagged <-
as.data.frame(cbind(slag(E2_mod_pdssat_pdata_frame$tmean, listw =
spatial_knn2listw_obj),
slag(E2_mod_pdssat_pdata_frame$tmeansq, listw = spatial_knn2listw_obj),
slag(E2_mod_pdssat_pdata_frame$pmean, listw = spatial_knn2listw_obj),
slag(E2_mod_pdssat_pdata_frame$pmeansq, listw = spatial_knn2listw_obj)))

I get the following error "Error in lag.listw(listw, xt) : object lengths
differ". What am I doing wrong? I have also tried removing the NAs with
complete.cases.


You have defined weights for one object (possibly a cross section), and
then try to use them on a different object with a different number of rows.
If you really want to do this, you need a Kronecker product of the spatial
weights to take the panel structure of your data into account. Further, I
doubt strongly that you need to create WX manually, because spatial lags of
all the required variables are created by model fitting functions in the
splm package.

Roger


Any help will be greatly appreciated. Thank you.

Sincerely,

Milu

## Data

E2_mod_pdssat_org <- dput(head(temp,5))
structure(list(iso3 = structure(c(30L, 30L, 30L, 1L, 30L), .Label = c(".",
".M", "AFG", "AGO", "ALB", "ARE", "ARG", "ARM", "AUS", "AUT",
"AZE", "BDI", "BEL", "BEN", "BFA", "BGD", "BGR", "BHS", "BIH",
"BLR", "BLZ", "BOL", "BRA", "BRN", "BTN", "BWA", "CAF", "CAN",
"CHE", "CHL", "CHN", "CIV", "CMR", "COD", "COG", "COL", "CRI",
"CUB", "CYP", "CZE", "DEU", "DJI", "DNK", "DOM", "DZA", "ECU",
"EGY", "ERI", "ESH", "ESP", "EST", "ETH", "FIN", "FJI", "FLK",
"FRA", "GAB", "GBR", "GEO", "GHA", "GIN", "GNB", "GNQ", "GRC",
"GRL", "GTM", "GUF", "GUY", "HND", "HRV", "HTI", "HUN", "IDN",
"IND", "IRL", "IRN", "IRQ", "ISL", "ISR", "ITA", "JAM", "JOR",
"JPN", "KAZ", "KEN", "KGZ", "KHM", "KIR", "KOR", "KWT", "LAO",
"LBN", "LBR", "LBY", "LCA", "LKA", "LSO", "LTU", "LUX", "LVA",
"MAR", "MDA", "MDG", "MEX", "MKD", "MLI", "MMR", "MNE", "MNG",
"MOZ", "MRT", "MWI", "MYS", "NCL", "NER", "NGA", "NIC", "NLD",
"NOR", "NPL", "NZL", "OMN", "PAK", "PAN", "PER", "PHL", "PNG",
"POL", "PRI", "PRK", "PRT", "PRY", "QAT", "ROU", "RUS", "RWA",
"SAU", "SDN", "SEN", "SJM", "SLB", "SLE", "SLV", "SOM", "SRB",
"SUR", "SVK", "SVN", "SWE", "SWZ", "SYR", "TCD", "TGO", "THA",
"TJK", "TKM", "TLS", "TUN", "TUR", "TWN", "TZA", "UGA", "UKR",
"URY", "USA", "UZB", "VEN", "VNM", "VUT", "YEM", "ZAF", "ZMB",
"ZWE"), class = "factor"), lon = c(-69L, -68L, -72L, -71L, -70L
), lat = c(-55L, -55L, -54L, -54L, -54L), tmean = c(NA, NA,
4.55847677595631,
4.06015710382516, 3.71010245901642), pmean = c(NA, NA, 2.45569896697998,
1.6384220123291, 1.43925595283508), lngdp = c(-0.102380074560642,
-2.3195972442627, 0.0122363297268748, -0.483756244182587,
-6.29744625091553
), tmeansq = c(NA, NA, 20.7797107696533, 16.4848766326904,
13.7648601531982
), pmeansq = c(NA, NA, 6.03045749664307, 2.68442678451538,
2.07145762443542
)), .Names = c("iso3", "lon", "lat", "tmean", "pmean", "lngdp",
"tmeansq", "pmeansq"), row.names = c("1", "2", "3", "4", "5"), class =
"data.frame")

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo


--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 91 00
e-mail: roger.biv...@nhh.no
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
http://depsy.org/person/434412



--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; fax +47 55 95 91 00
e-mail: roger.biv...@nhh.no
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
http://depsy.org/person/434412

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to