[R-sig-Geo] algorthirm to join polygons based on population properties

Roger Bivand Roger.Bivand at nhh.no
Tue Jan 7 11:12:22 CET 2014


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.Bivand at nhh.no]
> Sent: 07 January 2014 08:28
> To: James Rooney
> Cc: r-sig-geo at 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 at 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.Bivand at nhh.no
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at 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.Bivand at nhh.no



More information about the R-sig-Geo mailing list