11
Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, [email protected] Introduction Tennis has become a global sport and I am a big fan of tennis. Since I played college tennis for Cal, and I would like to do statistical analyses to my favorite player of all time - Roger Federer, about his performances in 2013 and 2014.Here were why I specifically choose these two years: In 2013: A. He had a back injury throughout his career, but in 2013, it was his lowest point of his career. B. He hadn’t reached a grand slam final for the first time in 10 years (2003-2012), and he had the lowest win/loss record in his entire career. In 2014: A. He changed his coach from Paul Annacone to one of the tennis legends - Stefan Edberg. B. He changed his racket for the first time in his career. One year may not be long or short, but it could turn things upside down for Federer. I’m going to examine all of his match records from 2013 and 2014, excluding Davis Cup which is an individual represent his country to participate a team event that battle against other countries. It occurs every year, but not every professional play Davis Cup each year, so I would leave Davis Cup out for the analysis. I was going to use various methods to analyze his performances so it would be fitting to show his worst and one of his good years after a short period of time. The data I got was from Datahub, which compiled men’s and women’s tennis results from 2000 to 2016. Website: https://datahub.io/dataset/atp-wta-professional-tennis-tournament-data. Methods: I wanted to achieve a couple things for 2013 and 2014 results. Objectives were: 1. How many sets he had won and lost 2. How many tournaments he had won and how many tournaments he had lost in the finals 3. His winning percentage Per Year 4. His performances in the 4 Grand Slams (Australian Open, French Open, Wimbledon, US Open) Per Year 5. Which surface he performed better (Hard, Clay, Grass) 6. Show his Total Wins Per Surface Per Year Imported datasets for 2013 and 2014. Also, I filtered which I would take some columns that are useful to do analysis - tournament, date, surface, round, best of, winner, loser, Wsets, Lsets. results_13 <- read.csv("/Users/KingKong1/Desktop/GIS Work/R/Roger Federer's Analysis/Final Project/full_r esults_2013.csv", header = TRUE) results_14 <- read.csv("/Users/KingKong1/Desktop/GIS Work/R/Roger Federer's Analysis/Final Project/full_r esults_2014.csv", header = TRUE) subset_13 <- results_13[, c(3, 4, 6, 7, 8, 9,10, 11, 26, 27) ] subset_14 <- results_14[, c(3, 4, 6, 7, 8, 9,10, 11, 26, 27) ] Filtered results by combining wins and losses. The column headings were as following from two datasets. rf_13 <- subset_13[which(subset_13$Winner == 'Federer R.' | subset_13$Loser == 'Federer R.'), ] rf_14 <- subset_14[which(subset_14$Winner == 'Federer R.' | subset_14$Loser == 'Federer R.'), ] head(rf_13)

Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, [email protected]

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

Statistical Analyses on Roger Federer’sPerformances in 2013 and 2014James Kong, [email protected]

IntroductionTennis has become a global sport and I am a big fan of tennis. Since I played college tennis for Cal, and I would like to do statisticalanalyses to my favorite player of all time - Roger Federer, about his performances in 2013 and 2014.Here were why I specifically choosethese two years:

In 2013:

A. He had a back injury throughout his career, but in 2013, it was his lowest point of his career.

B. He hadn’t reached a grand slam final for the first time in 10 years (2003-2012), and he had the lowest win/loss record in his entirecareer.

In 2014:

A. He changed his coach from Paul Annacone to one of the tennis legends - Stefan Edberg.

B. He changed his racket for the first time in his career.

One year may not be long or short, but it could turn things upside down for Federer. I’m going to examine all of his match records from2013 and 2014, excluding Davis Cup which is an individual represent his country to participate a team event that battle against othercountries. It occurs every year, but not every professional play Davis Cup each year, so I would leave Davis Cup out for the analysis.

I was going to use various methods to analyze his performances so it would be fitting to show his worst and one of his good years after ashort period of time.

