ExpoSum <- read_excel("~/R Projects/Final Project/Exhibitor Expo Summary Data.xlsx") %>% mutate(CountCol = 1)
Show_Summary <- read_excel("~/R Projects/Final Project/Show Data.xlsx")
Attendee <- read.csv("~/R Projects/Final Project/Attendee Data.csv") %>% mutate(CountCol = 1)
Oil_Prices <- Quandl("OPEC/ORB", start_date = "2012-01-01", end_date = "2016-11-30")
#I exported Google trends data instead of using the library so that I could better customize the plot
GoogleTrends <- read.csv("~/R Projects/Final Project/GoogleTrendsData.csv")
Oil_Prices$Date <- as.Date(Oil_Prices$Date, format = "%m/%d/%Y")
Oil_Prices <- mutate(Oil_Prices, Year = as.numeric(format(Oil_Prices$Date, format = "%Y")))

#find the average oil price for each year          
Avg_Oil2013 <- Oil_Prices %>% filter(Year == "2013") %>% summarize(AvgPrice = mean(Value))
Avg_Oil2014 <- Oil_Prices %>% filter(Year == "2014") %>% summarize(AvgPrice = mean(Value))                             
Avg_Oil2015 <- Oil_Prices %>% filter(Year == "2015") %>% summarize(AvgPrice = mean(Value))
Avg_Oil2016 <- Oil_Prices %>% filter(Year == "2016") %>% summarize(AvgPrice = mean(Value))

#bind the average oil prices together to form a dataframe that can be used in correlations
Avg_Oil_Prices <- rbind(Avg_Oil2013, Avg_Oil2014, Avg_Oil2015, Avg_Oil2016)

#create plot of oil prices from 2012-2016
Oil_Plot <- ggplot(Oil_Prices, aes(x = Date, y = Value)) +
  geom_line() + 
  scale_y_continuous(name = "Price of Oil - $ per Barrel") +
  labs(x = "Date") +
  labs(title = "Oil Prices Over Time")
GoogleTrends$Week <- as.Date(GoogleTrends$Week, format = "%m/%d/%Y")

#plot IWBS searches to see if there is a decline in interest
IWBS_GTrends_Plot <- ggplot() +
  geom_line(data = GoogleTrends, aes(x = Week, y = IWBS, colour = "blue")) +
  scale_color_manual(labels = c("IWBS"), values = c("blue")) +
  scale_y_continuous(name = "Google Trends") +
  labs(colour ="Legend") +
  labs(x = "Date") +
  labs(title = "IWBS Show Search Popularity")

#plot PME searches to see if there is a decline in interest
PME_GTrends_Plot <- ggplot() +
  geom_line(data = GoogleTrends, aes(x = Week, y = PME, colour = "red")) +
  scale_color_manual(labels = c("PME"), values = c("red")) +
  scale_y_continuous(name = "Google Trends") +
  labs(colour ="Legend") +
  labs(x = "Date") +
  labs(title = "PME Show Search Popularity")
PME_Table <- Show_Summary %>% select(-Avg_PPSF, -Space_Dollars, -YoY_Dollars) %>%  
                              filter(Show_Name == "2013 Pacific Marine Expo" | 
                                     Show_Name == "2014 Pacific Marine Expo" |
                                     Show_Name == "2015 Pacific Marine Expo" |
                                     Show_Name == "2016 Pacific Marine Expo") 

IWBS_Table <- Show_Summary %>% select(-Avg_PPSF, -Space_Dollars, -YoY_Dollars) %>%
                               filter(Show_Name == "2013 International Workboat Show" | 
                                      Show_Name == "2014 International Workboat Show" |
                                      Show_Name == "2015 International Workboat Show" |
                                      Show_Name == "2016 International Workboat Show")

#filter to see how many PME exhibitors signed up and then cancelled each year
PME_Cancels <- ExpoSum %>% filter(Event == "Pacific Marine Expo", Status == "Cancelled") %>% 
                          group_by(Show_Name) %>% 
                          summarize(NumberOfCancels = sum(CountCol))

