neg_exp_profile: Negative Exponential Model for Geographic Profiling

View source: R/neg_exp_profile.R

neg_exp_profileR Documentation

Negative Exponential Model for Geographic Profiling

Description

An implementation of variations of the negative exponential decay model for serial crime analysis. In this model, the decline is at a constant rate, therefore the likelihood of the perpetrator's home base drops quickly from the incident locations until it approaches zero likelihood. The user can select different variants including the 'CrimeStat' base model, the 'Dragnet' model, or whether a buffer and plateau is present at the start of the decay function. This model assumes that the likelihood of the serial perpetrator's home base decreases in a exponential fashion as the distance increases from the crime incidents.

Usage

neg_exp_profile(
  lat,
  lon,
  method = c("CrimeStat", "Dragnet", "Custom"),
  buffer = FALSE,
  a = NULL,
  b = NULL,
  n = NULL
)

Arguments

lat

a vector of latitudes for the crime incident series

lon

a vector of latitudes for the crime incident series

method

'CrimeStat', 'Dragnet', or a custom parameter based negative exponential decay function. If using the 'CrimeStat' or 'Dragnet' method, values do not need to be provided from 'a' and 'b' as the default parameters will be used. Default parameters for the 'CrimeStat' are: a = 1.89 a = -0.06. Default parameters for the 'Dragnet' are: a = b = 1. If using a custom model, values must be provided for '*a*' and '*b*'.

buffer

TRUE/FALSE. Whether a buffer zone where a likelihood of zero is fit around the incidents and a plateau of peak likelihood is fit prior to the negative exponential decay. The function calculates the buffer zone and the plateau area to each be half of the average nearest neighbor distance.

a

the slope coefficient which defines the function decrease in distance

b

exponential multiplier for the distance decay function

n

total number of cells within the spatial grid for the jeopardy surface. If NULL, the default value for '*n*' is 40,000.

Value

A data frame of points depicting a spatial grid of the hunting area for the given incident locations. Also given are the resultant summed values (score) for each map point. A higher resultant score indicates a greater the probability that point contains the offender's anchor point.

Author(s)

Jamie Spaulding, Keith Morris

References

Ned Levine, CrimeStat IV: A Spatial Statistics Program for the Analysis of Crime Incident Locations (version 4.0). Ned Levine & Associates, Houston, TX, and the National Institute of Justice, Washington, DC, June 2013.

D Canter, T Coffey, M Huntley & C Missen. (2000). Predicting serial killers' home base using a decision support system. Journal of quantitative criminology, 16(4), 457-478.

Examples



#Using provided dataset for the Boston Strangler Incidents:
data(desalvo)
test <- neg_exp_profile(desalvo$lat, desalvo$lon, method = "CrimeStat")
g_map = sp::SpatialPixelsDataFrame(points = test[c("lons", "lats")], data = test)
g_map <- raster::raster(g_map)
# Assign a Coordinate Reference System for the Raster
raster::crs(g_map) <- sp::CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
# Define a Parula Color Pallete for Resultant Jeopardy Surface
library(leaflet) #for mapping the geographic profile
pal <- colorNumeric(pals::parula(200), raster::values(g_map),
    na.color = "transparent")
leaflet() %>%
    addTiles() %>%
    addProviderTiles('Esri.WorldTopoMap', group = 'Topo') %>%
    addAwesomeMarkers(lng = -71.07357, lat = 42.41322, icon =
        awesomeIcons(icon = 'home', markerColor = 'green'), popup = 'Residence') %>%
    addRasterImage(g_map, colors = pal, opacity = 0.6) %>%
    addLegend(pal = pal, values = raster::values(g_map), title = 'Score') %>%
    addCircleMarkers(lng = desalvo$lon, lat = desalvo$lat, radius = 4, opacity = 1,
        fill = 'black', stroke = TRUE, fillOpacity = 0.75, weight = 2,
        fillColor = "red")


JSSpaulding/rgeoprofile documentation built on Feb. 8, 2023, 7:06 p.m.