The data I got was from Datahub, which compiled men’s and women’s tennis results from 2000 to 2016. Website:https://datahub.io/dataset/atp-wta-professional-tennis-tournament-data.

Methods:I wanted to achieve a couple things for 2013 and 2014 results. Objectives were:

1. How many sets he had won and lost

2. How many tournaments he had won and how many tournaments he had lost in the finals

3. His winning percentage Per Year

4. His performances in the 4 Grand Slams (Australian Open, French Open, Wimbledon, US Open) Per Year

5. Which surface he performed better (Hard, Clay, Grass)

6. Show his Total Wins Per Surface Per Year

Imported datasets for 2013 and 2014. Also, I filtered which I would take some columns that are useful to do analysis - tournament, date,surface, round, best of, winner, loser, Wsets, Lsets.

results_13 <- read.csv("/Users/KingKong1/Desktop/GIS Work/R/Roger Federer's Analysis/Final Project/full_results_2013.csv", header = TRUE)results_14 <- read.csv("/Users/KingKong1/Desktop/GIS Work/R/Roger Federer's Analysis/Final Project/full_results_2014.csv", header = TRUE)subset_13 <- results_13[, c(3, 4, 6, 7, 8, 9,10, 11, 26, 27) ]subset_14 <- results_14[, c(3, 4, 6, 7, 8, 9,10, 11, 26, 27) ]

Filtered results by combining wins and losses. The column headings were as following from two datasets.

rf_13 <- subset_13[which(subset_13$Winner == 'Federer R.' | subset_13$Loser == 'Federer R.'), ]rf_14 <- subset_14[which(subset_14$Winner == 'Federer R.' | subset_14$Loser == 'Federer R.'), ]head(rf_13)

Page 2: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

Tournament Date Court Surface Round Best.of183 Australian Open 1/15/13 Outdoor Hard 1st Round 5229 Australian Open 1/17/13 Outdoor Hard 2nd Round 5246 Australian Open 1/19/13 Outdoor Hard 3rd Round 5255 Australian Open 1/21/13 Outdoor Hard 4th Round 5259 Australian Open 1/23/13 Outdoor Hard Quarterfinals 5261 Australian Open 1/25/13 Outdoor Hard Semifinals 5 Winner Loser Wsets Lsets183 Federer R. Paire B. 3 0229 Federer R. Davydenko N. 3 0246 Federer R. Tomic B. 3 0255 Federer R. Raonic M. 3 0259 Federer R. Tsonga J.W. 3 2261 Murray A. Federer R. 3 2

head(rf_14)

Tournament Date Court Surface Round Best.of4 Brisbane International 1/1/14 Outdoor Hard 2nd Round 312 Brisbane International 1/3/14 Outdoor Hard Quarterfinals 314 Brisbane International 1/4/14 Outdoor Hard Semifinals 315 Brisbane International 1/5/14 Outdoor Hard The Final 3171 Australian Open 1/14/14 Outdoor Hard 1st Round 5213 Australian Open 1/16/14 Outdoor Hard 2nd Round 5 Winner Loser Wsets Lsets4 Federer R. Nieminen J. 2 012 Federer R. Matosevic M. 2 014 Federer R. Chardy J. 2 115 Hewitt L. Federer R. 2 1171 Federer R. Duckworth J. 3 0213 Federer R. Kavcic B. 3 0

Noticed that both datasets columns headings were identical; I was going to do a merge between tables. However, I couldn’t merge tablesbecause I didn’t have unique IDs to join two tables. In addition, if I had had joined two tables, my data would be messed up because itwould use a column from one table to join to the others, which would comprise results and changed the data structure.

Therefore, I would use “append” because number of columns and column headings were identical. Also, I will show the strings of theappend; replace NA values to 0 on the sets he won and lost.

rf_13_14 <- rbind(rf_13,rf_14)str(rf_13_14)