#bar chart plot of cancels
PME_Cancels_Plot <- ggplot(data = PME_Cancels, aes(x = Show_Name, y = NumberOfCancels)) +
  geom_bar(fill = "slateblue4", colour = "black", stat = "identity") +
  geom_text(aes(label = NumberOfCancels, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Cancels") +
  labs(x = "Show") +
  labs(title = "PME Exhibitor Cancellations")

#filter to see how many IWBS exhibitors signed up and then cancelled each year
IWBS_Cancels <- ExpoSum %>% filter(Event == "International Workboat Show", Status == "Cancelled") %>% 
                            group_by(Show_Name) %>% 
                            summarize(NumberOfCancels = sum(CountCol))
#bar chart plot of cancels
IWBS_Cancels_Plot <- ggplot(data = IWBS_Cancels, aes(x = Show_Name, y = NumberOfCancels)) +
  geom_bar(fill = "aquamarine4", colour = "black", stat = "identity") +
  geom_text(aes(label = NumberOfCancels, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Cancels") +
  labs(x = "Show") +
  labs(title = "IWBS Exhibitor Cancellations")
#filter attendees to display only those who attended PME
PME_Attendee  <- Attendee %>% filter(Event == "PME", Attended == "Y") %>%
                              group_by(Show_Code) %>% 
                              summarize(TotalAttendees = sum(CountCol))
#plot PME attendees
PME_Attendee_Plot <- ggplot(data = PME_Attendee, aes(x = Show_Code, y = TotalAttendees)) +
  geom_bar(fill = "slateblue3", colour = "black", stat = "identity") +
  geom_text(aes(label = TotalAttendees, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Attendees") +
  labs(x = "Show") +
  labs(title = "# of PME Attendees")

#filter attendees to display only those who attended IWBS
IWBS_Attendee  <- Attendee %>% filter(Event == "IWBS", Attended == "Y") %>% 
                               group_by(Show_Code) %>% 
                               summarize(TotalAttendees = sum(CountCol))
#plot IWBS attendees
IWBS_Attendee_Plot <- ggplot(data = IWBS_Attendee, aes(x = Show_Code, y = TotalAttendees)) +
  geom_bar(fill = "aquamarine3", colour = "black", stat = "identity") +
  geom_text(aes(label = TotalAttendees, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Attendees") +
  labs(x = "Show") +
  labs(title = "# of IWBS Attendees")

#filter attendess to display only people who did not show up to PME
PME_NoShows  <- Attendee %>% filter(Event == "PME", Attended == "N") %>%
  group_by(Show_Code) %>% 
  summarize(TotalNoShows = sum(CountCol))

#plot PME no shows
PME_NoShows_Plot <- ggplot(data = PME_NoShows, aes(x = Show_Code, y = TotalNoShows)) +
  geom_bar(fill = "slateblue2", colour = "black", stat = "identity") +
  geom_text(aes(label = TotalNoShows, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Attendees") +
  labs(x = "Show") +
  labs(title = "# of PME Registratants That Did Not Attend")

#filter attendess to display only people who did not show up to IWBS
IWBS_NoShows  <- Attendee %>% filter(Event == "IWBS", Attended == "N") %>% 
  group_by(Show_Code) %>% 
  summarize(TotalNoShows = sum(CountCol))

#plot IWBS no shows
IWBS_NoShows_Plot <- ggplot(data = IWBS_NoShows, aes(x = Show_Code, y = TotalNoShows)) +
  geom_bar(fill = "aquamarine2", colour = "black", stat = "identity") +
  geom_text(aes(label = TotalNoShows, vjust = -.5)) +
  theme(legend.position = "none") +
  scale_y_continuous(name = "# of Attendees") +
  labs(x = "Show") +
  labs(title = "# of IWBS Registratants That Did Not Attend")
PME_Oil_SQ_Cor <- cor(Avg_Oil_Prices$AvgPrice, PME_Table$Actual_Space)
PME_Oil_ExCL_Cor <- cor(Avg_Oil_Prices$AvgPrice, PME_Cancels$NumberOfCancels)
PME_Oil_Atd_Cor <- cor(Avg_Oil_Prices$AvgPrice, PME_Attendee$TotalAttendees)
PME_Oil_NS_Cor <- cor(Avg_Oil_Prices$AvgPrice, PME_NoShows$TotalNoShows)

IWBS_Oil_SQ_Cor <- cor(Avg_Oil_Prices$AvgPrice, IWBS_Table$Actual_Space)
IWBS_Oil_ExCL_Cor <- cor(Avg_Oil_Prices$AvgPrice, IWBS_Cancels$NumberOfCancels)
IWBS_Oil_Atd_Cor <- cor(Avg_Oil_Prices$AvgPrice, IWBS_Attendee$TotalAttendees)
IWBS_Oil_NS_Cor <- cor(Avg_Oil_Prices$AvgPrice, IWBS_NoShows$TotalNoShows)

Pacific Marine Expo and International Workboat Show

What affects show profitability and attendance?


Pacific Marine Expo (PME) and International Workboat Show (IWBS) are two of Diversified Communication’s domestic business to business tradeshows that occur each year at the end of November. PME takes place in Seattle, WA and is primarily geared towards companies and people in the commerical fishing industry. IWBS is held in New Orleans, LA and the majority of exhibitors and customers come from the oil and shipping industries.

It has always been common thought within Diversified that lower oil prices have a positive impact on PME because fisherman would be paying less for fuel to power their boats, thus leaving extra money to exhibit or attend the event; while low oil prices have a negative affect on IWBS because the show is so dependant on companies in the oil business, and if oil prices are down then their revenues are down and they are less likely to attend or exhibit.

I have asked numerous people within the company what data they have to prove that a correlation exists between oil prices and the success of PME and IWBS, and each one has responded by saying that “We are just really in tune with those industries and we just know”. For me, that is not an adequate answer - I want to see proof. So that is what triggered this project idea; I want to investigate whether or not oil prices have an affect and if not oil, then what? This is a very large undertaking, so the work that I have completed below is what I would consider Phase 1 of many phases yet to come. For this specific R project, I will focus on exhibitor and attendee data for the past 4 events (2013-2016).

The first plot below represents the fluxuation of oil prices since 2012. The oil prices are straightforward, what was the cost per barrel of oil each day since 2012. I brought this data set into R using a library called Quandl. Quandl is a great resource comprised of countless databases pertaining to financial and economic information.


As you can see, oil prices began its nose dive mid-2014, which is in the middle of these events’ marketing cycle; if common thought is true, then we should see a significant difference between the events that occured in 2013/2014 compared to the ones in 2015/2016.

Exhibitor Show Data


I would like to begin here by defining my columns:
Space_Goal is the total square feet that company desires to sell and has budgeted to sell
YoY_Space_Goal is the amount by which the Space_Goal has increased or decreased from the previous year
Actual_Space is the actual total square footage sold for the show
YoY_Actual_Space is the increase or decrease in Actual_Space sold compared to the previous year
To_Goal is how far away from the Space_Goal the Actual_Space is; negative means the goal was missed and positive means the goal was met

PME

Show_Name Space_Goal YoY_Space_Goal Actual_Space YoY_Actual_Space To_Goal
2013 Pacific Marine Expo 64000 7300 66668 3858 2668
2014 Pacific Marine Expo 67500 3500 70374 3706 2874
2015 Pacific Marine Expo 72250 4750 74874 4500 2624
2016 Pacific Marine Expo 77000 4750 75290 416 -1710
The table above clearly shows steady growth of actual space sold for the show and each yearly space goal was met with the exception of 2016. I would have expected to see significantly more growth in 2015 and 2016 with oil prices being lower then in 2013 and 2014.

IWBS

Show_Name Space_Goal YoY_Space_Goal Actual_Space YoY_Actual_Space To_Goal
2013 International Workboat Show 219600 30600 218670 75 -930
2014 International Workboat Show 221000 1400 232741 14071 11741
2015 International Workboat Show 235000 14000 230180 -2561 -4820
2016 International Workboat Show 229000 -6000 219660 -10520 -9340
The IWBS table appears to be a bit more sporadic, starting with the uneven increase in space goal. The actual space sold in 2016 is almost back down to the total space sold in 2013, which 2014 appears to have been a peak year. If oil prices played a role in the amount of space actually sold, then 2015 and 2016 should have lower space sales then 2013 and 2014 when oil was high.
Note: in another phase of this project, I want to investigate if the prior year’s oil prices affect the show because many exhibitors sign up for the following year at the current event.

Exhibitor Cancellations



Each year, there are a number of exhibitors who sign up for the event, make a deposit, and for one reason or another they decide to cancel and not appear at the show. The above chart shows an increase in cancellations for PME, which contradicts the idea that low oil prices would increase show performance.
Note: in the next iteration of this project, I would want to look at the percentage of cancellations to number of exhibitors and not the actual number.


The slight increase in cancellations for IWBS would support the general theory at Diversified because oil prices have been on the decline so more people may back out at the end of the year when they are not in the financial position they thought they might be.

Attendee Data



The above bar chart shows a steady year over year attendance - it looks as though around 6000 attendees could be expected each year, regardless of oil prices.


IWBS defintely shows a decline in attendees that falls in line with the decline in oil prices - could there be a correlation here?
Note: in the future I want to run correlations between actual space sold and attendance


Each year there are many people who register for our events and then do not show up. This is more common that exhibitor cancellations because the cost to attend is very inexpensive compared to purchasing exhibitor space. PME shows a slight downward trend; this goes againtst the idea that lower oil prices allow more fisherman and people in the commerical fishing industry to come to the show.


This chart for IWBS no-shows does trend in favor of the oil price theory - if oil prices are low then the oil companies that make up a large part of the show, do not have extra money to send their people to an event or they cannot afford to have their people take time off work when they need to be doing a job to keep the cash flowing in. You may ask, well if they did not have the money to attend then why did they register in the first place? For some larger events such as IWBS, past attendees are automatically signed up for the following year, in hopes that they will take advatage of a free pass and come to the show. One of the big drivers that encourages more companies to exhibit is to have a large flow of traffic at the event - thus free registration for past attendees = more people = more exhibitors = more revenue. The data above may show that when oil is down, companies need to keep their employees at work doing their jobs.

Correlations

Next, I ran actual correlation data to see what statistics have to say about the affect that oil prices have on our events.

Oil Price Correlation with Data

Note: The yearly Oil Price average is the Independent Variable X and the listed metric is the Dependent Variable Y.

PME:

Oil Price Vs. Actual SQFT Sold: -0.96398
Oil Price Vs. Exhibitor Cancels: -0.96227
Oil Price Vs. # of Attendees: 0.6786
Oil Price Vs. # of No Shows: 0.602
The numbers above are not strong enough to say oil prices have an influence of PME. The number of attendees and no-shows do show correlation result around .6, however with only 4 data points that is not close enough to 1 to make a conclusion. The actual sqaure footage sold and number of exhibitor cancels do have a fairly strong negative correlation at -.96, letting me say that it is doubtful that oil prices affect exhibitor attendance.

IWBS:

Oil Price Vs. Actual SQFT Sold: 0.03766
Oil Price Vs. Exhibitor Cancels: -0.84431
Oil Price Vs. # of Attendees: 0.55572
Oil Price Vs. # of No Shows: -0.42096
Just as we saw in the IWBS table of data, there does not seem to be any consistency across the numbers, and none of the correlation results are strong enough to conclude that oil prices significantly affect the show.