CRIME De-Coder’s cover photo
CRIME De-Coder

CRIME De-Coder

Business Consulting and Services

Customized consulting services, focused on CRIME ANALYSIS for POLICE AGENCIES.

About us

Customized consulting services, focused on CRIME ANALYSIS for POLICE AGENCIES. Andrew Wheeler, PhD consult@crimede-coder.com

Industry
Business Consulting and Services
Company size
1 employee
Headquarters
Raleigh
Type
Self-Owned
Founded
2023
Specialties
crime-analysis, predictive-analytics, process-automation, policing, data-science, workload-analysis, civil-litigation, and training

Locations

Employees at CRIME De-Coder

Updates

  • I need to keep my head down and get some work done (so maybe no posts next week). But for a sneak peak of one of things I am working on. Will be available soon in both epub and print -- stay tuned and spread the word. (Still seeking French copy-editor, let me know if interested!)

    • Translations of Data Science for Crime Analysis with python in Spanish and French.
  • Martin Bouchard and colleagues have a new paper out, *Untangling SNA: the use and underuse of social network analysis among crime analysts* https://lnkd.in/e7atE3JG They conduct interviews with crime analysts to discuss barriers to actually using social network analysis in their work. One of the barriers is software, and I know I am a bit of a broken record, but analysts should just be using python for so much more. Even if you want to use a GUI software to viz the network, knowing python for data manipulation to generate and filter the network can really trim down time for incorporating disparate data sources. (You figure out the code to do the workflow once, and then you have code to do it repeatedly over and over.)

    • Quote from SNA article on software barriers
  • I really enjoy Robert VerBruggen's writing, and here for the Manhattan Institute he has a piece on the common critiques of ShotSpotter. https://lnkd.in/ggRTzmf5 Here is the end conclusion quote: > ShotSpotter delivers on its promise of getting police to shooting scenes faster and boosting evidence recovery, but it increases officers’ workload and delivers crime benefits that are difficult to measure and may vary from place to place. > Nonetheless, solving one homicide is valuable, and preventing a homicide—whether by deterring gunplay, incapacitating a repeat offender, or saving a victim from bleeding out—is more valuable still. Even modest improvements in these outcomes could make GDT a worthwhile investment in dense cities with gun-violence problems, so long as they have the funds for the sensors, the staff to investigate alerts, and, ideally, a strong infrastructure such as a Crime Gun Intelligence Center and a Real-Time Crime Center to make use of the new information. Departments that lack the staffing or infrastructure to put ShotSpotter to use should focus primarily on developing those capabilities, which are important in and of themselves. I am not a big fan of the logic since it is a small proportion of the overall budget it is an easier sell, but he appropriately qualifies that and links to others who have differing opinions (including one of my own pieces). I would suggest everyone that follows me to follow Robert and his work at Manhattan, City Journal, etc.

    • Gun violence vs GDT sensor locations vs black pop share map in three cities.
  • When evaluating the efficacy of interventions to prevent gun violence, one of the factors you need to take into consideration is that gun violence is (thankfully) quite rare per person. The best predictive models for high risk of being involved in a shooting still only have a positive predictive probabilities of around 10%. https://lnkd.in/guSq8UjK What this means is that your intervention needs to treat at minimum 10 people to prevent 1 shooting. As most interventions are not going to be 100% effective (the norm in criminology is more like 20-50% for well vetted programs), more realistically you will need to treat 20-50 people *to prevent one shooting*. I go through cost and benefits example for the READI program in Chicago, which drops $60k per participant (cognitive behavioral therapy + case worker). To me this is impossible ROI from the get go, but if you use some of the value of a statistical life estimates (which in my opinion are highly suspect) you can come up with a positive ROI.

    • paragraph on cost-benefit of READI
  • View organization page for CRIME De-Coder

    4,123 followers

    One of the simple charts I suggest when evaluating predictive crime models is to rank order the predictions, and then on the X axis plot the percent of the sample, and the Y axis the cumulative number of events captured in those top prioritized areas (or people). https://lnkd.in/e7maCQGV This has analogies to quite a few different useful pieces of information: - can identify if the model can replicate Weisburd's law (5% of area with 50% of crime) - the PAI statistic (% crime/ % area), can be inferred, a good predictive model should easily beat Weisburd's law, which is 50%/5% = 10. - It is the same as a weighted ROC curve, so if it is a straight line, the model is no better than guessing at random. Often times higher proportions do not matter, you only care about recall in a fairly small slice, e.g. in the top 100 how much of the crime events I am interested in can I capture.

    • Cumulative number of crimes captured in K areas
    • Proportion of area vs Proportion of crimes captured.
  • A pro-tip when doing data science applications that take along time to run certain inputs is to cache your intermediate results. I often have python functions that look like this: import os file_path = "cached_data.csv.zip" if os.path.exists(file_path):   print('loading in data')   data = pd.read_csv(file_path) else:   data = ... function that takes along time to create data ...   data.to_csv(file_path,index=False) And for regular pipelines, you can also get the time the cached file was modified via `os.path.getmtime(file_path)`. So if you want you can see how old the cache is, and then redo the calculation if it is too old as well. You can see an application of this when calculating drive time distances in my crimepy library to create patrol districts, https://lnkd.in/ejJm9DwA.

    • Patrol districting in python with the crimepy library
  • I work with Scott Jacques on making open source research and tools more broadly accessible to everyone. If you are interested in joining us, consider becoming a member of CrimConsortium. https://lnkd.in/eUmAdJTS The current situation in which work is behind academic paywalls is mostly absurd, totally unnecessary, and a great detriment to the advancement of science in our field. Myself, Scott, and others in this group are working to change that. Joining as a paying member is nice to help keep the lights on, but even if you do not want to pay, if you enjoy my posts here this is a group you will want to be a part of. Open science is without a doubt in my mind a necessary component to ensure our scientific work is both rigorous and impactful.

  • In this new blog post, I show how to use python to record your keyboard and mouse movements. The idea is if you have some desktop software that you are repeatedly conducting the same motions, you can record your movements and clicks. This set of code you can then save the events to a file, and replay them whenever you want. https://lnkd.in/e3XhEnCU It also shows modifying the input events. Say you needed to input the current date in a form, you can just modify the event dataframe with the new information that you want. If it is a task you do over and over again, this is one approach to just have the machine do the work for you.

  • In my work with Jerry on the WDD statistic, we leave it up to the analyst to figure out what a reasonable control area is. Another approach is to use a data based approach to construct areas that are good control areas. One way to do that is via *microsynthetic controls*. Imagine you have 100 areas, and you did your treatment in 5 areas, it would construct weights so the other 95 areas match on various characteristics, like prior crime counts, demographics, land use, etc. This paper, with Eric Piza and colleagues, shows one example of that, evaluating a police sub-station that was opened in a business improvement district in Newark. It resulted in mixed findings, some reductions in MV thefts and burglary, and some evidence of displacement for robberies and burglary of motor vehicle in the catchment areas. https://lnkd.in/eWKMNYzb (Recently made open access via Arnold Ventures.) In real life, conducting rigorous outcome evaluations are difficult, as most scenarios we cannot conduct a simple randomized control trial. If you have need for a statistician to help you out with such an analysis, feel free to get in touch.

    • Micro synth plot showing treated vs control and permuation tests

Similar pages

Browse jobs