'data.frame': 142 obs. of 10 variables: $ Tournament: Factor w/ 72 levels "Abierto Mexicano",..: 7 7 7 7 7 7 2 2 2 22 ... $ Date : Factor w/ 560 levels "1/1/13","1/10/13",..: 6 8 10 13 15 17 74 75 76 86 ... $ Court : Factor w/ 2 levels "Indoor","Outdoor": 2 2 2 2 2 2 1 1 1 2 ... $ Surface : Factor w/ 3 levels "Clay","Grass",..: 3 3 3 3 3 3 3 3 3 3 ... $ Round : Factor w/ 8 levels "1st Round","2nd Round",..: 1 2 3 4 5 7 1 2 5 1 ... $ Best.of : int 5 5 5 5 5 5 3 3 3 3 ... $ Winner : Factor w/ 244 levels "Almagro N.","Alund M.",..: 54 54 54 54 54 131 54 54 15 54 ... $ Loser : Factor w/ 388 levels "Aguilar J.","Ali Mutawa J.M.",..: 211 60 272 229 277 85 301 61 85 130 ... $ Wsets : int 3 3 3 3 3 3 2 2 2 2 ... $ Lsets : int 0 0 0 0 2 2 0 0 0 1 ...

rf_13_14$Wsets[is.na(rf_13_14$Wsets)] <- 0rf_13_14$Lsets[is.na(rf_13_14$Lsets)] <- 0

Changed the columns type - Date and added a new column “Year” to categorize all matches that Federer played in 2013 or 2014.

rf_13_14$Date <- as.Date(rf_13_14$Date, format = "%m/%d/%y")rf_13_14$Year <- format(rf_13_14$Date, format = "%Y")

Comments: Later, when I did sum, subract or other statistical functions, I wouldn’t get errors saying in my columns that had “NA” values orcan’t sort by dates/year.

Page 3: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

1. How many sets he won and lostlibrary(plyr)rf_win_loss <- ddply(rf_13_14, ~Year, summarise, Sets_won = sum(Wsets), Sets_Loss = sum(Lsets))print(rf_win_loss)

Year Sets_won Sets_Loss1 2013 141 242 2014 179 32

2. How many tournaments he had won and had lost in the final by year.I had to subset wins and losses in the final, so I used “round = the final & winner = federer” to specify my subset. It was because that wasthe only way to know if he had won a tournament or not, and vice versa.

After that, I bind two datasets to see his overall performances in finals whether wins or losses, and then added a column with conditionstatement, if winner = Federer R, print “Win”, else “Loss”.

rf_tournaments_won <- rf_13_14[which(rf_13_14$Round == "The Final" & rf_13_14$Winner == "Federer R.") , ]rf_tournaments_lost <- rf_13_14[which(rf_13_14$Round == "The Final" & rf_13_14$Loser == "Federer R."), ]rf_tournament_record <- rbind(rf_tournaments_won, rf_tournaments_lost)rf_tournament_record$W_L <- ifelse(rf_tournament_record$Winner == "Federer R.", "Win", "Loss")print(head(rf_tournament_record))

Tournament Date Court Surface1355 Gerry Weber Open 2013-06-16 Outdoor Grass575 Dubai Tennis Championships 2014-03-01 Outdoor Hard1347 Gerry Weber Open 2014-06-15 Outdoor Grass2011 Western & Southern Financial Group Masters 2014-08-17 Outdoor Hard2383 Shanghai Masters 2014-10-12 Outdoor Hard2495 Swiss Indoors 2014-10-26 Indoor Hard Round Best.of Winner Loser Wsets Lsets Year W_L1355 The Final 3 Federer R. Youzhny M. 2 0 2013 Win575 The Final 3 Federer R. Berdych T. 2 1 2014 Win1347 The Final 3 Federer R. Falla A. 2 0 2014 Win2011 The Final 3 Federer R. Ferrer D. 2 1 2014 Win2383 The Final 3 Federer R. Simon G. 2 0 2014 Win2495 The Final 3 Federer R. Goffin D. 2 0 2014 Win

Separated 2013 and 2014 records and found out W-L record by calculating the frequency.

library(knitr)

