norm_profile: CrimeStat Normal Model for Geographic Profiling

View source: R/norm_profile.R

norm_profileR Documentation

CrimeStat Normal Model for Geographic Profiling

Description

An implementation of the normal decay model for serial crime analysis within 'CrimeStat'. This model assumes that there is a peak likelihood of the serial perpetrator's home base at some optimal distance from the crime incidents. The function rises in likelihood to that distance and then declines at an equal rate (both prior to and after the peak likelhihood) giving the symetrical normal distribution.

Usage

norm_profile(lat, lon, a = NULL, d_mean = NULL, sd = NULL, n = NULL)

Arguments

lat

a vector of latitudes for the crime incident series

lon

a vector of latitudes for the crime incident series

a

coefficient for the normal decay function. If NULL, the default value for 'a' is 29.5 (Levine 2013)

d_mean

mean distance. If NULL, the default value for 'd_mean' is 4.2 (Levine 2013)

sd

standard deviation of the distances. If NULL, the default value for 'sd' is 4.6 (Levine 2013)

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.

Examples



#Using provided dataset for the Boston Strangler Incidents:
data(desalvo)
test <- norm_profile(desalvo$lat, desalvo$lon)
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.