FindClusters: find spatial clusters using supervised learning methods

Description Usage Arguments Value Author(s) Examples

Description

We exploit classification trees to efficiently identify clusters in our data

The power to detect such rectangular clusters is greatly enhanced by

inspecting various rotations of the data

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
FindClusters(formula, data, NullClass = "0", model = FALSE, angles = c(0, 


    30, 45, 60), minsize = 200, minArea = 20, maxArea = 250, 


    ORfilter = list(OR = TRUE, OR1 = 1.8, OR2 = 0.1), DENS = FALSE, 


    joinIntersect = TRUE, method = "recursive.partition", split = c("deviance", 


        "gini"), PLOT = 0, prunePolys = TRUE, TreeAlgorithm = c("rpart", 


        "ctree")[1], verbose = 0, ...)

Arguments

formula

A formula expression. The left-hand-side (response) should be either a numerical vector when a regression tree will be fitted or a factor, when a classification tree is produced. The right-hand-side should be a series of numeric or factor variables separated by +; there should be no interaction terms. Both . and - are allowed: regression trees can have offset terms.

data

A data frame in which to preferentially interpret formula, weights and subset.

NullClass

if y is a factor, this is the category used for the background

model

If this argument is itself a model frame, then the formula and data arguments are ignored, and model is used to define the model. If the argument is logical and true, the model frame is stored as component model in the result.

angles

angles to explore

minsize

minimum number of points inside a cluster

minArea

minimum area of a cluster

maxArea

maximum area of a cluster

ORfilter

filter on minimum and maximum odds ratios (OR)

DENS

logical; if TRUE seek overdensities

joinIntersect

merge overlapping clusters

method

character string giving the method to use. The only other useful value is "model.frame".

split

Splitting criterion to use.

PLOT

plot the top PLOT clusters in each rotation

prunePolys

remove polygons due to overlap

TreeAlgorithm

which tree algorithm to choose

verbose

level of verbosity

...

further arguments to tree

Value

identified polygon clusters

Author(s)

Markus Loecher

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#examples to come


 data("drugCrimes", envir = environment())


 drugCrimes$MATCH = factor(drugCrimes$MATCH)


 


 #areas in km^2:


 minAreakm2=0.07; maxAreakm2=1


 #approx translation into lat/lon area:


 dy = 69.1# * (endLat - startLat) ;


 dx = 69.1*cos(mean(drugCrimes$Y)/57.3) 


 


 


 spot1 = FindClusters(MATCH ~ X+Y,drugCrimes, minArea=minAreakm2/(dy*dx), 


                      maxArea=maxAreakm2/(dy*dx), angles=seq(0,75,by=15),


                      ORfilter=list(OR=FALSE,OR1=0.8,OR2=0.1))


 


 suppressWarnings(suppressMessages(library("PBSmapping")))


 


 PBSmapping::plotPolys(spot1[1:5,],density=NULL,xlim=range(drugCrimes$X),ylim=range(drugCrimes$Y),


                       border="blue",lwd=2)


 


 ranRows=sample(1:nrow(drugCrimes), 5000)


 points(Y~X,data=drugCrimes[ranRows,],col=RgoogleMaps::AddAlpha(4-as.numeric(MATCH)),pch=20,cex=0.6)


 


 

TreeHotspots documentation built on May 2, 2019, 5:17 p.m.