Warning: package 'knitr' was built under R version 3.3.2

rf_tournament_record$Date <- as.Date(rf_tournament_record$Date, format = "%m/%d/%y")rf_tournament_record$Year <- format(rf_tournament_record$Date, format = "%Y")final_records_2013 <- rf_tournament_record[rf_tournament_record$Year == 2013, ]final_records_2014 <- rf_tournament_record[rf_tournament_record$Year == 2014, ]freq_2014 <- count(final_records_2014, c("W_L", "Year"))freq_2013 <- count(final_records_2013, c("W_L", "Year"))c <- cbind(freq_2013,freq_2014)W_L <- c[order(c$freq ),]colnames(W_L)[c(1,4)] <- "Number of Finals"colnames(W_L)[c(3,6)] <- "Total"kable(W_L)

Number of Finals Year Total Number of Finals Year Total

2 Win 2013 1 Win 2014 5

1 Loss 2013 2 Loss 2014 6

Comments: From the table above, there were significant changes between 2013 and 2014’s win-loss record. Even though 2014 had morelosses in the final, he still won more finals compared to 2013.

Page 4: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

3. His winning percentage from 2013 to 2014.Added “Year” and “W_L” columns, and organize them by categories to both years.

rf_13$Date <- as.Date(rf_13$Date, format = "%m/%d/%y")rf_13$Year <- format(rf_13$Date, format = "%Y")rf_13$W_L <- ifelse(rf_13$Winner == "Federer R.", "Win", "Loss")

rf_14$Date <- as.Date(rf_14$Date, format = "%m/%d/%y")rf_14$Year <- format(rf_14$Date, format = "%Y")rf_14$W_L <- ifelse(rf_14$Winner == "Federer R.", "Win", "Loss")

2013 and 2014 winning percentage

total_percentages_2013 <- count(rf_13, c("W_L", "Year"))print(total_percentages_2013)

W_L Year freq1 Loss 2013 172 Win 2013 45

winning_percentages_2013 <- total_percentages_2013$freq/ sum(total_percentages_2013$freq)print( winning_percentages_2013[2])

[1] 0.7258065

total_percentages_2014 <- count(rf_14, c("W_L", "Year"))print(total_percentages_2014)

W_L Year freq1 Loss 2014 122 Win 2014 68

winning_percentages_2014 <- total_percentages_2014$freq/ sum(total_percentages_2014$freq)print( winning_percentages_2014[2])

[1] 0.85

Now, I transformed the digits to actual percentage using “%” sign. To do that, I wrote a empty function and then added the winningpercentage of both years.

Then, Put 2013 and 2014 percentages together in matrix and used new labels.

percent <- function(x, digits = 2, format = "f", ...) { paste0(formatC(100 * x, format = format, digits = digits, ...), "%")}percentage_2013 <- percent(winning_percentages_2013[2])percentage_2014 <- percent(winning_percentages_2014[2])matrix_2013_2014 <- matrix(c(percentage_2013, percentage_2014), nrow = 2, ncol = 1, byrow = TRUE)dimnames(matrix_2013_2014) = list( c("2013", "2014"), c("Win - Loss Percent/ Year"))kable(matrix_2013_2014)

Win - Loss Percent/ Year

2013 72.58%

2014 85.00%

4. His performances in 4 Grand Slams (Australian Open, French Open,

Page 5: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

Wimbledon, US Open)1st, I made each round from text to sequence of numbers. It was because I could better represent which round he made per grand slam indescending method, only if I had numeric columns. E.g. 1st,2nd,3nd,4th, quarter final,semi final, the final -> 1,2,3,4,5,6,7

grandslams_2013 <- rf_13[which(rf_13$Tournament == "Australian Open" | rf_13$Tournament == "French Open" | rf_13$Tournament == "Wimbledon" | rf_13$Tournament == "US Open") , ]grandslams_2013$Round_Number <- c(1,2,3,4,5,6,1,2,3,4,5,1,2,1,2,3,4)

