Problem Definition

Input: A collection of New York City Yellow Cab taxi trip records spanning January 2009 to June 2015. The source data may be clipped to an envelope encompassing the five New York City boroughs in order to remove some of the noisy error data (e.g., latitude 40.5N – 40.9N, longitude 73.7W – 74.25W).


Output: A list of the fifty most significant hot spot cells in time and space as identified using the Getis-Ord  statistic.

where is the attribute value for cell ,  is the spatial weight between cell  and ,  is equal to the total number of cells, and:

The  statistic is a z-score, so no further calculations are required.

The neighborhood for each cell in the space-time cube is established by the neighbors in a grid based on subdividing latitude and longitude uniformly. This spatial neighborhood is created for the preceding, current, and following time periods (i.e., each cell has 26 neighbors). For simplicity of computation, the weight of each neighbor cell is presumed to be equal.

Further details can be found in the original paper by Ord and Getis:

Ord, J.K. and A. Getis. 1995. "Local Spatial Autocorrelation Statistics: Distributional Issues and an Application" in Geographical Analysis 27(4).

Constraints:  Time and space should be aggregated into cube cells as specified on command line . Together, this will form a space-time cube.

Description: Using spatial statistics to identify statistically significant clusters or outliers in spatial data is a well understood analytic approach employed by GIS professionals. Spatial statistics is required when making decisions – e.g., if we are 95% sure that the levels measured in this area exceed a regulatory threshold, then we must respond by doing such and such. When identifying statistically significant clusters (often termed Hot Spot Analysis), a very commonly used statistic is the Getis-Ord  statistic. It provide a z-score and p-values that allow users to determine where features with either high or low values are clustered spatially. It is important to note that this statistic can be applied to both the spatial and spatio-temporal domains; in this competition, we are focused on the spatio-temporal Getis-Ord statistic.

Compounding the problem of identifying hot spots, we now live in a world where observational data is being collected are an ever increasing rate. For example, large numbers of businesses and organizations are actively tracking their mobile assets. This data is often considerably valuable to the organizations, both from a real-time analytic perspective (e.g., geofencing), as well as in a after the fact batch analysis. In order to handle these large collections of observational data (e.g., numbering in the billions), distributed processing techniques are required. Over the past few years, interest in the Apache Spark framework has exploded, both in government, industry, and academia. Spark can readily be installed on clusters of commodity hardware, and offers a sophisticated software platform for creating scalable distributed algorithms using functional programming techniques and languages.

Assumptions: The programs will be tested using a cluster of twenty five commodity-level PCs (3GHz, quad core), each equipped with 24 GB of RAM and 3 TB of disk storage. The program will run on top of the Apache Spark open source framework. The program will be implemented using Java, Python, or Scala using functional programming techniques. Scala is the most natural and preferred language for this challenge.

Evaluation Rules: Evaluation will be done using two metrics: (a) correctness of the result (do the identified spatio-temporal hot spots match those returned by the reference implementations), and (b) computation time when running against the specified input dataset across the cluster of twenty five PCs.

Representing a hotspot as a single spatio-temporal cell in the space-time cube, we evaluate correctness using the Jaccard similarity coefficient of the reference result and the candidates result for the subset of the top fifty. This will in effect ignore small perturbations in the ordering of the top results. Additionally, we evaluate the speed relative to the fastest submission and calculate a final score consisting of two thirds correctness, and one third performance. In case of unclear score situations (e.g., very precise, but slow or very fast, but imprecise), we perform a manual review process inside the Cup committee to identify the final ranking.

where  is the reference result set,  is the submission result set,  is the Jaccard similarity coefficient,  is the execution time of the fastest submission, and  is the execution time of the submission.