All blogs / Society / politics / economy
Andrew Wheeler
Crime Analysis and Crime Mapping
- Posts
- 584 from 15 Dec 2011 to 14 Oct 2026
- Posting
- weekly (30 in the last year)
- Kind
- personal blog
- Feed
- https://andrewpwheeler.com/feed/
2026 26
- Why academics should self publish textbooks
- VerusCite is now $1, Crime De-Coder Store updates, CCJ Homicide Report, and some more AI papers
- Adventures in using AI to write papers
- Faking synthetic control estimates
- Join CrimConsortium, ASEBP submissions open, VerusCite privacy, NACA Course
- Crime De-Coder and VerusCite Updates
- License Plate Reader Searches Should Require a Warrant
- VerusCite: checking academic articles for hallucinations
- Notes on document processing with LLMs
- Podcast with Jeff Asher, AI blog posts
- AI writing is better than no writing
- Notes on Valuing the Cost of Crime
- How long to conduct your experiment: Talk at ASEBP
- xAI voice cloning API
- Pangram is good
- Gathering interest in tech courses
- LinkedIn Premium Does Not Boost your Posts
- Job Advice Resources page
- The race to the bottom with AI tools
- Policing Scholars should join ASEBP
- Interview on LEAP about LLMs for Mortals
- Stop Teaching R. Teach Python.
- Using Claude Code to help me write
- Some notes on the unreliability of LLM APIs
- Large Language Models for Mortals book
- Part time product design positions to help with AI companies
2025 21
- Year in Review 2025 and AI Predictions
- Advice for crime analyst to break into data science
- Why I like working at Gainwell
- What to show in your tech resume?
- I translated my book for $7 using openai
- Recording your mouse and keyboard with python
- I scraped the Crime solutions site
- Recommend reading The Idea Factory, Docker python tips
- Deep research and open access
- Reloading classes in python and shared borders
- The difference between models, drive-time vs fatality edition
- Some notes on project management
- Using DuckDB WASM + Cloudflare R2 to host and query big data (for almost free)
- Follow up on Reluctant Criminologists critique of build stuff
- Build Stuff
- AMA OLS vs Poisson regression
- Using Esri + python: arcpy notes
- Some notes on ESRI server APIs
- LinkedIn is the best social media site
- How much do students pay for textbooks at GSU?
- The story of my dissertation
2024 30
- Notes on making line plots in matplotlib
- Bitcoin, Ethereum, and Axon
- Identifying excess rounding
- Year in Review 2024
- Question Sets and All Paths
- Suits, Money Laundering, and Linear Programming
- Some things work
- GenAI is not a serious solution to California’s homeless problem
- Types of websites and trade-offs
- Stacking and clustering matplotlib bar charts
- Hillbilly Lament
- Aoristic analysis, ebooks vs paperback, website footer design, and social media
- Reducing folium map sizes
- LinkedIn posting and link promotion: impression vs reality
- Using GenAI to describe charts for reports
- Wake LP talk on LPRs and javascript hacks in WooCommerce
- Some notes on self-publishing a tech book
- My word template for Quarto
- Conformal Sets Part 2, Estimating Precision
- Conformal Sets and Setting Recall
- Notes on MMc queues
- New preprint and Monitoring Time Between Events
- Power for analyzing Likert items
- Some musings on plagiarism
- Grabbing the NHAMCS emergency room data in python
- Matching mentors to mentees using OR-tools
- Poisson designs and Minimum Detectable Effects
- Harmweighted hotspots, using ESRI python API, and Crime De-Coder Updates
- Getting started with github notes
- Recoding America review, Data Science CV Update, Sworn Dashboard
2023 46
- Year in Review 2023: How did CRIME De-Coder do?
- Won NIJ competition on surveys
- Sentence embeddings and caching huggingface models in github actions
- Forecasts need to have error bars
- The sausage making behind peer review
- Fitting a gamma distribution (with standard errors) in python
- AMA: Advice on clustering
- Why give advice?
- Fitting beta binomial in python, Poisson scan stat in R
- Survey duplicates and other stuff
- Synthetic control in python: Opioid death increases in Oregon and Washington
- Soft launching tech recruiting
- GUI Tool to download Google Streetview Imagery
- Security issues with sending ChatGPT sensitive data
- Querying OSM places data in python
- Downloading Police Employment Trends from the FBI Data Explorer
- Age-Period-Cohort graphs for suicide and drug overdoses
- Too relaxed? Naive Bayes does not improve recidivism forecasting in the NIJ challenge
- Some notes on synthetic control and Hogan/Kaplan
- Youtube interview with Manny San Pedro on Crime Analysis and Data Science
- Setting conda environments in crontab
- Make more money
- Some adventures in cloud computing
- Javascript apps and ASEBP update
- Dashboards are often not worth the effort
- Criminology not on the brink
- Updates on CRIME De-Coder and ASEBP
- Hacking folium for nicer legends
- Saving data files in wheel packages
- This one simple change will dramatically improve reproducibility in journals
- Machine learning models and the market for lemons
- A statistical perspective on year-to-date metrics
- Ask me anything: Advice for learning statistics?
- ASEBP blog posts, and auto screenshotting websites
- An alt take on opioid treatment coverage in North Carolina
- The serenity prayer and being a senior developer
- Crime De-Coder LLC Website
- Won the algae bloom prediction competition
- Getting access to paywalled newspaper and journal articles
- Scorpion was probably not doing hot spots policing
- ptools R package update
- Setting up pyspark to run sql tests
- Web scraping police data using selenium and python
- Using quantile regression to evaluate police response times
- Where are they now? Job outcomes for recent SUNY crim Phds
- Using docker to play with postgres
2022 50
- Startup scripts on windows
- Handling errors in python and R
- Counting lines of code
- Random notes, digital art, and pairwise comparisons is polynomial
- Preprint: Analysis of LED street light conversions on firearm crimes in Dallas, Texas
- NIJ grants funding gun violence research
- Injury rates at Amazon warehouses
- New paper: An Open Source Replication of a Winning Recidivism Prediction Model
- Using IO objects in python to read data
- Hot spots of crime in Raleigh and home buying
- A new series: The Criminal Justician
- Hyperparameter tuning for Random Forests
- Surpassed 100k views in 2022
- Outputs vs Outcomes and Agile
- Column storage for wide datasets
- Legends in python
- Checking for Stale RSS feeds in Python
- Gun Buy Back Programs Probably Don’t Work
- My experience with remote work
- Using weights in regression examples
- Assessing Categorical Effects in Machine Learning Models
- My journey submitting to CRAN
- Job advice for entry crime analysts
- Using linear programming to assess spatial access
- Estimating Criminal Lifetime Value
- Over 10 years of blogging
- Some pandas notes (part 1, EDA)
- Staggered Treatment Effect DiD count models
- Getting census data over time
- The limit on the cost efficiency of gun violence interventions
- Building wheel files in github actions
- Home buying and collective efficacy
- Fitting a plateau effects model in scipy
- State dependence and trajectory models
- Some peer review ideas
- Managing R environments using conda
- Some more github action tricks
- Downloading Social Vulnerability Index data
- I have no clue how to interview for data scientists
- Use circles instead of choropleth for MSAs
- Simulating data with numpy and scipy
- Downloading geo files from Census FTP using python
- Running files locally in SPSS
- An update on the WaPo Officer Involved Shooting Stats
- Cointegration analysis of Ethereum and BitCoin
- Prediction Intervals for Random Forests
- Optimal and Fair Spatial Siting
- Buffalo shootings paper published
- Power and bias in logistic regression
- Using Natural Frequencies to Reason about Tests
2021 80
- Blogging Year in Review 2021
- Learning a fair loss function in pytorch
- genrules: using a genetic algo to find high risk cases
- Splines in Stata traj models
- Regression Discontinuity Designs
- How to interpret the Area Under the Curve (AUC) stat
- Text analysis, alt competition sites, and ASC
- pre-commit hooks and github actions
- Using precision to plan experiments (SPSS)
- ptools feature engineering vignette update
- Paper retraction and exemplary behavior in Crim
- p-values with large samples (AMA)
- Generating multiple solutions for linear programs
- Precision in measures and policy relevance
- The Big 2020 Homicide Increase in Context
- Forum posts on Stackoverflow sites
- Extending sklearns OrdinalEncoder
- Musings on Project Organization, Books and Courses
- Using Jupyter Notebooks to make nice README’s for GitHub
- Spatial consistency of shootings and NIJ recid working papers
- Potential IT student projects with police? (AMA)
- Reversion in the tech stack and why DS models fail
- ptools R package
- Incoherence in policy preferences for gun violence reduction
- Chunking it up in pandas
- My team is hiring
- Similarities between crime and health insurance data
- Solving the P-Median model
- Difference in independent effects for multivariate analysis (SPSS)
- Variance of leaderboard metrics for competitions
- How to interpret one sided tests for coefficient differences?
- Weighting machine learning models
- Prelim results for NIJ Recidivism Challenge
- Creating automated reports using python and Jupyter notebooks
- Spatial analysis of NYC Shootings using the SPPT
- Spatial sample size suggestions for SPPT analysis
- CCTV and clearance rates paper published
- Marginal effects vs Wald tests (Stata)
- Bias and Transparency
- Some microsynth notes
- PCA does not make sense after one hot encoding
- Using google places API in criminology research?
- Wald tests via statsmodels (python)
- Ask me anything
- aggregate retention/churn models in python
- Open source code projects in criminology
- KDE plots for predicted probabilities in python
- Using simulations to show ROI for predictive models in python
- Fitting a pytorch model
- Academia and the culture of critiquing
- ROC and calibration plots for binary predictions in python
- Python f string number formatting and SPSS break long labels
- Some ACS download helpers and Research Software Papers
- Costs and Benefits and CrimeSolutions.gov
- Down the rabbit hole with R functions
- Minimum detectable effect sizes for place based designs
- Using Random Forests in ArcPro to forecast hot spots
- Health Insurance Claims Data via HMS Data Sharing for Researchers
- The value of a PhD
- Updated SPSS Chart Template (V26) and Chart Notes
- Comparing the WDD vs the Wilson log IRR estimator
- Crime analysis dashboards in Tableau
- Git excluding specific files when merging branches
- How arrests reduce near repeats: Breaking the Chain paper published
- Clumpy hotspots
- Simulating Group Based Trajectories (in R)
- Weekly Error Bar Chart in Tableau
- Podcast and Video Shout Outs
- The WDD test with different area sizes
- Transforming predicted variables in regression
- Reproducible research and code review for journals
- Geocoding the CMS NPI Registry (python)
- The spatial dispersion of NYC shootings in 2020
- Filled contour plot in python
- Buffers and hospital deserts with geopandas
- A Tableau walkthough: Seasonal chart
- My online course lab materials and musings about online teaching
- Checking a Poisson distribution fit: An example with officer involved shooting deaths WaPo data (R functions)
- The WDD test with different pre/post time periods
- New book: Micro geographic analysis of Chicago homicides, 1965-2017
2020 55
- Publishing in Peer Review?
- A changepoint logistic model in pystan
- Graphing Spline Predictions in SPSS
- A failed attempt at optimal search paths
- Lit reviews are (almost) functionally worthless
- Changepoints in CCTV Effects
- Confidence intervals around proportions
- Outliers in Distributions
- Mapping attitudes paper published
- Amending the WDD test to incorporate Harm Weights
- CrimCon Roundtable: Flipping a Criminal Justice PhD to an alt-academic Data Science Career
- Regression with Simple Weights
- A latent variable approach to RTM using hidden layers in deep learning
- A bunch of random shout outs
- Overview of DataViz books
- From a criminologist, we should restore voting rights
- Open Source Criminology Related Network Datasets
- Using the Google Vision and Streetview API to Explore Hotspots
- Incorporating treatment non-compliance into call-ins
- Simulating runs of events
- Street Network Distances and Correlations
- Recent Papers on Hot Spots of Crime in Dallas
- A linear programming example for TURF analysis in python
- CrimRxiv, Alt-Journal Contributions, and Mike Maltz’s Retrospective
- New paper out: Trauma Center Drive Time Distances and Fatal Outcomes among Gunshot Wound Victims
- Discrete time survival models in python
- Making smoothed scatterplots in python
- Making aoristic density maps in R
- Deleted Twitter Account
- RTM Deep Learning Style
- Notes on making scatterplots in matplotlib and seaborn
- Notes on making Leaflet maps in R
- Creating high crime sub-tours
- Using Steiner trees to select a subgraph of interest
- Histogram notes in python with pandas and matplotlib
- An example of soft constraints in linear programming
- GPU go brrr: Estimating OLS (with standard errors) via deep learning
- Some more peer review musings
- Adjusting predicted probabilities for sampling
- Creating a basemap in python using contextily
- Resources of interest for criminologists and crime analysts
- Using Association Rules to Conduct Conjunctive Analysis
- An intro to linear programming for criminologists
- 300 blog posts and public good criminology
- Conjoint Analysis of Crime Rankings
- Admin data should be used more often in policing research
- Notes on matplotlib and seaborn charts (python)
- Using pytorch to estimate group based traj models
- Nearby Analysis Example (Excel)
- Co-author networks in Criminology
- The Failed Idea Bin: Temporal Aggregation and the Crime/Stop Relationship
- Some additional plots to go with Crime Increase Dispersion
- Setting the threshold for bail decisions
- Statement on recent officer involved shooting research
- Balancing False Positives
2019 13
- Using regularization to generate synthetic controls and conformal prediction for significance tests
- Making caterpillar plots for random effects in SPSS
- Knowing when to fold them: A quantitative approach to ending investigations
- Actively monitoring place based crime interventions
- Optimal treatment assignment with network spillovers
- Making a hexbin map in ggplot
- Making nice margin plots in Stata
- Finding the dominant set in a network (python)
- David Bayley
- Why I publish preprints
- Plotting Predictive Crime Curves
- Downloading your PDFs from CiteULike using python and selenium
- Weighted buffers in R
2018 28
- My Year Blogging in Review – 2018
- Reasons Police Departments Should Consider Collaborating with Me
- CAN SEBP webcast on predictive policing
- Monitoring Use of Force in New Jersey
- Projecting spatial data in Python and R
- New preprint: Allocating police resources while limiting racial inequality
- The random distribution of near-repeat strings
- New paper: A simple weighted displacement difference test to evaluate place based crime interventions
- Aoristic analysis for hour of day and day of week in Excel
- American Community Survey Variables of Interest to Criminologists
- Data sources for crime generators
- Sorting rates using empirical Bayes
- The length it takes from submission to publication
- Testing changes in short run crime patterns: The Poisson e-test
- Some more testing coefficient contrasts: Multinomial models and indirect effects
- Drawing Google Streetview images down an entire street using python
- Work on Shootings in Dallas Published
- Making interactive plots with R and Plotly
- Digg reader is shutting down, giving Twitter a try
- Paper published: The effect of housing demolitions on crime in Buffalo, New York
- New working paper: Modeling the Spatial Patterns of Intra-Day Crime Trends
- Paper published: Evaluating Community Prosecution Code Enforcement in Dallas, Texas
- New preprint: The accuracy of the violent offender identification directive (VOID) tool to predict future gun violence
- New preprint: Testing for Similarity in Area-Based Spatial Patterns: Alternative Methods to Andresen’s Spatial Point Pattern Test
- New preprint: A Gentle Introduction to Creating Optimal Patrol Areas
- Remaking a clustered bar chart
- Come work with me! And advice on applying to grad school
- My Year Blogging in Review – 2017
2017 33
- Pooling multiple outcomes into one regression equation
- New course in the spring – Crime Science
- New working paper: Mapping attitudes towards the police at micro places
- Monitoring homicide trends paper published
- Creating an animated heatmap in Excel
- Using FILE HANDLE in SPSS
- Presentation at ASC: Crime Data Visualization for the Future
- My Protips for College
- Talk on Scholars Day – Crime in Space and Time
- Some notes on PChange – estimating when trajectories cross over time
- Notes on using UCR data for class projects
- Dropbox links need updating
- Graphs and interrupted time series analysis – trends in major crimes in Baltimore
- New working paper: The effect of housing demolitions on crime in Buffalo, New York
- Geocoding with census data and the Census API
- IACA Conference 2017 workshop: Monitoring temporal crime trends for outliers (Excel)
- Don’t include temporal lags of crime in cross-sectional crime models
- Paper: The Effect of 311 Calls for Service on Crime in D.C. at Microplaces published
- Testing the equality of coefficients – Same Independent, Different Dependent variables
- New working paper – Monitoring volatile homicide trends across U.S. cities
- Communities and Crime
- SPSS Statistics for Data Analysis and Visualization – book chapter on Geospatial Analytics
- My solution for grade inflation
- Identifying near repeat crime strings in R or Python
- Using the exact reference distribution for small sample Benford tests
- New working paper: Choosing Representatives to Deliver the Message in a Group Violence Intervention
- Scraping Meth Labs with Python
- Paper on Roadblocks in Buffalo published
- Much ado about nothing: Overinterpreting volatility in homicide rates
- Side by side charts in SPSS
- Heatmaps in SPSS
- New undergrad course – Communities and Crime
- Blogging in Review – 2016
2016 38
- Spatial join points to polygons using Python and SPSS
- Review of Trees, maps, and theorems: Effective Communication for rational minds by Jean-luc Doumont
- Downloading and reading in American Community Survey Data: Python and SPSS
- Paper – Replicating Group Based Trajectory Models of Crime at Micro-Places in Albany, NY published
- ASC 2016 – Quantifying the Local and Spatial Effects of Alcohol Outlets on Crime
- Some inverse distance weighting hacks – using R and spatstat
- A principled approach to conducting subgroup analysis
- My endorsement for criminal justice at Bloomsburg University
- Testing the equality of two regression coefficients
- Group based trajectory models in Stata – some graphs and fit statistics
- Writing equations in Microsoft Word
- Added code snippets page
- Regression to the mean – a tale of change scores
- New course – Advanced Methods in Criminology
- Roadblocks in Buffalo update (plus more complaints about peer-review!)
- Plotting panel data with many lines in SPSS
- In Dallas
- Comparing samples post-matching – some helper functions after FUZZY (SPSS)
- Weekly and monthly graphs for monitoring crime patterns (SPSS)
- Sentence length in academic articles
- Trajectories are not real
- Preprint – A Quasi-Experimental Evaluation Using Roadblocks and Automatic License Plate Readers to Reduce Crime in Buffalo, NY
- Some Stata notes – Difference-in-Difference models and postestimation commands
- Jane Jacobs on Neighborhoods
- Neighborhoods in Albany according to Google
- Shape, color, and pattern constants in SPSS charts
- Posting my peer reviews on Publons and a few notes about reviewing
- Using the Google Geocoding API with Python
- Presentation at ACJS 2016
- Some GIS data scraping adventures: Banksy graffiti and gang locations in NYC
- On overlapping error bars in charts
- Using and Making Cumulative Probability Charts
- Adding a command button to a toolbar in ArcGIS
- Making and Exploring Crime Networks (Access and Excel)
- Maps in inline GPL statements (SPSS)
- Dropbox links blocked in China – just email me
- Turning SPSS data into Python data
- Blogging in review 2015
2015 48
- Using Python to grab Google Street View imagery
- Testing day-of-week crime randomness paper published
- The spatial consistency of bar locations – Buffalo 1901 vs. 2015
- Keeping it simple: Viz. mass shooting definitions
- License plate readers and the trade off in privacy
- Spatial analysis course in CJ (graduate) – Spring 2016 SUNY Albany
- Accepted position at University of Texas at Dallas
- Presentation at ASC 2015
- The spatial clustering of hits-vs-misses in shootings using Ripley’s K
- Poster presentations should have a minimum font size of 25 points
- One sided line buffers in R using rgeos
- Some plots to go with group based trajectory models in R
- Online geocoding in R using the NYS GIS server
- Using KDTree’s in python to calculate neighbor counts
- Music and distractions in the workplace
- Using local Python objects in SPSSINC TRANS – examples with network statistics
- Custom square root scale (with negative values) in ggplot2 (R)
- Laplacian Centrality in NetworkX (Python)
- Venn diagrams in R (with some discussion!)
- Transforming KDE estimates from Logistic to Probability Scale in R
- New working paper: What We Can Learn from Small Units of Analysis
- Some ad-hoc fuzzy name matching within Police databases
- Tables and Graphs paper rejection/update – and on the use of personal pronouns in scientific writing
- Presentation at IACA 2015: An Exploratory Network Analysis of Hot People and Places
- Favorite maps and graphs in historical criminology
- How wide to make the net in actuarial tools? (false positives versus false negatives)
- Fuzzy matching in SPSS using a custom python function
- Randomness in ranking officers
- Passing arguments to SPSSINC TRANS (2)
- SPSS Predictive Analytics Blog
- New paper: The Effect of 311 Calls for Service on Crime in D.C. At Micro Places
- Passing arguments to SPSSINC TRANS
- Extracting items from SPSS tables using Python
- Cartography and GIS special issue on Crime Mapping
- Some more on Network distances vs Geographic distances intra-city
- Using the New York State Online Geocoding API with Python
- New paper: Replicating Group-Based Trajectory Models of Crime at Micro-Places in Albany, NY
- ROC and Precision-Recall curves in SPSS
- Emailing with Python and SPSS
- String substitution in Python continued
- String substitution in Python
- Dissertation Defense
- Continuous color ramps in SPSS
- Some examples of using DO REPEAT in SPSS
- New paper: Tables and graphs for monitoring temporal crime patterns
- Labeling tricks in SPSS plots
- Translating between the dispersion term in a negative binomial regression and random variables in SPSS
- 2014 Blog stats, and why Blogging >> Articles
2014 44
- Treemaps in SPSS
- Repeating Charts in SPSS for unique IDs
- Solving problems as a metaphor for scientific writing
- Musings on Comments
- Automating tasks in SPSS using production jobs
- Using the Google Distance API in SPSS – plus some EDA of travel time versus geographic distance
- Big data problems for Criminal Justice
- Using funnel charts for monitoring rates
- Dissertation Draft
- Stacking Intervals
- Quantifying racial bias in peremptory challenges
- Turning data from Python into SPSS data
- Presentation at IACA 2014 – Making Field Stops Smart
- Rejected!
- Log Scaled Charts in SPSS
- Understanding Uncertainty – crime counts and the Poisson distribution
- Using regular expressions in SPSS
- Estimating group based trajectory models using SPSS and R
- New paper – Testing for Randomness in Day of Week Crime Sprees with Small Samples
- Aggregating values in time series charts
- Using Google Fusion Tables to make some maps!
- Smoothed regression plots for multi-level data
- Jittered scatterplots with 0-1 data
- Poisson regression and crazy predictions
- What is up with 3d graphics for book covers?
- Learning to write badly in the social sciences
- In (slight) defense of word clouds
- Using the Google Places API in Python
- Some more value-by-alpha maps for D.C. Census Blocks
- Taking account of the baseline in kernel density maps using CrimeStat
- Finding subgroups in a graph using NetworkX and SPSS
- Plotting interactions and non-linear predictions
- Using SPSS’s SIMPLAN to generate fake data
- The mad scientist workflow: Some examples of using python and R within SPSS
- The baseline in histograms & outliers
- A critique of slopegraphs
- Using Python to geocode data in SPSS
- A shout out for ScraperWiki
- Article: Viz. techniques for JTC flow data
- Visualizing multi-level data using ellipses
- Working with American Community Survey Data in SPSS
- Negative Binomial regression and predicted probabilities in SPSS
- Quick SPSS tip: Suppressing output
- My Blogging in Review in 2013
2013 40
- Network Xmas Tree in SPSS
- A Festschrift (blog post) for Lord, his paradox and Novick’s prediction
- A Comment on Data visualization in Sociology
- Odds Ratios NEED To Be Graphed On Log Scales
- Equal Probability Histograms in SPSS
- Stacked (pyramid) bar charts for Likert Data
- Sparklines for Time Interval Crime Data
- Cyclical color ramps for time series line plots
- Online Crime Mapping for Troy PD
- Defending Prospectus
- How art can influence info viz.
- Hanging rootograms and viz. differences in time series
- Presenting at ASC this fall
- Using circular dot plots instead of circular histograms
- Querying Graph Neighbors in SPSS
- Quick SPSS Tip: Cleaning up irregular characters in strings
- Making an Edge List in SPSS
- Some discussion on circular helio bar charts
- An example of using a MACRO to make a custom data transformation function in SPSS
- Restricted cubic splines in SPSS
- Viz. JTC Flow lines – Paper for ASC this fall
- Viz. weighted regression in SPSS and some discussion
- The week at Stackexchange 5/21/2013 Edition
- Calendar Heatmap in SPSS
- A brief intro on building Custom Dialogs in SPSS
- The week at Stackexchange 4/28/13 Edition
- Fluctuation diagrams in SPSS
- Spineplots in SPSS
- Some theory behind the likability of XKCD style charts
- My posts on CrossValidated Blog
- Some notes on single line charts in SPSS
- Why I feel SPSS (or any statistical package) is better than Excel for this particular job
- Update for Aoristic Macro in SPSS
- The Junk Charts Challenge: Remaking a great line chart in SPSS
- Informational Asymmetries in my role as Crime Analyst
- Some random SPSS graph tips: shading areas under curves and using dodging in binned dot plots
- Interval graph for viz. temporal overlap in crime events
- Using sequential case processing for data management in SPSS
- Aoristic analysis with SPSS
- My experience blogging in 2012
2012 30
- Some more about black backgrounds for maps
- The leaning tower optical illusion: Is it applicable to statistical graphics?
- Using the edge element in SPSS inline GPL with arbitrary X,Y coordinates
- Presentation at ASC – November, 2012
- JQC paper on the moving home effect finally published!
- Using Bezier curves to draw flow lines
- CJ blog watch! Any ones I’m missing?
- Making value by alpha maps with ArcMap
- When should we use a black background for a map?
- Why great circle lines look nicer in flow maps
- Visualization techniques for large N scatterplots in SPSS
- Not participating in SPSS google group anymore, recommend using other SPSS forums
- Dressing for success in academic interviews
- Bean plots in SPSS
- Comparing continuous distributions of unequal size groups in SPSS
- Beware of Mach Bands in Continuous Color Ramps
- Co-maps and Hot spot plots! Temporal stats and small multiple maps to visualize space-time interaction.
- Connect with me!
- Making a reproducible example in SPSS
- Reference lines for star plots aid interpretation
- A quick SPSS tip: Using vertical selection in Notepad++ to edit printed MACRO statements
- Avoid Dynamite Plots! Visualizing dot plots with super-imposed confidence intervals in SPSS and R
- Some tips on keeping up with contemporary scholarly research
- Using SPSS as a calculator: Printing immediate calculations
- Example (good and bad) uses of 3d choropleth maps
- Crime Mapping article library at CiteULike
- Another example use of small multiples, many different point elements on a map
- SPSS resources at the Cross Validated tag-wiki
- Hacking the default SPSS chart template
- Crime Mapping Friendly Geography Journals