grandslams_2014 <- rf_14[which(rf_14$Tournament == "Australian Open" | rf_14$Tournament == "French Open" | rf_14$Tournament == "Wimbledon" | rf_14$Tournament == "US Open") , ] grandslams_2014$Round_Number <- c(1,2,3,4,5,6,1,2,3,4,1,2,3,4,5,6,7,1,2,3,4,5,6) grandslams_2013_loss <- grandslams_2013[which(grandslams_2013$Loser == "Federer R."), ]grandslams_2014_loss <- grandslams_2014[which(grandslams_2014$Loser == "Federer R."), ]

Reordered the factor as the calendar year grand slam played in the sequence - Aussie Open -> French Open -> Wimbledon -> US Open,so that when projecting graphs, it would be according to this level I set up.

library(ggplot2)

Warning: package 'ggplot2' was built under R version 3.3.2

grandslams_2013_loss$Tournament <- factor(grandslams_2013_loss$Tournament, levels = c("Australian Open", "French Open", "Wimbledon", "US Open"))graph_2013 <- ggplot(grandslams_2013_loss, aes(x = Tournament, y = Round_Number, group = 1)) + geom_line(colour = "red", linetype = "longdash") + ggtitle("2013 Grand Slam Results") + labs( x = "Grand Slam", y = "Round Number") + geom_point(shape = 13,colour = "grey60", size = 2) + geom_text(aes(label = Round), vjust = 2, hjust = 0, nudge_y = 0.3, colour = "blue", check_overlap = FALSE) + theme(panel.background = element_rect(fill = "grey"))graph_2013

Create 2014 Grand Slam results.

Page 6: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

grandslams_2014_loss$Tournament <- factor(grandslams_2014_loss$Tournament, levels = c("Australian Open", "French Open", "Wimbledon", "US Open"))graph_2014 <- ggplot(grandslams_2014_loss, aes(x = Tournament, y = Round_Number, group = 1)) + geom_line(colour = "gray", linetype = "dotdash") + ggtitle("2014 Grand Slam Results") + labs( x = "Grand Slam", y = "Round Number") + geom_point(shape= 8, fill = "white", size = 2) + geom_text(aes(label = Round), vjust = 2, hjust = 0, nudge_y = 0.3, colour = "red", check_overlap = FALSE) + theme(panel.grid.minor = element_line(colour = "red", linetype = "dotted"))graph_2014

Lined them up together in the same plot because it might show different perspective.

grandslams_combine_res <- rbind(grandslams_2013_loss, grandslams_2014_loss)graph_combine <- ggplot(data=grandslams_combine_res, aes(x=factor(Tournament), y=Round_Number, group=Year, colour=Year)) + ggtitle("2013 vs 2014 Grand Slam Results") + xlab(" Grand Slam ") + ylab( "Round Number ") + geom_line(aes(linetype = Year)) + scale_linetype_manual(values=c("twodash", "dotted")) + scale_color_brewer(palette="Paired") + theme_minimal() + geom_point(aes(shape=Year)) + theme(legend.text = element_text(size = 10, colour = "red", angle = 10), legend.background = element_rect(colour = "black"), panel.background = element_rect(fill = "white"))graph_combine

Page 7: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

Comments: Federer did extremely well in 3 out of 4 Grand Slams from 2013 to 2014.

5. Which surface he performed better (Hard, Clay, Grass) and combine bothyears to do regression analysisFirst, I would add columns that represent each match played in each surface as 1, else 0. E.g. I created 3 columns to represent number ofmatches played in each surface. These 3 columns - hard, clay and grass would be independent variables.

Second, depedent variable would be total number of sets he lost (column = Lsets)

Third, my hypothesis: Total number of sets he lost had no relationship on 3 surfaces.

rf_13_14$Hard <- ifelse(rf_13_14$Surface == "Hard", 1, 0)rf_13_14$Clay <- ifelse(rf_13_14$Surface == "Clay", 1, 0)rf_13_14$Grass <- ifelse(rf_13_14$Surface == "Grass", 1, 0)regression_L <- lm( Lsets ~ Hard + Clay + Grass, data = rf_13_14)summary(regression_L)

Call:lm(formula = Lsets ~ Hard + Clay + Grass, data = rf_13_14)

Residuals: Min 1Q Median 3Q Max -0.4074 -0.3980 -0.3980 0.6020 1.6471

Coefficients: (1 not defined because of singularities) Estimate Std. Error t value Pr(>|t|) (Intercept) 0.35294 0.13934 2.533 0.0124 *Hard 0.04502 0.15094 0.298 0.7660 Clay 0.05447 0.17788 0.306 0.7599 Grass NA NA NA NA ---Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.5745 on 139 degrees of freedomMultiple R-squared: 0.0007629, Adjusted R-squared: -0.01361 F-statistic: 0.05306 on 2 and 139 DF, p-value: 0.9483

plot(regression_L)

Page 8: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu
Page 9: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

From the regression mode, the variables were all 1s and 0s. Therefore, there were no variation in the plots as the graphs showed. Inaddition, they were one sided and clustered in space.

Moreover, from the summary, it showed that p-value was too high; normally, in a good model, p-value would be below 0.5%. Also, R-squared was negative which hypothesis could be rejected since there were relationships in the model and variables were not randomlydistributed.

6. Show his Total Wins Per Surface Per Year2013 and 2014 Surfaces’ performance summary. To calculate total wins per surface, it would be better to add a numeric column for everywin = 1, else 0, and calculate sum of each win/ surface

Page 10: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

rf_13$Number <- ifelse(rf_13$W_L == "Win", 1,0)surface_2013 <- data.frame(tapply(rf_13$Number, rf_13$Surface,sum))surface_2013$Year <- 2013colnames(surface_2013) <- c("Total Wins", "Year")rf_14$Number <- ifelse(rf_14$W_L == "Win", 1,0)surface_2014 <- data.frame(tapply(rf_14$Number, rf_14$Surface,sum))surface_2014$Year <- 2014colnames(surface_2014) <- c("Total Wins", "Year")surface_performance <- rbind(surface_2013, surface_2014)surface_performance$Surface <- c("Clay", "Grass", "Hard")

Surface results in barplot by year.

surface_performance$Year<- as.character(surface_performance$Year)surface_combine <- ggplot(data = surface_performance, aes(x = Surface, y = `Total Wins`, group = Year, fill = Year)) + ggtitle("Total Wins Per Surface") + theme(plot.title = element_text(lineheight=.8, face="bold")) + geom_bar( stat = 'identity', color = 'black', position="dodge") + geom_text(aes(label=`Total Wins`), vjust=1.5, colour="white", position=position_dodge(.9), size=5) + scale_fill_manual(values= c("#d8b365", "#5ab4ac"))surface_combine

Facets the barplot result to look at different angle

surface_combine_facet <- ggplot(data = surface_performance, aes(x = Surface, y = `Total Wins`, group = Year, fill = Year)) + geom_bar( stat = 'identity', color = 'red', position="dodge") + geom_text(aes(label=`Total Wins`), vjust=1.5, colour="black", position=position_dodge(.9), size=5) + scale_fill_brewer(palette = "Spectral")surface_combine_facet + facet_grid(Year ~ .) + theme(legend.position="none", strip.text.x = element_text(size=8, angle=75), strip.text.y = element_text(size=12, face="bold"), strip.background = element_rect(colour="red", fill="#CCCCFF"))

Page 11: Statistical Analyses on Roger Federer’s Performances in 2013 … · 2016-12-06 · Statistical Analyses on Roger Federer’s Performances in 2013 and 2014 James Kong, kong.james@berkeley.edu

ConclusionRoger Federer performed significantly better in terms of statistics including number of win-loss sets and finals he won and lost, win-losspercentage, Grand Slam results, and wins per year.

Perhaps, change of racket and coach helped him to bring back his old self.