I am an aspiring economist interested in topics at the intersection of urban/real estate economics, history and philosophy of social science, and the utilization of a variety of AI/ML methods in creative ways to answer questions along those lines.
Academic Background
B.A. in Economics (Carl H. Lindner College of Business, University of Cincinnati, Cincinnati, OH)
B.A. in Mathematics (College of Arts & Sciences, University of Cincinnati, Cincinnati, OH)
M.Ed. in Mathematics Education (University of Notre Dame, Notre Dame, IN)
Ph.D. in Economics (Carl H. Lindner College of Business, University of Cincinnati, Cincinnati, OH)
Professional Background
Currently, I am a PhD student in economics at the Lindner College of Business. Here, I am a Wolfgang-Mayer fellow, which is a great honor. I have worked in a variety of Data Science-adjacent roles, most recently at the OKI Regional Council of Governments performing geospatial analysis. I have experience and interests in:
Geospatial analysis
LLM integration
Code assistance
Data cleaning
Image analysis
Time series analysis
Historically-aware social science
Experience with R/Analytical Software
Most of the above work has been performed with R, though I also have experience working with Python for natural language processing and mathematical analysis (NTLK, scipy).
Part 2: Importing Data
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.2 ✔ tibble 3.3.0
✔ lubridate 1.9.4 ✔ tidyr 1.3.1
✔ purrr 1.1.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Rows: 748 Columns: 5
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): Class
dbl (4): Recency, Frequency, Monetary, Time
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Rows: 15155 Columns: 40
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (34): INSTANCEID, INCIDENT_NO, DATE_REPORTED, DATE_FROM, DATE_TO, CLSD, ...
dbl (6): UCR, LONGITUDE_X, LATITUDE_X, TOTALNUMBERVICTIMS, TOTALSUSPECTS, ZIP
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Descriptive statistics for each data framedata_describe <-tribble(~data_type, ~num_cols, ~num_rows, ~ missing_vals,"blood", blood_data %>%ncol(), blood_data %>%nrow(), sum(is.na(blood_data)),"pdi", pdi_data %>%ncol(), pdi_data %>%nrow(), sum(is.na(pdi_data)))# basic observationalprint(data_describe)