The total R script include 3 main data.frame. 1: Basic data.frame: “crimedf”. The sample crimedf is a data.frame with 2000 obs. of 15 varibables. It recorded the date, time, crime type, location, description, district, etc. Most of the variable are categorical, and each variables contains about 200-700 different types. 2. Time series data.frame: “datedf”. From “crimedf”, contains Crime Date, Crime Time, Crime count, and I added extracted “Year”, “Month”,“Weekday” as variables. 3. Map data.fram: “mapdf”. Contains only longitude and lagitude of crime. According to the 3 data.frame, we go 4 steps: Data Cleaning,Explanatory analysis(summary), Exploratory Data Analysis(location and time), Advanced Map plot by ggmap & maps package.
data <- read.csv("BPD_Part_1_Victim_Based_Crime_Data.csv")
set.seed(123)
crime <- data[sample(nrow(data), 2000),]
crimedf <- data.frame(crime)
crimedf$Inside.Outside[crime$Inside.Outside == "Inside"] <- "I"
crimedf$Inside.Outside[crime$Inside.Outside == "Outside"] <- "O"
Before visulized data infomation, a explanatory analysis should be done for a basic image of the raw data.
Reference: Top 50 ggplot visualization, http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html#Time%20Series%20Plot%20From%20a%20Time%20Series%20Object
library(ggplot2)
library(RColorBrewer)
var <- crimedf$Description
nrows <- 10
df <- expand.grid(y = 1:nrows, x = 1:nrows)
categ_table <- round(table(var) * ((nrows*nrows)/(length(var))))
df$category <- factor(rep(names(categ_table), categ_table))
ggplot(df, aes(x = x, y = y, fill = category)) +
geom_tile(color = "black", size = 0.5) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0), trans = 'reverse') +
scale_fill_brewer(type = "seq", palette = "Set3", direction = 1) +
ggtitle("Waffle Chart of Crime Type in Baltimore") + xlab(" ") + ylab(" ")
Waffle Chart demonstrate clearly on categorical variables. In this Chart, we can tell from color that pink, blue, and grey are the top 3 crime types in Baltimore, which refers to: Larceny, Burglary, Laceny from auto.
library(ggplot2)
library(RColorBrewer)
pie <- ggplot(crimedf, aes(x = "", y=crime$Total.Incidents, fill = factor(crimedf$District))) +
geom_bar(width = 1, stat = "identity") +
scale_fill_brewer(type = "seq", palette = "Set3", direction = 1) +
theme(axis.line = element_blank(),
plot.title = element_text(hjust=0.5)) +
labs(fill="Crime District",
x=NULL,
y=NULL,
title="Pie Chart of Crime District",
caption="Baltimore Crime District")
pie + coord_polar(theta = "y", start=0)
Pie charts usually gives a visual portion for each parts. In finding out Crime District, this chart show us the crime happened evenly in Baltimore, there is not too much distingish in different areas. But the largest (Northeastern) is as twice big as smallest (Western).
As the forementioned, EDA (time and location)is the main part of this analysis report. ## Step 3-1: Location analysis
library(ggplot2)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
# Figure 3: Bar Chart: District against Premise
ggplot(crimedf, aes(x=crimedf$District)) +
geom_bar() +
xlab("Crime Area")+
ylab("Count") +
labs(title="Figure 3:Location Bar Chart of Baltimore Crime")
In Figure 2 pie chart, we can tell crime district generally, but in Figure 3, bar chart desplays better view of concise number about crime in different area. The longest (Northeastern) is ~310 as twice big as shortest (Western) ~150.
Reference: http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html#Time%20Series%20Plot%20From%20a%20Time%20Series%20Object P.S. In this “Time analysis” part, thanks to HoiNing’s code in dealing with Year, and Prof.’s factor function to make weekdays in order.
Creating new date.frame of new variables
library(ggplot2)
library(lubridate)
library(scales)
datedf <- data.frame(date = crimedf$CrimeDate, time = crime$CrimeTime, Count = crimedf$Total.Incidents)
dates <- as.POSIXct(as.Date(crimedf$CrimeDate, format = "%m/%d/%Y"))
datedf$Time <- as.POSIXct(crime$CrimeTime, format = "%H:%M:%S")
datedf$Year <- year(dates)
datedf$Month <- month(dates)
datedf$Weekday = wday(as.Date(datedf$date,"%m/%d/%Y"), label=TRUE)
#Figure 4: Crime Trend by Year
library(ggplot2)
library(lubridate)
library(scales)
ggplot(datedf, aes(x=Year, y=Count)) + stat_summary(fun.y = sum, geom = "line", size=1) +
xlab("Crime Year")+
ylab("Crime Count") +
labs(title="Figure 4:Crime Trend by Year")
#Figure 5: Crime Count by Month
library(ggplot2)
library(lubridate)
library(scales)
ggplot(datedf, aes(x=Month, y=Count)) + stat_summary(fun.y = sum, geom = "bar", size=1) +
xlab("Crime Month")+
ylab("Crime Count") +
labs(title="Figure 4:Crime in Each Month")
library(ggplot2)
library(lubridate)
library(scales)
#Figure 6: Crime Count by Hour against Crime Type
ggplot(datedf, aes(x=Time, y=Count, fill = crime$Description)) +
stat_summary(fun.y = sum, geom = "area", col = "blue") +
scale_x_datetime(breaks=date_breaks("4 hour"), labels=date_format("%H:%M:%S")) +
theme(axis.text.x=element_text(angle=90)) +
xlab("Time by Hour") +
ylab("Crime Count") +
ggtitle("Figure 6: Crime in the Time Period")
P.S. Weekday extracted from Date at Creating new data.frame = datedf Step.
library(ggplot2)
library(lubridate)
library(scales)
factor(datedf$Weekday, levels = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun"))
## [1] Thu Sun Wed Fri Mon Wed Mon Mon Wed Mon Wed Thu Sat Mon Tue Tue Fri
## [18] Tue Sun Mon Sun Fri Fri Sat Mon Wed Thu Sat Fri Fri Fri Thu Wed Fri
## [35] Sun Thu Sun Sat Fri Sat Sat Sun Tue Fri Wed Mon Wed Fri Thu Sat Tue
## [52] Fri Wed Sun Thu Sat Wed Wed Thu Mon Tue Fri Sat Sat Mon Thu Fri Sat
## [69] Sun Thu Mon Thu Sun Thu Thu Sat Sat Fri Tue Mon Wed Thu Tue Mon Tue
## [86] Wed Sat Mon Sat Fri Wed Sun Wed Sat Mon Tue Mon Mon Wed Mon Sun Thu
## [103] Mon Tue Sun Sat Tue Mon Sun Fri Fri Sat Tue Tue Tue Mon Sun Wed Wed
## [120] Thu Fri Tue Sun Sat Thu Mon Sun Sun Tue Thu Wed Thu Mon Fri Tue Sat
## [137] Sun Fri Fri Fri Fri Tue Sat Wed Wed Sun Sat Fri Sat Tue Sun Tue Sat
## [154] Fri Mon Tue Wed Fri Sun Wed Sat Fri Mon Mon Tue Fri Sun Thu Thu Fri
## [171] Wed Wed Wed Tue Thu Sat Sat Fri Tue Thu Wed Thu Thu Sat Sat Thu Sat
## [188] Thu Fri Sat Sat Sat Fri Mon Tue Thu Sun Mon Wed Mon Sat Sun Fri Mon
## [205] Mon Fri Sun Wed Sat Wed Tue Fri Sun Sat Sat Thu Tue Wed Tue Tue Thu
## [222] Wed Wed Fri Wed Sun Fri Sun Tue Sun Fri Mon Mon Sun Tue Wed Wed Sat
## [239] Tue Mon Fri Tue Thu Wed Fri Tue Sun Tue Fri Sat Wed Wed Tue Mon Wed
## [256] Tue Thu Thu Mon Tue Tue Tue Sat Fri Fri Mon Thu Wed Mon Fri Wed Sun
## [273] Sun Thu Sat Wed Wed Fri Tue Wed Mon Thu Thu Thu Mon Sat Mon Tue Sun
## [290] Sun Sun Sun Sun Fri Tue Fri Mon Mon Wed Fri Thu Mon Tue Mon Wed Fri
## [307] Wed Wed Tue Sun Wed Tue Wed Sat Thu Wed Sat Tue Fri Wed Tue Thu Sat
## [324] Sat Mon Wed Wed Mon Sun Tue Tue Mon Fri Tue Sun Sun Fri Thu Sat Thu
## [341] Mon Sat Sun Thu Sun Wed Fri Fri Wed Sun Fri Sat Tue Sat Thu Sat Wed
## [358] Sun Wed Sun Fri Sat Wed Sat Tue Sat Fri Sat Mon Sun Mon Fri Fri Mon
## [375] Fri Sat Fri Tue Fri Fri Fri Fri Sat Tue Thu Thu Sun Sat Fri Fri Sat
## [392] Thu Mon Tue Thu Fri Tue Sat Tue Tue Sat Thu Mon Tue Sun Thu Mon Sun
## [409] Sat Tue Tue Mon Wed Tue Tue Mon Fri Sat Sun Mon Fri Sat Wed Sat Sat
## [426] Sat Wed Sat Wed Sat Sun Sun Fri Thu Sun Sun Sat Fri Wed Tue Wed Mon
## [443] Thu Tue Sat Fri Sat Sat Fri Tue Fri Sat Wed Sun Thu Mon Wed Tue Sat
## [460] Tue Fri Mon Thu Tue Sat Mon Tue Thu Thu Sun Sun Tue Wed Sun Wed Mon
## [477] Thu Fri Fri Fri Wed Fri Sun Wed Fri Sat Wed Sun Mon Tue Sat Thu Mon
## [494] Thu Thu Sat Fri Wed Sat Sat Sat Thu Sun Fri Sat Sun Mon Thu Wed Tue
## [511] Tue Wed Fri Sun Wed Thu Wed Sun Fri Wed Sun Sun Fri Thu Mon Sat Sat
## [528] Fri Sun Wed Sun Thu Wed Sun Sun Thu Mon Sat Tue Sat Tue Sat Sun Sun
## [545] Sat Sat Tue Wed Fri Thu Mon Wed Wed Sat Sun Tue Wed Sun Sat Tue Sat
## [562] Thu Wed Thu Tue Mon Mon Wed Sun Fri Mon Sun Mon Sat Mon Thu Thu Fri
## [579] Tue Sat Wed Mon Wed Mon Sat Fri Mon Mon Mon Thu Sun Tue Fri Thu Sun
## [596] Sat Wed Wed Mon Sun Wed Sat Wed Sat Sun Mon Mon Mon Tue Wed Fri Tue
## [613] Fri Sat Mon Fri Sat Wed Wed Fri Sat Tue Thu Sat Tue Mon Mon Thu Thu
## [630] Sun Tue Tue Sun Tue Sun Sun Sun Mon Wed Wed Tue Mon Fri Fri Tue Tue
## [647] Sat Mon Tue Thu Sun Sun Fri Mon Tue Thu Tue Thu Sat Fri Sun Wed Wed
## [664] Fri Sun Tue Sun Tue Mon Mon Mon Thu Sat Thu Fri Tue Wed Tue Wed Mon
## [681] Mon Tue Wed Tue Wed Sun Tue Sat Wed Thu Sat Mon Tue Sat Tue Wed Wed
## [698] Tue Tue Wed Tue Fri Wed Mon Tue Mon Mon Sat Sun Mon Thu Fri Wed Wed
## [715] Sun Sat Sat Fri Wed Sun Tue Wed Sat Thu Sat Mon Fri Tue Mon Wed Fri
## [732] Fri Mon Mon Thu Fri Tue Tue Sat Wed Tue Thu Wed Tue Mon Fri Wed Sun
## [749] Fri Thu Fri Sun Fri Mon Mon Mon Fri Sat Fri Sat Sat Fri Fri Thu Thu
## [766] Fri Tue Sat Sun Wed Wed Tue Fri Tue Tue Wed Tue Mon Sun Sat Mon Tue
## [783] Wed Mon Sat Fri Sun Thu Thu Fri Fri Wed Mon Mon Wed Sun Mon Fri Sat
## [800] Sun Thu Sat Tue Sun Sat Sun Thu Sun Mon Sun Wed Fri Wed Mon Sat Mon
## [817] Sun Sat Thu Sat Wed Mon Fri Fri Fri Sun Mon Tue Sat Tue Thu Sat Mon
## [834] Fri Wed Sat Mon Tue Mon Mon Thu Thu Tue Fri Mon Sat Wed Mon Fri Fri
## [851] Fri Tue Thu Tue Thu Wed Fri Thu Mon Sat Thu Tue Mon Tue Thu Tue Tue
## [868] Tue Fri Sat Fri Mon Fri Sat Fri Thu Mon Tue Mon Tue Mon Mon Sun Wed
## [885] Mon Wed Fri Tue Sun Tue Fri Mon Thu Tue Sun Wed Mon Sat Sun Fri Wed
## [902] Wed Tue Wed Sun Fri Thu Mon Mon Tue Fri Thu Mon Thu Tue Thu Tue Fri
## [919] Mon Fri Mon Wed Tue Sun Sun Fri Wed Sun Thu Sun Thu Fri Tue Fri Mon
## [936] Sun Wed Mon Wed Tue Sun Mon Fri Thu Wed Tue Thu Tue Mon Tue Wed Fri
## [953] Thu Sat Mon Fri Sat Mon Thu Tue Thu Fri Thu Sun Sat Fri Fri Thu Fri
## [970] Sun Sun Tue Wed Fri Sat Thu Sun Sat Thu Tue Tue Tue Thu Sun Thu Sun
## [987] Wed Tue Wed Tue Thu Sun Sat Sun Sat Tue Sun Tue Fri Fri Wed Thu Thu
## [1004] Sun Fri Mon Wed Sun Sun Sat Thu Thu Tue Sun Wed Wed Thu Mon Wed Tue
## [1021] Sat Thu Sun Wed Mon Sun Mon Wed Sun Sat Mon Tue Wed Fri Tue Sat Tue
## [1038] Thu Sun Wed Mon Mon Fri Sat Sun Sun Tue Mon Sun Thu Sun Tue Tue Wed
## [1055] Sat Wed Sat Fri Fri Tue Mon Tue Thu Sat Wed Sat Mon Sun Thu Sun Sun
## [1072] Thu Mon Sun Fri Wed Mon Thu Sun Thu Sun Fri Fri Thu Thu Sun Sun Fri
## [1089] Fri Wed Sun Sun Mon Sun Sun Mon Thu Tue Thu Sun Sat Mon Sun Thu Tue
## [1106] Wed Mon Sat Wed Wed Sun Wed Thu Tue Sat Thu Wed Sat Wed Sun Wed Mon
## [1123] Wed Mon Tue Mon Thu Mon Wed Mon Tue Thu Fri Tue Fri Wed Sat Sat Fri
## [1140] Sun Fri Fri Sat Thu Sun Fri Sat Fri Tue Tue Mon Sun Tue Sun Fri Tue
## [1157] Sat Sat Sun Mon Tue Sat Fri Tue Mon Sun Sun Tue Tue Tue Wed Thu Sun
## [1174] Fri Mon Sun Mon Sat Mon Wed Sun Sun Tue Thu Tue Tue Tue Sun Thu Thu
## [1191] Thu Sun Sun Fri Thu Wed Tue Thu Tue Sat Fri Thu Thu Fri Tue Sat Tue
## [1208] Tue Mon Fri Sun Fri Mon Sat Mon Thu Fri Thu Thu Fri Tue Fri Sun Sun
## [1225] Wed Sat Mon Wed Fri Sun Wed Sun Mon Tue Sun Mon Tue Thu Fri Wed Mon
## [1242] Mon Tue Mon Sat Wed Wed Tue Fri Tue Wed Sun Tue Wed Sat Fri Sun Wed
## [1259] Wed Wed Tue Sat Sun Mon Fri Sun Wed Mon Tue Tue Fri Sat Wed Sat Sat
## [1276] Mon Thu Sat Wed Mon Wed Thu Fri Thu Sat Fri Mon Fri Mon Sat Sun Thu
## [1293] Mon Sat Fri Thu Thu Fri Fri Sun Thu Thu Fri Wed Sun Sun Fri Sat Sun
## [1310] Wed Sun Sat Wed Fri Tue Mon Mon Wed Mon Wed Tue Thu Sat Tue Thu Mon
## [1327] Fri Mon Wed Wed Thu Thu Tue Mon Sat Mon Thu Sat Tue Sun Sun Tue Mon
## [1344] Mon Wed Tue Wed Fri Thu Fri Sun Wed Wed Sun Fri Mon Sun Wed Thu Fri
## [1361] Mon Sun Tue Wed Fri Sun Sat Mon Thu Sat Mon Thu Fri Wed Fri Thu Sat
## [1378] Sun Thu Sat Tue Sat Mon Sun Sat Wed Thu Sat Tue Tue Sat Thu Sat Sun
## [1395] Mon Sat Sat Wed Wed Thu Fri Tue Mon Mon Thu Mon Wed Wed Sat Wed Fri
## [1412] Wed Wed Wed Sat Fri Mon Sun Sun Mon Fri Fri Tue Thu Thu Thu Thu Fri
## [1429] Thu Sat Sat Thu Mon Tue Wed Sat Mon Sun Sat Wed Thu Sat Wed Fri Mon
## [1446] Tue Fri Wed Mon Thu Tue Mon Sun Fri Tue Mon Sun Mon Mon Mon Wed Sat
## [1463] Fri Sun Fri Wed Tue Thu Thu Thu Fri Sun Sun Tue Mon Sun Mon Sun Fri
## [1480] Mon Tue Sun Sat Sat Wed Fri Mon Tue Tue Tue Sun Thu Sat Mon Tue Wed
## [1497] Wed Sat Sun Tue Mon Thu Wed Tue Mon Fri Wed Wed Wed Sun Tue Mon Tue
## [1514] Wed Mon Mon Sun Mon Thu Thu Tue Sun Thu Fri Thu Sat Thu Thu Sat Tue
## [1531] Thu Tue Fri Thu Wed Sun Sat Fri Sat Sun Sat Sun Thu Sat Mon Tue Wed
## [1548] Thu Fri Thu Tue Mon Sat Tue Fri Mon Thu Tue Fri Sat Tue Mon Fri Sat
## [1565] Sun Sun Sat Mon Tue Tue Thu Tue Tue Sun Sat Wed Fri Wed Sun Sun Sun
## [1582] Fri Thu Sun Wed Wed Tue Thu Sat Thu Fri Mon Fri Tue Thu Mon Fri Mon
## [1599] Fri Thu Wed Wed Wed Fri Wed Wed Wed Wed Tue Wed Thu Sat Tue Wed Sat
## [1616] Sun Tue Wed Wed Fri Mon Tue Sun Thu Thu Wed Wed Sat Mon Tue Thu Mon
## [1633] Wed Fri Sat Fri Mon Sat Fri Fri Fri Sun Fri Sat Tue Sat Thu Fri Fri
## [1650] Wed Wed Sat Thu Fri Sun Mon Wed Fri Wed Sat Wed Fri Mon Thu Fri Tue
## [1667] Sun Fri Mon Fri Tue Mon Sat Fri Tue Mon Sat Wed Tue Tue Mon Sun Mon
## [1684] Tue Sat Mon Sat Sun Thu Tue Fri Sat Mon Fri Sun Sun Sun Tue Mon Thu
## [1701] Tue Tue Wed Sat Mon Thu Fri Fri Mon Sun Fri Thu Sun Sun Sat Tue Wed
## [1718] Fri Sat Thu Tue Sun Sat Thu Mon Tue Mon Wed Mon Sun Fri Mon Mon Thu
## [1735] Fri Fri Mon Thu Thu Mon Fri Fri Fri Tue Mon Mon Sun Thu Tue Wed Tue
## [1752] Sat Sun Wed Mon Wed Wed Sun Sat Sun Thu Fri Wed Fri Wed Wed Fri Wed
## [1769] Tue Wed Tue Thu Tue Sat Sat Sat Thu Thu Mon Fri Thu Mon Wed Sat Tue
## [1786] Fri Wed Thu Sun Sun Wed Mon Thu Sun Sun Wed Fri Sat Tue Wed Sun Mon
## [1803] Sun Mon Tue Tue Wed Tue Thu Sun Sun Sun Tue Sun Fri Fri Mon Tue Tue
## [1820] Wed Fri Fri Wed Mon Fri Sat Thu Sat Sun Tue Sat Tue Fri Sat Wed Mon
## [1837] Mon Wed Sat Thu Tue Tue Tue Wed Mon Thu Thu Wed Wed Mon Mon Sat Mon
## [1854] Wed Fri Tue Mon Thu Sun Wed Fri Tue Fri Mon Mon Wed Tue Thu Sat Wed
## [1871] Wed Sun Mon Mon Mon Mon Thu Fri Sat Sun Sun Tue Sat Wed Wed Sun Wed
## [1888] Wed Sat Thu Wed Sun Sat Fri Wed Thu Tue Fri Sat Sun Mon Thu Wed Fri
## [1905] Wed Fri Thu Thu Fri Thu Thu Wed Sun Tue Sat Mon Thu Fri Sat Wed Wed
## [1922] Sat Thu Sat Wed Sat Sun Thu Tue Mon Wed Thu Sat Thu Sun Thu Fri Sat
## [1939] Mon Wed Mon Sat Sun Fri Thu Sun Tue Thu Thu Sat Mon Mon Fri Thu Mon
## [1956] Mon Mon Fri Thu Sun Thu Fri Sat Wed Wed Sat Sun Fri Wed Wed Sun Sun
## [1973] Tue Mon Mon Sat Thu Wed Mon Thu Thu Wed Fri Fri Fri Thu Thu Fri Thu
## [1990] Fri Wed Wed Fri Fri Mon Thu Fri Mon Sun Fri
## Levels: Mon < Tue < Wed < Thu < Fri < Sat < Sun
ggplot(datedf, aes(x=Weekday, y=Count)) +
stat_summary(fun.y = sum, geom = "bar")+
xlab("Time by Ordered Weekday") +
ylab("Crime Count") +
ggtitle("Figure 7: Crime by Ordered Weekdays")
In Time analysis part, Figure 4 shows crime trend by Year, Figure 5 caculates crime by month, Figure 6 presents crime hours against crime type, Figure 7 expresses crime in different weekdays. For crime trend by year, there is a great uptrend before 2012, it could be a data bug from random choice, it could be a severe real uptrend before 2012. There is a downtrend after 2016. Figure 5 tells that highest crime counted in May, June, July, and August. There are social and psychological researchs states that higher temperature will turn down people’s temper, that in the summer crimes are more. Figure 6 presents that midnight is the most frequent crime time period, especially for larceny. Figure 7 expresses crime happened mostly on Friday. Friday is between weekdays and weedends, it is usually very joyful and people go out for dating, visiting, and playing. That would be the possible reason why crimes happened frequently on Friday.
Reference:https://journal.r-project.org/archive/2013-1/kahle-wickham.pdf
mapdf <- data.frame(lon=crimedf$Longitude, lat=crimedf$Latitude)
#Figure 8: Dot Map of Crime in Baltimore
library(ggplot2)
library(ggmap)
##
## Attaching package: 'ggmap'
## The following object is masked _by_ '.GlobalEnv':
##
## crime
library(maps)
map <- get_map(location = "Baltimore", zoom = 12)
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=Baltimore&zoom=12&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Baltimore&sensor=false
ggmap(map) + geom_point(data = mapdf, aes(x = lon, y = lat), size = 0.5, col = "red") +
labs(title = "Dot Map of Crime in Baltimore",
x = " ",
y = " ")
library(ggplot2)
library(ggmap)
library(maps)
mapt <- get_map(location = "Baltimore", zoom = 12, maptype = "toner")
## maptype = "toner" is only available with source = "stamen".
## resetting to source = "stamen"...
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=Baltimore&zoom=12&size=640x640&scale=2&maptype=terrain&sensor=false
## Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Baltimore&sensor=false
## Map from URL : http://tile.stamen.com/toner/12/1175/1559.png
## Map from URL : http://tile.stamen.com/toner/12/1176/1559.png
## Map from URL : http://tile.stamen.com/toner/12/1177/1559.png
## Map from URL : http://tile.stamen.com/toner/12/1175/1560.png
## Map from URL : http://tile.stamen.com/toner/12/1176/1560.png
## Map from URL : http://tile.stamen.com/toner/12/1177/1560.png
## Map from URL : http://tile.stamen.com/toner/12/1175/1561.png
## Map from URL : http://tile.stamen.com/toner/12/1176/1561.png
## Map from URL : http://tile.stamen.com/toner/12/1177/1561.png
## Map from URL : http://tile.stamen.com/toner/12/1175/1562.png
## Map from URL : http://tile.stamen.com/toner/12/1176/1562.png
## Map from URL : http://tile.stamen.com/toner/12/1177/1562.png
ggmap(mapt) + geom_point(data = mapdf, aes(x = lon, y = lat), size = 0.1, col = "red") +
labs(title = "Dot Map of Crime in Baltimore",
x = " ",
y = " ")
library(ggplot2)
library(ggmap)
library(maps)
ggmap(mapt) + stat_density2d(aes(x = lon, y = lat, fill = ..level.., alpha = crimedf$District),
size = 2, bins = 4, data = mapdf, geom = "polygon")
In Figure 10, darken color refers to higher density of crime. We can see in the map how crime density looks like. Though we can tell from Pie chart and Bar chart about crime, but mapping gives us a view of detailed location.
My analysis report was mainly a crime location and time analysis, using ggplot, lubridate packages. Since the data is in Baltimore with detailed location, I used ggmap package at first glance. My goal is using 2000 ramdon samples out of 276529, to find out the safe and unsafe area in Baltimore, also to define the risky time. With the analysis report, people who live in Baltimore, or who want to move to Baltimore will have a reference based on data, and live safer.
In analyzing the Crime data from Baltimore, we can see from charts that crime happened more frequent:
The analysis result tells us that most of the crime happened in the midnight, which is fulfil our expectation that we shall be more sensitive during midnight, or just stay at home.
Friday is between weekdays and weedends, it is usually very joyful and people go out for dating, visiting, and playing. That would be the possible reason why crimes happened frequently on Friday.
There are social and psychological researchs states that higher temperature will turn down people’s temper, that in the summer crimes are more. In Baltimore, May is the most dangerous month.
Crimes area may related to the average income. Mapping will help to identify the safer area to live in Baltimore.