# Best way to display data with outliers?

I am fairly new to data analysis and visualization, and I'm trying to figure out the best model to show some data regarding page load time (in seconds).

The current view is a line graph where the x-axis is the page, and the y-axis is the load time. This graph is visually misleading though, because in my mind, the psychological expectation of a line graph is to convey something over time. Because there are a couple of outliers in the data where the page load time is much longer than the average, someone looking at the graph might be turned off because their eyes jump to the outliers, so it looks like our pages take forever to load. In actuality, about 95% of the pages take fewer than two seconds to load, and 5% of the pages take longer.

So what's the best method to display this data? I want people to understand that on average, our page load time is great, and there are very few exceptions. I feel like depicting a bell curve might help to show that the majority of the pages fall within x-standard deviations of the mean, but A) I'm not sure how to do that in Excel, and B) I'm not sure that's the best option.

• Bucket them and do bar graphs? (imgur.com/VidYa) Dec 13 '12 at 16:46
• Boxplot? This requires some manual work in Excel, though: support.microsoft.com/kb/155130 The R Graph Gallery offers a few alternatives here: gallery.r-enthusiasts.com/graph/The_boxplot_friends,102 Dec 13 '12 at 17:32
• I am not sure I understand what you are representing: Individual data points or averages? If it is an average per page, over a decent number of views, I don't think it's a good idea to bury the “outliers” out of view because those would not be peculiar observations because something occasionally goes wrong but pages that consistently take a long time to load. This seems like an important information to have and display. Generally speaking, the notion of “outlier” is somewhat fuzzy, it all depends on the audience and the purpose of the representation.
– Gala
Dec 13 '12 at 18:05
• Additionally, the prescription against line graphs for categorical variables is somewhat questionable: Andrew Gelman uses them extensively for that purpose as does the SPSS ANOVA procedure (interaction plots). It will again depend on the audience but I am not convinced that this is really a problem.
– Gala
Dec 13 '12 at 18:09
• Understood, Gael. It is my understanding that the load time for each page is an average load time (for that page) over a certain period. The purpose of the representation is to 'show off' our server responsiveness to potential clients, so we want to stress that the majority of pages load very quickly (on average).
– Jon
Dec 13 '12 at 18:28

## 1 Answer

The standard traditional tool is a histogram. You can do this with the analysis tool pack in Excel, but I'd recommend using a stats package instead.

An extension of the histogram is a line plot showing the density - this is basically your idea of shwoing the bell curve, and it is probably the right one. From here there are various options such as drawing vertical lines to show the mean, median, 95th percentile, etc. To do this you will definitely want a stats package.

Some examples are below, including the code in R (which is free) that generated the data and drew the plots. You can see it that's not necessarily that hard to do this sort of thing in a stats package, if you're prepared to move beyond Excel.

# generate data
times <- rgamma(1000,1,1)

# draw histogram, showing counts
hist(times, col="grey")

# draw a density line plot
plot(density(times), bty="l")

# add vertical lines for the median and 95th percentile
abline(v=quantile(times, c(0.5, 0.95)), lty=2:3)


• I've used R and SAS before, but they're more acclimated with Excel, so I figured I should stick to that. This gives me a good starting point. Thanks for the help! The sample graphs look more like what I would expect to show to a client.
– Jon
Dec 13 '12 at 19:37