Cadillac vs Germans, Path to a New Brand
Analysis of Fuel Economy Data
Paul Grech
October 5, 2015
Contributed by Paul Greeh. Paul took NYC Data Science Academy 12 week full time Data Science Bootcamp program with Christopher Markis, Luke Lin, Sam Kamin, Zeyu Zhang between Sept 23 to Dec 18, 2015. The post was based on His first class project(due at 2nd week of the program).
Scope:
Analyse fuel economy ratings in the automotive industry.
Compare vehicle efficiency of American automotive manufacturer, Cadillac with the automotive industry as a whole.
Sept 2014 - โWe cannot deny the fact that we are leaving behind our traditional customer base,โ de Nysschen said. โIt will take several years before a sufficiently large part of the audience who until now have been concentrating on the German brands will find us in their consideration set.โ Cadillacโs President - Johan de Nysschen http://www.autonews.com/article/20140915/RETAIL03/140919894/cadillacs-new-chief-vows-no-retreat-on-pricing-strategy
Compare vehicle efficiency of American automotive manufacturer, Cadillac, with self declared competition, the German luxury market.
What further comparisons will display insight into EPA ratings?
Analysis Overview
- Automotive Industry
- Cadillac vs Automotive Industry
- Cadillac vs German Luxury Market
- Cadillac vs German Luxury Market by Vehicle Class
Importing the Data
Import FuelEconomy.gov data and filter rows needed for analysis. Then remove all zeroโs included in city and highway MPG data as this will skew results. - Replace this information with NA as to not perform calculations on data not present.
library(lsr)
library(dplyr)
library(ggplot2)
# Import Data and convert to Dplyr data frame
FuelData <- read.csv("Project1.data/FuelEconomyGov.csv", stringsAsFactors = FALSE)
FuelData <- tbl_df(FuelData)
# Create data frame including information necessary for analysis
FuelDataV1 <- select(FuelData,
mfrCode, year, make, model,
engId, eng_dscr, cylinders, displ, sCharger, tCharger,
trans_dscr, trany, drive,
startStop, phevBlended,
city08, comb08, highway08,
VClass)
# Replace Zero values in MPG data with NA
FuelDataV1$city08U[FuelDataV1$city08 == 0] <- NA
FuelDataV1$comb08U[FuelDataV1$comb08 == 0] <- NA
FuelDataV1$highway08U[FuelDataV1$highway08 == 0] <- NA
1: Automotive Industry
Visualize city and highway EPA ratings of the entire automotive industry.
Question:
How have EPA ratings for city and highway improved across the automotive industry as a whole?
Note: No need to include combined as combined is simply a percentage based calculation defaulting to 60/40 but can be adjusted on the website.
# VISUALIZE INDUSTRY EPA RATINGS
IndCityMPG <- group_by(FuelDataV1, year) %>%
summarise(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "Industry") %>%
mutate(., MPGType = "City")
IndHwyMPG <- group_by(FuelDataV1, year) %>%
summarise(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "Industry") %>%
mutate(., MPGType = "Highway")
Comp.Ind <- rbind(IndCityMPG, IndHwyMPG)
ggplot(data = Comp.Ind, aes(x = year, y = MPG, linetype = MPGType)) +
geom_point() + geom_line() + theme_bw() +
ggtitle("Industry\n(city & highway MPG)")
Conclusion:
Data visualization shows relatively poor EPA ratings throughout the 1980's, 1990's and early to mid 2000's with the first drastic improvement in these ratings occurring around 2008. One significant event around this time period was the recession hitting America. Consumers having less disposable income along with increased oil prices likely fueled competition to develop fuel efficient powertrains across the automotive industry as a whole.
2: Cadillac vs Automotive Industry
Visualize Cadillac's city and highway EPA ratings with that of the automotive industry.
Question:
How does Cadillac perform when compared to the automotive industry as a whole?
# COMPARE INDUSTRY EPA RATINGS FOR CITY AND HIGHWAY WITH THAT OF CADILLAC
IndCityMPG <- group_by(FuelDataV1, year) %>%
summarise(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "Industry") %>%
mutate(., MPGType = "City")
IndHwyMPG <- group_by(FuelDataV1, year) %>%
summarise(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "Industry") %>%
mutate(., MPGType = "Highway")
CadCityMPG <- filter(FuelDataV1, make == "Cadillac") %>%
group_by(., year) %>%
summarize(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "Cadillac") %>%
mutate(., MPGType = "City")
CadHwyMPG <- filter(FuelDataV1, make == "Cadillac") %>%
group_by(., year) %>%
summarize(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "Cadillac") %>%
mutate(., MPGType = "Highway")
Comp.Ind.Cad <- rbind(IndCityMPG, IndHwyMPG, CadCityMPG, CadHwyMPG)
ggplot(data = Comp.Ind.Cad, aes(x = year, y = MPG, color = Label, linetype = MPGType)) +
geom_point() + geom_line() + theme_bw() +
scale_color_manual(name = "Cadillac / Industry", values = c("blue","#666666")) +
ggtitle("Cadillac vs Industry\n(city & highway MPG)")
Conclusion:
Cadillac was chosen as a brand of interest because they are currently redefining their brand as a whole. It is important to analyze past performance to have a complete understanding of how Cadillac has been viewed for several decades.
In 2002, Cadillac dropped to its lowest performance. Why did this occur? Because the entire fleet was made up of the same 4.6L V8 mated to a 4-speed automatic transmission, or as some would say... slush-box. The image that Cadillac had of this time was of a retirement vehicle to be shipped to its owners new retirement home in Florida with a soft ride, smooth powerful delivery and no performance. With the latest generation of Cadillac's being performance oriented beginning with the LS2 sourced CTS-V and now containing the ATS-V, CTS-V along with several other V-Sport models, a rebranding is crucial in order to appeal to a new market of buyers.
Also interesting to note is that although there is an increased amount of performance models being produced, fuel efficiency is not lacking. The gap noted above has decreased although there has been an increase in performance models being developed, a concept not often found to align.
3: Cadillac vs German Luxury Market
Cadillac has recently targeted the German luxury market consisting of the following manufacturers:
- Audi
- BMW
- Mercedes-Benz
Question:
How does Cadillac perform when compared with the German Luxury Market?
# Calculate Cadillac average Highway / City MPG past 2000
CadCityMPG <- filter(CadCityMPG, year > 2000)
CadHwyMPG <- filter(CadHwyMPG, year > 2000)
# Calculate Audi average Highway / City MPG
AudCityMPG <- filter(FuelDataV1, make == "Audi", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "Audi") %>%
mutate(., MPGType = "City")
AudHwyMPG <- filter(FuelDataV1, make == "Audi", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "Audi") %>%
mutate(., MPGType = "Highway")
# Calculate BMW average Highway / City MPG
BMWCityMPG <- filter(FuelDataV1, make == "BMW", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "BMW") %>%
mutate(., MPGType = "City")
BMWHwyMPG <- filter(FuelDataV1, make == "BMW", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "BMW") %>%
mutate(., MPGType = "Highway")
# Calculate Mercedes-Benz average Highway / City MPG
MbzCityMPG <- filter(FuelDataV1, make == "Mercedes-Benz", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(city08, na.rm = TRUE)) %>%
mutate(., Label = "Merc-Benz") %>%
mutate(., MPGType = "City")
MbzHwyMPG <- filter(FuelDataV1, make == "Mercedes-Benz", year > 2000) %>%
group_by(., year) %>%
summarize(., MPG = mean(highway08, na.rm = TRUE)) %>%
mutate(., Label = "Merc-Benz") %>%
mutate(., MPGType = "Highway")
# Concatenate all Highway/City MPG data for:
# v.s. German Competitors
CompGerCadCity <- rbind(CadCityMPG, AudCityMPG, BMWCityMPG, MbzCityMPG)
CompGerCadHwy <- rbind(CadHwyMPG, AudHwyMPG, BMWHwyMPG, MbzHwyMPG)
ggplot(data = CompGerCadCity, aes(x = year, y = MPG, color = Label)) +
geom_line() + geom_point() + theme_bw() +
scale_color_manual(name = "Cadillac vs German Luxury Market",
values = c("#333333", "#666666", "blue","#999999")) +
ggtitle("CITY MPG\n(Cad vs Audi vs BMW vs Mercedes-Benz)")
ggplot(data = CompGerCadHwy, aes(x = year, y = MPG, color = Label)) +
geom_line() + geom_point() + theme_bw() +
scale_color_manual(name = "Cadillac vs German Luxury Market",
values = c("#333333", "#666666", "blue","#999999")) +
ggtitle(label = "HIGHWAY MPG\n(Cad vs Audi vs BMW vs Mercedes-Benz)")
Conclusion:
โMr. Ellinghaus, a German who came to Cadillac in January from pen maker Montblanc International after more than a decade at BMW, said he has spent the past 11 months doingโfoundational work" to craft an overarching brand theme for Cadillacโs marketing, which he says relied too heavily on product-centric, me-too comparisons.
โIn engineering terms, it makes a lot of sense to benchmark the cars against BMW,โ Mr. Ellinghaus said. But he added: โFrom a communication point of view, you must not follow this rule.โ http://adage.com/article/cmo-strategy/ellinghaus-cadillac-a-luxury-brand-makes-cars/296016/
Despite comments made by Mr. Ellinghaus, the end goal is for consumers to be comparing Cadillac with Audi, BMW and Mercedes-Benz. The fact that this is already happening is a huge success for the company which only ten years ago, would never be mentioned in the same sentence as the German Luxury market.
Data visualization shows that Cadillac is equally rated as its German competitors and at the same time, has not had any significant dips unlike all other manufacturers. The continued increase in performance combined with rebranding signify that Cadillac is on a path to success.
4: Cadillac vs German Luxury Market by Vehicle Class
Every manufacturer has its strengths and weaknesses. It is important to assess and recognize these attributes to best determine where an increase in R&D spending is needed and where to maintain a competitive advantage for the consumer by vehicle class.
Question:
In what vehicle class is Cadillac excelling or falling behind?
# Filter only Cadillac and german luxury market
German <- filter(FuelDataV1, make %in% c("Cadillac", "Audi", "BMW", "Mercedes-Benz"))
# Group vehicle classes into more generic classes
German$VClass.new <- ifelse(grepl("Compact", German$VClass, ignore.case = T), "Compact",
ifelse(grepl("Wagons", German$VClass), "Wagons",
ifelse(grepl("Utility", German$VClass), "SUV",
ifelse(grepl("Special", German$VClass), "SpecUV", German$VClass))))
# Focus on vehicle model years past 2000
German <- filter(German, year > 2000)
# Vans, Passenger Type are only specific to one company and are not needed for this analysis
German <- filter(German, VClass.new != "Vans, Passenger Type")
# INDUSTRY
IndClass <- filter(German, make %in% c("Audi", "BMW", "Mercedes-Benz")) %>%
group_by(VClass.new, year) %>%
summarize(AvgCity = mean(city08), AvgHwy = mean(highway08))
# CADILLAC
CadClass <- filter(German, make %in% c("Cadillac")) %>%
group_by(VClass.new, year) %>%
summarize(AvgCity = mean(city08), AvgHwy = mean(highway08))
##### Join tables #####
CadIndClass <- left_join(IndClass, CadClass, by = c("year", "VClass.new"))
CadIndClass$DifCity <- (CadIndClass$AvgCity.y - CadIndClass$AvgCity.x)
CadIndClass$DifHwy <- (CadIndClass$AvgHwy.y - CadIndClass$AvgHwy.x)
ggplot(CadIndClass, aes(x = year, ymax = DifCity, ymin = 0) ) +
geom_linerange(color='grey20', size=0.5) +
geom_point(aes(y=DifCity), color = 'blue') +
geom_hline(yintercept = 0) +
theme_bw() +
facet_wrap(~VClass.new) +
ggtitle("Cadillac vs Germany Luxury Market\n(city mpg by class)") +
xlab("Year") +
ylab("MPG Difference")
ggplot(CadIndClass, aes(x = year, ymax = DifHwy, ymin = 0) ) +
geom_linerange(color='grey20', size=0.5) +
geom_point(aes(y=DifHwy), color='blue') +
geom_hline(yintercept = 0) +
theme_bw() +
facet_wrap(~VClass.new) +
ggtitle("Cadillac vs German Luxury Market\n(highway mpg by class)") +
xlab("Year") +
ylab("MPG Difference")
Conclusion:
The above data visualization displays the delta between Cadillac and the average (Audi, BMW, Mercedes-Benz) fuel economy ratings. Positive can then be considered above the average competition and negative, below the average competition.
There is a lack of performance across all vehicle classes. Reasoning may be because the same power trains are being used across multiple chassis.
Conclusion & Continued Analysis
- There is a clear improvement in EPA ratings as federal emission standards drive innovation for increased fleet fuel economy. It is important for automotive manufacturers to continue innovation and push for increased efficiency.
- Further analysis on the following areas provides greater researcher opportunity:
- Drivetrain v.s. MPG
- Sales data
- Consumer reaction to new marketing strategies
- Consumer demand for product or badge