On Tue, 7 Jan 2014, James Rooney wrote:
Hi Roger,
Thanks for your reply. Coding the joins is not a problem I've already
done that on a smaller scale in a different project.
No postcodes in my country. I have polygon data from the census and I
have geocoded cases for every case of a rare disease. This is all pretty
much fixed there is nothing I can do about it. I have performed an
analysis based on about 3500 polygons and that works ok. However the
population data has bad maths properties. There I'm now working with
newer data using 18,000 polygons and the same cases. This population
data has better maths properties (i.e. population per polygon is more
symmetrically distributed). But there are too many polygons - most of
the polygons have no cases. So when I do Bayesian smoothing I just end
up with a uniform map of Relative Risk =1 everywhere as all the polygons
with cases are all surrounded by polygons with no cases.
I figure to get around this I either fiddle with the spatial weighting
(seems unwise), or join polygons in some sensible fashion. My question
was really wondering are there algorithms to deduce a list of polygon
joins based on polygon properties. For example - I don't want to join
urban and rural polygons as I am interested in the association of
population density with incidence rate. I'm also interested in the
relationship with social deprivation - so I don't want to join an area
of high deprivation with and area of low deprivation. Basically I want
to know is there a package that will create me a join list based on such
rules ? I can of course write some code to do it but I was hoping not to
have to spend the time on it!
Briefly, you have a regionalisation problem in addition to MAUP, so have a
look at spdep::skater and the underlying paper:
Assuncao, R. M, Neves, M. C., Camara, G. and Freitas, C. da C. (2006).
Efficient regionalization techniques for socio-economic geographical units
using minimum spanning trees. International Journal of Geographical
Information Science Vol. 20, No. 7, August 2006, 797-811.
However, different criteria and clustering variable subsets will give
different output regional aggregates. You may like to check robustness by
comparing summary statistics for the aggregates, and by comparing output
risk values under different aggregations.
The key functions in this approach now support parallel execution, look
carefully at the examples using the Boston dataset at the foot of the help
page, and note the differences between Windows and Linux/OSX.
Hope this helps,
Roger
James
________________________________________
From: Roger Bivand [roger.biv...@nhh.no]
Sent: 07 January 2014 08:28
To: James Rooney
Cc: r-sig-geo@r-project.org
Subject: Re: [R-sig-Geo] algorthirm to join polygons based on population
properties
On Tue, 7 Jan 2014, James Rooney wrote:
Dear all,
I have dataset with very many more polygons than cases. I wish to apply
Bayesian smoothing to areal disease rates, however I have too many
polygons and need a smart way to combine them so that there are less
overall polygons.
Bascially I need to only combine polygons of similar population density
and it would be best if the new polygons have a distribution of total
population that was within a limited range/normally distributed.
This is not clear. Do you mean density (count/area) or just count? If you
have "too many polygons", then probably you haven't thought through your
sampling design - you need polygons with the correct support for the data
collection protocol used. Are you looking at postcode polygons and sparse
geocoded cases, with many empty postcodes? Are postcodes the relevant
support?
If you think through support first (Gotway & Young 2002), then ad hoc
aggregation (that's the easy part) may be replaced by appropriate
aggregation (postcodes by health agency, surgery, etc.). The aggregation
can be done with rgeos::gUnaryUnion, but you need a vector assigning
polygons to aggregates first, preferably coded so that the data can be
maptools::spCbind using well-matched row.names of the aggregated
SpatialPolygons and data.frame objects to key on observation IDs.
First clarity on support, then aggregate polygons to appropriate support,
then merge. Otherwise you are ignoring the uncertainty introduced into
your Bayesian analysis by the aggregation (dfferent aggregations will give
different results). There are good chapters on this in the Handbook of
Spatial Statistics by Gelfand and Wakefield/Lyons.
Hope this clarifies,
Roger
I can of course come up with some way of doing this myself, but I'm not
keen to reinvent the wheel and so I am wondering - are there any smart
algorithms already out there for doing this kind of thing ?
Thanks,
James
_______________________________________________
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 95 43
e-mail: roger.biv...@nhh.no
_______________________________________________
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 95 43
e-mail: roger.biv...@nhh.no
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo