UFC Data Analysis - Shiny App ( UFC Data Analysis Part II)

Posted on Aug 24, 2017
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.


After successfully scraping and cleaning all the data I needed from my last post (UFC Data Scrape using R (UFC Data Analysis Part I), I was able to do some analysis and see if there is any interesting findings. I will make the analysis part into a Shiny App which is more interactive and compact. This is just a brief walk-through of my App.

If you want to download my App, the full project can be found at: https://github.com/Jian-Qiao/UFC-Data-Analysis-Shiny-App-

Interface Walk Through:

My App has 4 section: the Summary, Fighters, Fights, Fighter Search Wizzard.

Most of the graphs are drawn by googleVis for better intractability. But in the actual code, you can still find these graph plotted by ggplot2 (which is commented out).

UFC Data Analysis - Shiny App ( UFC Data Analysis Part II)

Data Summary

  • On the top left part of this section is a summary of the countries where all the historical events occurred. As we can see from the bar chart, most of the events were held in United States ( As UFC is a US organization), followed  by Brazil and Canada. (If you move your mouse on each bar, you will be able to see a detailed number of each country).
  • On the right is a leaflet geographical map showing where exactly all past events were held. The size of the circle indicates how many events were held in a certain stadium. It's pretty clear that most of the events took place in Las Vegas. There are also multiple marks in Canada, Europe, and South Africa (Brazil).  Some events were held in Australia and Asia. If you move your mouse on  any of those marks, a popup box will show you the name of the stadium, its address, and how many events were held there.
  • Following up with the second map in the middle, it shows how many fighters are from which country. In this part, the US is in  the lead, followed by Brazil and Canada. Since these 3 countries represent the majority of the portions of fighters, I offer an option on the left of this map to exclude a specific country in the map. I hope it will enable the user to have a closer inspection on the rest of the countries. If you move your mouse over a country in the map, a popup box will show you the country name, and the number of fighters.
  • The third map on the bottom is a map of win-rate by country. Although the US has the most fighters, its win-rate is mediocre (0.491). The win-rates for Canada and Brazil are 0.496 and 0.551 respectively. Interestingly, Russia holds a 0.616 average win-rate, which is very significant. Again, if you move your mouse over any country in the map, a popup box will tell you the country name and the exact average win-rate for this country.

Data on Fighters:

UFC Data Analysis - Shiny App ( UFC Data Analysis Part II)

Data Analysis

  • On the top left is a screen-shot I took from Wikipedia. It show the definition of every single weight class. If you click on the picture, it will take you to the Wikipedia page of UFC.
  • The first graph on the right is a bar-chart showing the distribution among all weight class. We can see that most of the fights are in Welterweight (155~170 lbs), Lightweight (145~155 lbs), and Middleweight (170~185 lbs). If you move your mouse over one of the bars, you will be able to see a detailed number.
  • The second graph is a bar-chart showing the age distribution among all ages. Most fighters are in the age range of 26 to 32. It’s rare to have someone over 39. As a type of sport, martial art requires the participant's physical strength, which is very much a function of his age.
  • The last graph on the right is a line graph of the win-rate by age. An interesting fact is that win-rate decreases with age. At first I thought fight experience can be a great advantage, but that assumption is proven wrong from the graph. However, after age of 40, the win-rate bounces up and down because of its low population. (Thus, the outcome of one match can significantly affect the win-rate.)

Data on Fights:

UFC Data Analysis - Shiny App ( UFC Data Analysis Part II)

Data Analysis 

  • UFC fights have different kinds of outcome: Decision ( judge decide winner), DQ (disqualified), Draw, KO, No Contest (due to accidentally close of event/match), Submission (one of the fighter accept loss), Technical Submission (one of the fighter's coach accept loss), TKO (technical KO, if the referee decides a fighter cannot continue, the fight is ruled as a technical knockout). A brief explanation can be found at the top left part of this section.
  • The pie chart on the top right corner shows the proportions of these outcomes take. We can see most of the time, the result is drawn by Decision, followed by TKO and Submission. KO only takes 11.7% of all matches.
  • The second graph show how the proportions of the outcomes change by age. KO and TKO actually get more proportion. That means fights are getting more effective with more experience.
  • The last pie chart shows which techniques are involved in wins.. Direct Punch takes 70.7% of the winnings by KO.  Rear-Naked Choke, Guillotine Choke, and Arm Bar take 34.4%, 17.7% and 11.2% of all winnings by Submission. These techniques are like the basics of any martial art style, which indicates 2 facts: 1. Being effective on basic skills is more important than learning those flashy crazy moves; 2. It's hard to say if any particular martial art system is better.

Data on Fighter Search Wizard:

Last but not least, I present you with a UFC fighter searching wizard.

You can find the fighter you want by First Name, Last Name, Birth Date, Age, Country, Class, Height,Weight in the table above.

After having the name of your fighter in mind. You can put his name in the text box below and click 'Search'. Voila! You can see the photo of him/her, the information about him/her, and all his/her statistic.

About Author

Jian Qiao

Jian Qiao is a recent graduate of 12-weeks Online Data Science Boot-camp from NYC Data Science Academy. He has earned his M.S. in Quantitative Finance in 2015. Currently working as a data analyst in Almod Diamonds Ltd, he...
View all posts by Jian Qiao >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI