From 08e0e37223bc10e350b3fdb31c931d3c014ccf9c Mon Sep 17 00:00:00 2001 From: Garrett Date: Wed, 18 May 2016 12:52:51 -0400 Subject: [PATCH 01/22] Outlines communication chapters --- dynamic-documents.Rmd | 8 +++++++- reproducible-research.Rmd | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dynamic-documents.Rmd b/dynamic-documents.Rmd index 126869e..4236ccc 100644 --- a/dynamic-documents.Rmd +++ b/dynamic-documents.Rmd @@ -1,3 +1,9 @@ # Dynamic Documents with R Markdown - +## Output formats +## Slide syntax +## Customizing output +## Tables +## Citations and bibliographies +## Interactive documents +## Templates diff --git a/reproducible-research.Rmd b/reproducible-research.Rmd index 417f03a..61a4839 100644 --- a/reproducible-research.Rmd +++ b/reproducible-research.Rmd @@ -1,3 +1,7 @@ # Reproducible Research with R Markdown - +## What is R Markdown? +## Using R Markdown in the RStudio IDE +## Write text +## Embed code +## Set Parameters From 5495ee3966632f352c643d42a8cf1b280a81c08f Mon Sep 17 00:00:00 2001 From: Garrett Date: Wed, 18 May 2016 12:57:20 -0400 Subject: [PATCH 02/22] Adds text to Explore intro --- explore.Rmd | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/explore.Rmd b/explore.Rmd index 1408c73..d9dfec0 100644 --- a/explore.Rmd +++ b/explore.Rmd @@ -2,4 +2,39 @@ # Introduction -Data poses a cognitive problem; Data comprehension is a skill. +```{r, include = FALSE} +library(ggplot2) +library(dplyr) +``` + +If you are like most humans, your brain isn't built to process tables of raw data. Instead, it is very good at analyzing images and comparing summary statistics. This part of the book will show you the best ways to visualize and transform your data to make discoveries, a process known as Exploratory Data Analysis (EDA). + +## Why read this Part? + +You may be surprised to learn that your mind can only attend to a few pieces of new information at a time. According to cognitive scientists, the human working memory can only handle four to seven novel values at once, which creates a bottleneck when you process information. + +You probably do not notice this bottleneck in your day-to-day life, but it becomes a big deal when you work with data. The bottleneck makes it difficult to discover patterns in your raw data. To discover even a simple pattern, you must consider many values _at the same time_, which is difficult to do. For example, a simple pattern exists between $X$ and $Y$ in the table below, but it is very difficult to spot. + +```{r data, echo=FALSE} +x <- rep(seq(0.2, 1.8, length = 5), 2) + runif(10, -0.15, 0.15) +X <- c(0.02, x, 1.94) +Y <- sqrt(1 - (X - 1)^2) +Y[1:6] <- -1 * Y[1:6] +Y <- Y - 1 +order <- sample(1:10) +knitr::kable(round(data.frame(X = X[order], Y = Y[order]), 2)) +``` + +While your mind may stumble over raw data, you can easily process visual information. Your brain processes visual information in a different (and much wider) channel than it processes symbolic information, like words and numbers. As a result, the quickest way to understand your data is to visualize it. Once you plot your data, you can instantly see the relationships between values. Here, we see that the values above fall on a circle. + +```{r echo=FALSE} +ggplot2::qplot(X, Y) + ggplot2::coord_fixed(ylim = c(-2.5, 0.5), xlim = c(-0.5, 2.5)) +``` + +Visualization works because your mind contains a visual processing system that has been fine-tuned by thousands of years of evolution. However, visualization is not the only way to comprehend data. + +You can also comprehend your data if you transform it into a small set of summary values. You can easily attend to a few summary values, which lets you absorb important information about the data. This is why it feels natural to work with things like averages, e.g. how tall is the average basketball player? An average is a single number that you can attend to. Although averages are quite popular, you can also compare data sets on other summary values, such as maximums, minimums, medians, and so on. + +Another way to summarize your data is to replace it with a model, a function that describes the relationships between two or more variables. You can comprehend the important parts of a model more easily than you can attend to the raw values in your data set. + +These tactics, visualizing, transforming, and modeling your data, are the most important tools for exploring data. This part will show you how to visualize and transform your data with R, as well as how to apply these skills to discover insights in your data. You will also learn the basics of modelling in R, which will prepare you for Part 4 of the book. From d895dbee9dd41a96adb4194bcaf503e0a4e2f403 Mon Sep 17 00:00:00 2001 From: Garrett Date: Thu, 19 May 2016 11:31:02 -0400 Subject: [PATCH 03/22] Edits visualization chapter. --- visualize.Rmd | 174 ++++++++++++++++++++------------------------------ 1 file changed, 68 insertions(+), 106 deletions(-) diff --git a/visualize.Rmd b/visualize.Rmd index 484f604..f8c2309 100644 --- a/visualize.Rmd +++ b/visualize.Rmd @@ -2,29 +2,11 @@ > "The simple graph has brought more information to the data analyst’s mind than any other device."---John Tukey -If you are like most humans, your brain is not designed to work with raw data. The working memory can only attend to a few values at a time, which makes it difficult to discover patterns in raw data. For example, can you spot the striking relationship between $X$ and $Y$ in the table below? - -```{r data, echo=FALSE} -x <- rep(seq(0.2, 1.8, length = 5), 2) + runif(10, -0.15, 0.15) -X <- c(0.02, x, 1.94) -Y <- sqrt(1 - (X - 1)^2) -Y[1:6] <- -1 * Y[1:6] -Y <- Y - 1 -order <- sample(1:10) -knitr::kable(round(data.frame(X = X[order], Y = Y[order]), 2)) -``` - -While we may stumble over raw data, we can easily process visual information. Within your mind is a visual processing system that has been fine-tuned by thousands of years of evolution. As a result, the quickest way to understand your data is to visualize it. Once you plot your data, you can instantly see the relationships between values. Here, we see that the values above fall on a circle. - -```{r echo=FALSE, dependson=data} -ggplot2::qplot(X, Y) + ggplot2::coord_fixed(ylim = c(-2.5, 2.5), xlim = c(-2.5, 2.5)) -``` - This chapter will teach you how to visualize your data with R and the `ggplot2` package. R contains several systems for making graphs, but the `ggplot2` system is one of the most beautiful and most versatile. `ggplot2` implements the *grammar of graphics*, a coherent system for describing and building graphs. With `ggplot2`, you can do more faster by learning one system and applying it in many places. ### Prerequisites -To access the data sets and functions that we will use in this chapter, load the `ggplot2` package: +To access the data sets, help pages, and functions that we will use in this chapter, load the `ggplot2` package: ```{r echo = FALSE, message = FALSE, warning = FALSE} library(ggplot2) @@ -37,7 +19,7 @@ library(ggplot2) ## A code template -Let's use our first graph to answer a question: Do cars with big engines use more fuel than cars with small engines? You probably already have an answer, but try to make your answer precise. What does the relationship between engine size and fuel efficieny look like? Is it positive? Negative? Linear? Nonlinear? Strong? Weak? +Let's use our first graph to answer a question: Do cars with big engines use more fuel than cars with small engines? You probably already have an answer, but try to make your answer precise. What does the relationship between engine size and fuel efficieny look like? Is it positive? Negative? Linear? Nonlinear? You can test your answer with the `mpg` data set in the `ggplot2` package. The data set contains observations collected by the EPA on 38 models of car. Among the variables in `mpg` are @@ -46,16 +28,6 @@ You can test your answer with the `mpg` data set in the `ggplot2` package. The d To learn more about `mpg`, open its help page with the command `?mpg`. -*** - -*Tip*: If you have trouble loading `mpg`, its help page, or any of the functions in this chapter, you may need to reload the `ggplot2` package with the command below. You will need to reload the package each time you start a new R session. - -```{r eval=FALSE} -library(ggplot2) -``` - -*** - To plot `mpg`, open an R session and run the code below. The code plots the `displ` variable of `mpg` against the `hwy` variable. ```{r} @@ -65,7 +37,7 @@ ggplot(data = mpg) + The plot shows a negative relationship between engine size (`displ`) and fuel efficiency (`hwy`). In other words, cars with big engines use more fuel. Does this confirm your hypothesis about fuel efficiency and engine size? -Our code is almost a template for making plots with `ggplot2`. +Pay close attention to this code because it is almost a template for making plots with `ggplot2`. ```{r eval=FALSE} ggplot(data = mpg) + @@ -74,18 +46,18 @@ ggplot(data = mpg) + With `ggplot2`, you begin a plot with the function `ggplot()`. `ggplot()` creates a coordinate system that you can add layers to. The first argument of `ggplot()` is the data set to use in the graph. So `ggplot(data = mpg)` creates an empty graph that will use the `mpg` data set. -You complete your graph by adding one or more layers to `ggplot()`. Here, the function `geom_point()` adds a layer of points to your plot, which creates a scatterplot. `ggplot2` comes with many geom functions that each add a different type of layer to a plot. Each geom function in `ggplot2` takes a mapping argument. +You complete your graph by adding one or more layers to `ggplot()`. Here, the function `geom_point()` adds a layer of points to your plot, which creates a scatterplot. `ggplot2` comes with many geom functions that each add a different type of layer to a plot. -The mapping argument of your geom function explains where your points should go. You must set `mapping` to a call to `aes()`. The `x` and `y` arguments of `aes()` explain which variables to map to the x and y axes of your plot. `ggplot()` will look for those variables in your data set, `mpg`. +Each geom function in `ggplot2` takes a mapping argument. The mapping argument of your geom function explains where your points should go. You must set `mapping` to a call to `aes()`. The `x` and `y` arguments of `aes()` explain which variables to map to the x and y axes of your plot. `ggplot()` will look for those variables in your data set, `mpg`. -This code suggests a reusable template for making graphs with `ggplot2`. To make a graph, replace the bracketed sections in the code below with a data set, a geom function, or a set of mappings. +Let's turn this code into a reusable template for making graphs with `ggplot2`. To make a graph, replace the bracketed sections in the code below with a data set, a geom function, or a set of mappings. ```{r eval = FALSE} ggplot(data = ) + (mapping = aes()) ``` -The sections below will show you how to complete and extend this template to make a graph. We will begin with ``. +The rest of this chapter will show you how to complete and extend this template to make different types of graphs. We will begin with the `` component. ## Aesthetic mappings @@ -120,7 +92,7 @@ The colors reveal that many of the unusual points are two seater cars. These car In the above example, we mapped `class` to the color aesthetic, but we could have mapped `class` to the size aesthetic in the same way. In this case, the exact size of each point would reveal its class affiliation. -```{r} +```{r warning=FALSE} ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, size = class)) ``` @@ -139,13 +111,9 @@ ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, shape = class)) ``` -*** +What happened to the suv's? `ggplot2` will only use six shapes at a time. Additional groups will go unplotted when you use this aesthetic. -**Tip** - What happened to the suv's? `ggplot2` will only use six shapes at a time. Additional groups will go unplotted when you use this aesthetic. - -*** - -In each case, you set the name of the aesthetic to the variable to display, and you do this within the `aes()` function. The `aes()` function gathers together each of the aesthetic mappings used by a layer and passes them to the layer's mapping argument. The syntax highlights a useful insight because you also set `x` and `y` to variables within `aes()`. The insight is that the x and y locations of a point are themselves aesthetics, visual properties that you can map to variables to display information about the data. +For each aesthetic, you set the name of the aesthetic to the variable to display, and you do this within the `aes()` function. The `aes()` function gathers together each of the aesthetic mappings used by a layer and passes them to the layer's mapping argument. The syntax highlights a useful insight because you also set `x` and `y` to variables within `aes()`. The insight is that the x and y locations of a point are themselves aesthetics, visual properties that you can map to variables to display information about the data. Once you set an aesthetic, `ggplot2` takes care of the rest. It selects a pleasing set of levels to use for the aesthetic, and it constructs a legend that explains the mapping between levels and values. For x and y aesthetics, `ggplot2` does not create a legend, but it creates an axis line with tick marks and a label. The axis line acts as a legend; it explains the mapping between locations and values. @@ -156,7 +124,7 @@ ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue") ``` -Here, the color doesn't convey information about a variable. It only changes the appearance of the plot. To set an aesthetic manually, do not plce it in the `aes()` function. Call the aesthetic by name as an argument of your geom function. Then pass the aesthetic a value that R will recognize, such as +Here, the color doesn't convey information about a variable. It only changes the appearance of the plot. To set an aesthetic manually, do not place it in the `aes()` function. Call the aesthetic by name as an argument of your geom function. Then pass the aesthetic a level that R will recognize, such as * the name of a color as a character string * the size of a point as a cex expansion factor (see `?par`) @@ -193,10 +161,10 @@ pchShow <- pchShow() ``` -If you get an odd result, double check that you are calling the aesthetic as its own argument (and not calling it from inside of `mapping = aes()`. We like to think of aesthetics like this, if you set the aesthetic: +If you get an odd result, double check that you are calling the aesthetic as its own argument (and not calling it from inside of `mapping = aes()`). I like to think of aesthetics like this, if you set the aesthetic: -* _inside_ of the `aes()` function, `ggplot2` will map the aesthetic to data values and build a legend. -* _outside_ of the `aes()` function, `ggplot2` will directly set the aesthetic to your input. +* _inside_ of the `aes()` function, `ggplot2` will **map** the aesthetic to data values and build a legend. +* _outside_ of the `aes()` function, `ggplot2` will **set** the aesthetic to a level that you supply manually. ### Exercises @@ -270,17 +238,35 @@ Next to each geom is a visual representation of the geom. Beneath the geom is a To learn more about any single geom, open it's help page in R by running the command `?` followed by the name of the geom function, e.g. `?geom_smooth`. -*** +```{r, echo = FALSE} +knitr::include_graphics("images/visualization-geoms-1.png") +``` -**Tip** - Many geoms use a single object to describe all of the data. For example, `geom_smooth()` uses a single line. For these geoms, you can set the group aesthetic to a discrete variable to draw multiple objects. `ggplot2` will draw a separate object for each unique value of the grouping variable. +```{r, echo = FALSE} +knitr::include_graphics("images/visualization-geoms-2.png") +``` + +```{r, echo = FALSE} +knitr::include_graphics("images/visualization-geoms-3.png") +``` + +```{r, echo = FALSE} +knitr::include_graphics("images/visualization-geoms-4.png") +``` + +Many geoms use a single object to describe all of the data. For example, `geom_smooth()` uses a single line. For these geoms, you can set the group aesthetic to a discrete variable to draw multiple objects. `ggplot2` will draw a separate object for each unique value of the grouping variable. In practice, `ggplot2` will automatically group the data for these geoms whenever you map an aesthetic to a discrete variable (as in the `linetype` example). It is convenient to rely on this feature because the group aesthetic by itself does not add a legend or distinguishing features to the geoms. -```{r, echo = FALSE} -knitr::include_graphics("images/visualization-geoms-1.png") -knitr::include_graphics("images/visualization-geoms-2.png") -knitr::include_graphics("images/visualization-geoms-3.png") -knitr::include_graphics("images/visualization-geoms-4.png") +```{r, fig.show='hold', fig.height = 2.5, fig.width = 2.5} +ggplot(diamonds) + + geom_smooth(aes(x = carat, y = price)) + +ggplot(diamonds) + + geom_smooth(aes(x = carat, y = price, group = cut)) + +ggplot(diamonds) + + geom_smooth(aes(x = carat, y = price, color = cut)) ``` ## Layers @@ -301,7 +287,7 @@ ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_smooth() ``` -If you place mappings in a geom function, `ggplot2` will treat them as local mappings. It will use these mappings to extend or overwrite the global mappings _for that geom only_. This provides an easy way to differentiate geoms. +If you place mappings in a geom function, `ggplot2` will treat them as local mappings for the layer. It will use these mappings to extend or overwrite the global mappings _for that layer only_. This provides an easy way to differentiate layers. ```{r, message = FALSE} ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + @@ -309,12 +295,12 @@ ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_smooth() ``` -You can use the same system to specify individual data sets for each layer. Here, our smooth line displays just a subset of the `mpg` data set, the cars with eight cylinder engines. The local data argument in `geom_smooth()` overrides the global data argument in `ggplot()` for the smooth layer only. +You can use the same system to specify individual data sets for each layer. Here, our smooth line displays just a subset of the `mpg` data set, the subcompact cars. The local data argument in `geom_smooth()` overrides the global data argument in `ggplot()` for the smooth layer only. ```{r, message = FALSE, warning = FALSE} ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + - geom_point() + - geom_smooth(data = subset(mpg, cyl == 8)) + geom_point(aes(color = class)) + + geom_smooth(data = subset(mpg, class == "subcompact")) ``` ### Exercises @@ -423,7 +409,7 @@ ggplot(data = diamonds) + ### Position = "fill" -`position = "fill"` places overlapping objects above one another. However, it scales the objects to take up all of the available vertical space. As a result, `position = "fill"` makes it easy to compare relative frequencies across groups. +`position = "fill"` places overlapping objects above one another. However, it scales the objects to take up all of the available vertical space. As a result, `position = "fill"` makes it easy to compare relative proportions across groups. ```{r} ggplot(data = diamonds) + @@ -460,19 +446,11 @@ ggplot(data = mpg) + ggtitle('Position = "jitter"') ``` -But isn't random noise, you know, bad? It *is* true that jittering your data will make it less accurate at the local level, but jittering may make your data _more_ accurate at the global level. Occasionally, jittering will reveal a pattern that was hidden within the grid. +This may seem like a bad idea since jittering will make your graph less accurate at the local level, but jittering may make your graph _more_ revealing at the global level. Occasionally, jittering will reveal a pattern that was hidden within the grid. -*** +`ggplot2` comes with a special geom `geom_jitter()` that is the exact equivalent of `geom_point(position = "jitter")`. -**Tip** - `ggplot2` comes with a special geom `geom_jitter()` that is the exact equivalent of `geom_point(position = "jitter")`. - -*** - -*** - -**Tip** - To learn more about a position adjustment, look up the help page associated with each adjustment: `?position_dodge`, `?position_fill`, `?position_identity`, `?position_jitter`, and `?position_stack`. - -*** +To learn more about a position adjustment, look up the help page associated with each adjustment: `?position_dodge`, `?position_fill`, `?position_identity`, `?position_jitter`, and `?position_stack`. ## Stats @@ -491,14 +469,14 @@ head(diamonds) Where does count come from? -Some graphs, like scatterplots, plot the raw values of your data set. Other graphs, like bar charts, do not plot raw values at all. These graphs apply an algorithm to your data and then plot the results of the algorithm. Consider how often graphs do this. +Some graphs, like scatterplots, plot the raw values of your data set. Other graphs, like bar charts, calculate new values to plot. * **bar charts** and **histograms** bin your data and then plot bin counts, the number of points that fall in each bin. * **smooth lines** fit a model to your data and then plot the model line. * **boxplots** calculate the quartiles of your data and then plot the quartiles as a box. * and so on. -`ggplot2` calls the algorithm that a graph uses to transform raw data a _stat_, which is short for statistical transformation. Each geom in `ggplot2` is associated with a default stat that it uses to plot your data. `geom_bar()` uses the "count" stat, which computes a data set of counts for each x value from your raw data. `geom_bar()` then uses this computed data to make the plot. +`ggplot2` calls the algorithm that a graph uses to calculate new values a _stat_, which is short for statistical transformation. Each geom in `ggplot2` is associated with a default stat that it uses to calculate values to plot. The figure below describes how this process works with `geom_bar()`. ```{r, echo = FALSE} knitr::include_graphics("images/visualization-stat-bar.png") @@ -511,11 +489,11 @@ A few geoms, like `geom_point()`, plot your raw data as it is. These geoms also knitr::include_graphics("images/visualization-stat-point.png") ``` -You can learn which stat a geom uses, as well as what variables it computes by visiting the geom's help page. For example, the help page of `geom_bar()` shows that it uses the count stat and that the count stat computes two new variables, `count` and `prop`. If you have an R session open---and you should!---you can verify this by running `?geom_bar` at the command line. +You can learn which stat a geom uses, as well as what variables it computes by visiting the geom's help page. For example, the help page of `geom_bar()` shows that it uses the count stat and that the count stat computes two new variables, `count` and `prop`. If you have an R session open you can verify this by running `?geom_bar` at the command line. -Stats are the most subtle part of plotting because you do not see them in action. `ggplot2` applies the transformation and stores the results behind the scenes. You only see the finished plot. Moreover, `ggplot2` applies stats automatically, with a very intuitive set of defaults. So why bother thinking about stats? Because you can use stats to do three very useful things. +Stats are the most subtle part of plotting because you do not see them in action. `ggplot2` applies the transformation and stores the results behind the scenes. You only see the finished plot. Moreover, `ggplot2` applies stats automatically, with a very intuitive set of defaults. As a result, you rarely need to adjust a geom's stat. However, you can do three things with a geom's stat if you wish to. -First, you can change the stat that a geom uses. To do this, set the geom's stat argument. For example, you can map the heights of your bars to raw values---not counts---if you change the stat of `geom_bar()` from "count" to "identity". This works best if your data contains one value per bar, as in the demo data set below. Add a $y$ aesthetic, and map it to the variable that contains the bar heights. +First, you can change the stat that the geom uses with the geom's stat argument. In the code below, I change the stat of `geom_bar()` from count (the default) to identity. This let's me map the height of the bars to the raw values of a $y$ variable. ```{r} demo <- data.frame( @@ -523,44 +501,42 @@ demo <- data.frame( b = c(20, 30, 40) ) -demo - ggplot(data = demo) + geom_bar(mapping = aes(x = a, y = b), stat = "identity") + +demo ``` -Use consideration when you change a geom's stat. Many combinations of geoms and stats will create incompatible results. In practice, you will almost always use a geom's default stat. +I provide a list of the stats that are availalbe to use in ggplot2 at the end of this section. Be careful when you change a geom's stat. Many combinations of geoms and stats will create incompatible results. In practice, you will almost always use a geom's default stat. -Second, you can customize how a stat does its job. For example, the count stat takes a width parameter that it uses to set the widths of the bars in a bar plot. To pass a width value to the stat, provide a width argument to your geom function. `width = 1` will make the bars wide enough to touch each other. +Second, you can give some stats arguments by passing the arguments to your geom function. In the code below, I pass a width argument to the count stat, which controls the widths of the bars. `width = 1` will make the bars wide enough to touch each other. ```{r} ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut), width = 1) ``` -*** +You can learn which arguments a stat takes at the stat's help page. To open the help page, place the prefix `?stat_` before the name of the stat, then run the command at the command line, e.g. `?stat_count`. -**Tip** - You can learn which arguments a stat takes and how it uses them at the stat's help page. To open the help page, place the prefix `?stat_` before the name of the stat, then run the command at the command line, e.g. `?stat_count`. - -*** - -Finally, you can tell `ggplot2` how to use the stat. Many stats in `ggplot2` create multiple variables, some of which go unused. For example, `geom_count()` uses the "sum" stat to create bubble charts. Each bubble represents a group of data points, and the size of the bubble displays how many points are in the group (e.g. the count of the group). +Finally, you can use extra variables created by the stat. Many stats in `ggplot2` create multiple variables, some of which go unused. For example, `geom_count()` uses the "sum" stat to create bubble charts. Each bubble represents a group of data points, and the size of the bubble displays how many points are in the group (e.g. the count of the group). ```{r} ggplot(data = diamonds) + geom_count(mapping = aes(x = cut, y = clarity)) ``` -The sum stat creates two variables, `n` (count) and `prop`. By default, `geom_count()` uses the `n` variable to create the size of each bubble. You can use the prop variable in combination with a _group_ aesthetic to display the proportion of observations in each row (or column) that appear in the bubbles. To tell `geom_count()` to use the prop variable, map $size$ to `..prop..`. The two dots that surround prop notify `ggplot2` that the prop variable appears in the transformed data set that is created by the stat, and not in the raw data set. Be sure to include these dots whenever you refer to a variable that is created by a stat. +The help page of `?stat_sum` reveals that the sum stat creates two variables, n (count) and prop. By default, `geom_count()` uses the n variable to create the size of each bubble. To tell `geom_count()` to use the prop variable, map $size$ to `..prop..`. The two dots that surround prop notify `ggplot2` that the prop variable appears in the transformed data set that is created by the stat, and not in the raw data set. Be sure to include these dots whenever you refer to a variable that is created by a stat. ```{r} ggplot(data = diamonds) + geom_count(mapping = aes(x = cut, y = clarity, size = ..prop.., group = clarity)) ``` -If you set _group_ to the $x$ variable, `..prop..` will show proportions across columns. If you set it to the $y$ variable, `..prop..` will show proportions across rows, as in the plot above. Here, the proportions in each row sum to one. +For `geom_count()`, the `..prop..` variable does not do anything useful until you set a group aesthetic. If you set _group_ to the $x$ variable, `..prop..` will show proportions across columns. If you set it to the $y$ variable, `..prop..` will show proportions across rows, as in the plot above. Here, the proportions in each row sum to one. -The best way to discover which variables are created by a stat is to visit the stat's help page. `ggplot2` provides 22 stats for you to use. Each stat is saved as a function, which provides a convenient way to access a stat's help page, e.g. `?stat_identity`. +In most cases, you will not want to switch the default variable supplied by a stat. Many stats only return one useful variable. The best way to discover which variables are created by a stat is to visit the stat's help page. + +`ggplot2` provides 22 stats for you to use. Each stat is saved as a function, which provides a convenient way to access a stat's help page, e.g. `?stat_identity`. The table below describes each stat in `ggplot2` and lists the parameters that the stat takes, as well as the variables that the stat makes. @@ -580,7 +556,7 @@ ggplot(data = diamonds) + coord_polar() ``` -Answer: A coxcomb plot is a bar chart plotted in polar coordinates. If this seems surprising, consider how you would make a coxcomb plot with `ggplot2`. +A coxcomb plot is a bar chart plotted in polar coordinates. If this seems surprising, consider how you would make a coxcomb plot with `ggplot2`. To make a coxcomb plot, first build a bar chart and then add `coord_polar()` to your plot call. Polar bar charts will look better if you also set the width parameter of `geom_bar()` to 1. This will ensure that no space appears between the bars. @@ -592,7 +568,7 @@ ggplot(data = diamonds) + You can use `coord_polar()` to turn any plot in `ggplot2` into a polar chart. Whenever you add `coord_polar()` to a plot's call, `ggplot2` will draw the plot on a polar coordinate system. It will map the plot's $y$ variable to $r$ and the plot's $x$ variable to $\theta$. You can reverse this behavior by passing `coord_polar()` the argument `theta = "y"`. -Polar coordinates unlock another riddle as well. You may have noticed that `ggplot2` does not come with a pie chart geom. Why would that be? In practice, a pie chart is just a stacked bar chart plotted in polar coordinates. To make a pie chart in `ggplot2`, create a stacked bar chart and: +Polar coordinates unlock another riddle as well. You may have noticed that `ggplot2` does not come with a pie chart geom. In practice, a pie chart is a stacked bar chart plotted in polar coordinates. To make a pie chart in `ggplot2`, create a stacked bar chart and: 1. ensure that the x axis only has one value. An easy way to do this is to set `x = factor(1)`. 2. set the width of the bar to one, e.g. `width = 1` @@ -607,17 +583,12 @@ ggplot(data = diamonds) + `ggplot2` comes with eight coordinate functions that you can use in the same way as `coord_polar()`. The table below describes each function and what it does. Add any of these functions to your plot's call to change the coordinate system that the plot uses. -*** +You can learn more about each coordinate system by opening its help page in R, e.g. `?coord_cartesian`, `?coord_fixed`, `?coord_flip`, `?coord_map`, `?coord_polar`, and `?coord_trans`. ```{r, echo = FALSE} knitr::include_graphics("images/visualization-coordinate-systems.png") ``` -*** - -**Tip** - You can learn more about each coordinate system by opening its help page in R, e.g. `?coord_cartesian`, `?coord_fixed`, `?coord_flip`, `?coord_map`, `?coord_polar`, and `?coord_trans`. - -*** ## Facets @@ -632,7 +603,7 @@ ggplot(data = diamonds) + facet_wrap( ~ clarity) ``` -To facet your plot on the combinations of two variables, add `facet_grid()` to your plot call. The first argument of `facet_grid()` is also a formula. This time the formula should contain two variable names separated by a `~`. +To facet your plot on the combination of two variables, add `facet_grid()` to your plot call. The first argument of `facet_grid()` is also a formula. This time the formula should contain two variable names separated by a `~`. ```{r fig.height = 7, fig.width = 7} ggplot(data = diamonds) + @@ -645,13 +616,7 @@ Here the first subplot displays all of the points that have an `I1` code for `cl If you prefer to not facet on the rows or columns dimension, place a `.` instead of a variable name before or after the `~`, e.g. `+ facet_grid(. ~ clarity)`. -Faceting works on more than just polar charts. You can add `facet_wrap()` or `facet_grid()` to any plot in `ggplot2`. For example, you could facet our original scatterplot. - -```{r fig.height = 6, fig.width = 6} -ggplot(data = mpg) + - geom_point(mapping = aes(x = displ, y = hwy)) + - facet_wrap(~ class) -``` +Faceting works on more than just polar charts. You can add `facet_wrap()` or `facet_grid()` to any plot in `ggplot2`. ### Exercises @@ -699,7 +664,6 @@ To see how this works, consider how you could build a basic plot from scratch: y knitr::include_graphics("images/visualization-grammar-1.png") ``` -*** Next, you could choose a geometric object to represent each observation in the transformed data. You could then use the aesthetic properties of the geoms to represent variables in the data. You would map the values of each variable to the levels of an aesthetic. ```{r, echo = FALSE} @@ -713,5 +677,3 @@ knitr::include_graphics("images/visualization-grammar-3.png") ``` You could use this method to build _any_ plot that you imagine. In other words, you can use the code template that you've learned in this chapter to build hundreds of thousands of unique plots. - -You could use these plots to explore and understand your data. Or you could use them to share insights about your data with others. Chapter ? will provide some tips on how to use graphs to discover insights in your data. Chapter ? will provide some tips on how to prepare your graphs to share with others. Graphs make an excellent communication tool, especially when they are self explanatory. From 7cfbd54eed4958e53d00eeafdd47c67261689daf Mon Sep 17 00:00:00 2001 From: Garrett Date: Thu, 19 May 2016 17:05:16 -0400 Subject: [PATCH 04/22] Edits/rewrites variation/EDA chapter draft. --- images/EDA-plotly.png | Bin 0 -> 181365 bytes variation.Rmd | 512 +++++++++++++++++------------------------- 2 files changed, 200 insertions(+), 312 deletions(-) create mode 100644 images/EDA-plotly.png diff --git a/images/EDA-plotly.png b/images/EDA-plotly.png new file mode 100644 index 0000000000000000000000000000000000000000..e26a8d683638637a7536ed6ac96932c2db3bbfb9 GIT binary patch literal 181365 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 D;ZhHE literal 0 HcmV?d00001 diff --git a/variation.Rmd b/variation.Rmd index e64cdf8..a6e36ac 100644 --- a/variation.Rmd +++ b/variation.Rmd @@ -1,41 +1,35 @@ # Exploratory Data Analysis (EDA) -```{r, include = FALSE} +```{r include = FALSE} library(ggplot2) library(dplyr) +knitr::opts_chunk$set(fig.height = 2) ``` -If you are like most humans, your brain isn't built to process tables of raw data. You can understand your raw data better if you first visualize it or transform it. This chapter will show you the best ways to visualize and transform your data to make discoveries, a process known as Exploratory Data Analysis (EDA). -## The challenge of data +Visualization and transformation are the most useful tools for exploring your data, a task that statisticians call Exploratory Data Analysis, or EDA for short. EDA involves iteratively -The human working memory can only attend to a few values at a time. This makes it difficult to discover patterns in raw data because patterns involve many values. To discover even a simple pattern, you must consider many values _at the same time_, which is difficult to do. For example, a simple pattern exists between $X$ and $Y$ in the table below, but it is very difficult to spot. +1. forming questions about your data +2. searching for answers by visualizing and transforming your data +3. using what you discover to refine your questions about the data, or to choose new questions to investigate -```{r data, echo=FALSE} -x <- rep(seq(0.2, 1.8, length = 5), 2) + runif(10, -0.15, 0.15) -X <- c(0.02, x, 1.94) -Y <- sqrt(1 - (X - 1)^2) -Y[1:6] <- -1 * Y[1:6] -Y <- Y - 1 -order <- sample(1:10) -knitr::kable(round(data.frame(X = X[order], Y = Y[order]), 2)) -``` +There is no formal way to do Exploratory Data Analysis because you must be free to investigate every insight that occurs to you. However, some tactics will lead more reliably to insights than others. This chapter will teach you a basic toolkit of the most useful EDA techniques. -While your mind may stumble over raw data, you can easily process visual information. Within your mind is a visual processing system that has been fine-tuned by thousands of years of evolution. As a result, the quickest way to understand your data is to visualize it. Once you plot your data, you can instantly see the relationships between values. Here, we see that the values above fall on a circle. +## Questions -```{r echo=FALSE} -ggplot2::qplot(X, Y) + ggplot2::coord_fixed(ylim = c(-2.5, 0.5), xlim = c(-0.5, 2.5)) -``` +> "There are no routine statistical questions, only questionable statistical routines."---Sir David Cox -Visualization works because it bypasses the bottle neck in your working memory. Your brain processes visual information in a different (and much wider) channel than it processes symbolic information, like words and numbers. However, visualization is not the only way to comprehend data. +> "Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise.."---John Tukey -You can also comprehend your data if you reduce it to a small set of summary values. Your working memory can easily attend to just a few values, which lets you absorb important information about the data. This is why it feels natural to work with things like averages, e.g. how tall is the average basketball player? How educated is the average politician? An average is a single number that you can attend to. Although averages are quite popular, you can also compare data sets on other summary values, such as maximums, minimums, medians, and so on. Another way to summarize your data is to replace it with a model, a function that describes the relationship between two or more variables. +EDA begins with questions. The questions that you ask about your data will guide your attention as you search for insights. Good questions will lead you to discoveries that let you ask better questions. -These two tactics, visualizing and summarizing your data, are the main tools of Exploratory Data Analysis. Before we begin to use the tools, let's consider what types of information you can hope to find in your data. +There is no rule about which questions you should ask to guide your research. You will often begin with one set of questions and then replace them as your understanding of your data deepens. If you ever find yourself at a loss for questions, two types of questions will always be useful for making discoveries with your data. You can loosely word them as -## Variation +1. What type of **variation** occurs **within** my variables? and -Data carries two types of useful information: information about _variation_ and information about _covariation_. These concepts will be easier to describe if we first define some basic terms: +2. What type of **covariation** occurs **between** my variables? + +The rest of this chapter will look at these two questions. I'll show you the best ways to use visualization and summaries to explore variation and covariation. Our discussion will lead to a model of data science itself, the model that we've built this book around. To make the discussion easier, let's define some terms: * A _variable_ is a quantity, quality, or property that you can measure. @@ -43,9 +37,13 @@ Data carries two types of useful information: information about _variation_ and * An _observation_ is a set of measurements that you make under similar conditions (you usually make all of the measurements in an observation at the same time and on the same object). An observation will contain several values, each associated with a different variable. I'll sometimes refer to an observation as a data point. -_Variation_ is the tendency of the values of a variable to change from measurement to measurement. +## Variation -Variation is easy to encounter in real life; if you measure any continuous variable twice---and precisely enough, you will get two different results. This is true even if you measure quantities that should be constant, like the speed of light (below); each of your measurements will include a small amount of error that varies from measurement to measurement. +> "What type of variation occurs within my variables?" + +**Variation** is the tendency of the values of a variable to change from measurement to measurement. + +You can see variation easily in real life; if you measure any continuous variable twice---and precisely enough, you will get two different results. This is true even if you measure quantities that should be constant, like the speed of light (below). Each of your measurements will include a small amount of error that varies from measurement to measurement. ```{r, variation, echo = FALSE} @@ -54,398 +52,288 @@ mat <- as.data.frame(matrix(morley$Speed + 299000, ncol = 10)) knitr::kable(mat, caption = "*The speed of light is a universal constant, but variation due to measurement error obscures its value. In 1879, Albert Michelson measured the speed of light 100 times and observed 30 different values (in km/sec).*", col.names = rep("", ncol(mat))) ``` -Discrete and quantitative variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron). +Discrete and categorical variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron). -Variation is a source of uncertainy in data science. Since values vary from measurement to measurement, you cannot assume that what you measure in one context will be true in another context. However, variation can also be a tool. Every variable exhibits a pattern of variation. If you comprehend the pattern, you can determine which values of the variable are likely to occur, which are unlikely to occur, and which are impossible. You can also use the pattern to quickly spot outliers, data points that behave differently from other observations of a variable, and clusters, groups of data points that share similar values. - -## Covariation - -The second type of information contained in data is information about covariation. _Covariation_ occurs when two or more variables vary together in a systematic way. - -You can understand covariation if you picture the growth charts that doctors use with young children (below). The ages and heights of children covary since a child is likely to be born small and to grow taller over time. As a result, you can expect a large value of age to be accompanied by a large value of height and a small value of age to be accompanied by a small value of height. In fact, the covariation between age and height is so regular that a doctor can tell if something has gone wrong by comparing a child's height to his or her age. - -Systems of covariation can be very complex. Multiple variables can covary together, as do age, height, weight, bone density, etc., and two variables can covary in an inverse relationship, as do unemployment and presidential approval ratings (presidential approval ratings are reliably low at times when unemployment is high, and vice versa). Covariation can also occur between categorical variables. In that case observations in one category will be linked to certain values more often than observations in other categories. - -Covariation provides a way to reduce the uncertainty created by variation. You can make an accurate guess about the value of an unobserved variable if you observe the values of variables that it covaries with. The covariation that occurs between variables will also occur between the values of those variables whenever the values belong in the same observation. - -Covariation also provides clues about causal relationships. If one variable causes the value of a second, the two variables will covary. The inverse does not logically follow; i.e. if two variables covary, one does not necessarily cause the other. However, you can use patterns of covariation to direct your attention as you search for causal relationships. - -Now that you have a sense of what to look for in data, how do you find it? - -## Exploratory Data Analysis - -Exploratory Data Analysis is a loosely defined task that deepens your understanding of a data set. EDA involves iteratively - -* forming questions about your data -* searching for answers by visualizing and summarizing your data -* refining your questions about the data, or choosing new questions to investigate, based on what you discover - -There is no formal way to do Exploratory Data Analysis. You must be free to investigate every insight that occurs to you. The remainder of the chapter will teach you ways to visualize and summarise your data that you can use in any part of your exploration. I've organized these methods into two groups: methods for - -1. Understanding variation. These methods elucidate the question, "What type of uncertainty exists in the processes that my data describe?" - -2. Understanding covariation. These methods elucidate the question, "How can the data help me reduce the uncertainty that exists in the processes that my data describe?" - -As you use these methods, it is important to keep an eye out for any signals that can lead to better questions about your data, and then scrutinize them. Things like outliers, missing values, gaps in your data coverage, and patterns can all tip you of to important aspects of your data set. Often the discoveries that you make during Exploratory Data Analysis will be the most valuable results of your data analysis. Many useful scientific discoveries, like the discovery of the hole in the ozone layer, were made by simply exploring data. - -## Understanding variation - Distributions - -The most useful tool for understanding the variation associated with a variable is the variable's _empirical distribution_, the pattern of values that emerges as you take many measurements of the variable. +Each variable contains its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you have observed for the variable. ### Visualizing distributions -If a variable is categorical, you can display its empirical distribution with a simple bar graph. **Categorical** variables are variables that can only contain a finite (or countably infinite) set of unique values, like the cut rating of a diamond. In R, categorical variables are usually saved as factors or character strings. +How you visualize the distribution will depend on whether your variable is categorical or continuous. + +A variable is **categorical** if it can only have a finite (or countably infinite) set of unique values. In R, categorical variables are usually saved as factors, integers, or character strings. To examine the distribution of a categorical variable, use a bar chart. ```{r} ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut)) ``` -By default, `geom_bar()` counts the number of observations that are associated with each value of a variable, and it displays the results as a series of bars. You do not need to provide a $y$ aesthetic to `geom_bar()`. - -The height of each bar in a bar graph reveals the number of observations that are associated with the $x$ value of the bar. You can use the heights to estimate the frequency that different values will appear as you measure the variable. $x$ values that have a tall bar occur often, and $x$ values with small bars occur rarely. - -*** - -*Tip*: You can compute the counts of a categorical variable quickly with R's `table()` function. These are the numbers that `geom_bar()` visualizes. +The height of the bars displays how many observations occurred with each x value. If you would like, these exact values, wyou can compute them with R's `table()` function. ```{r} table(diamonds$cut) ``` -*** - -To compare the distributions of different subgroups in a bar chart, - -1. set the fill and grouping aesthetics to a grouping variable -2. set the position adjustment to "dodge" for side by side bars -3. set $y$ to `..prop..` to compare proportions instead of raw counts (as raw counts will depend on group sizes which may differ) - -```{r} -ggplot(data = diamonds) + - geom_bar(mapping = aes(x = cut, y = ..prop.., group = carat > 1, fill = carat > 1), position = "dodge") -``` - -What if your variable is not categorical but continuous? A variable is **continuous** if you can arrange its values in order _and_ an infinite number of unique values can exist between any two values of the variable. Numbers and date-times are two examples of continuous variables. - -The strategy of counting the number of observations at each value breaks down for continuous data, because if your data is truly continuous, then no two observations will have the same value. - -To get around this, you can divide the range of a continuous variable into equally spaced intervals, a process called _binning_. - -```{r, echo = FALSE} -# knitr::include_graphics("images/visualization-17.png") -``` - -Then count how many observations fall into each bin. - -```{r, echo = FALSE} -# knitr::include_graphics("images/visualization-18.png") -``` - -And display the count as a bar. - -```{r, echo = FALSE} -# knitr::include_graphics("images/visualization-19.png") -``` - -The result is called a *histogram*. The height of each bar reveals how many observations fall within the width of the bar. Tall bars reveal common values of the variable, short bars reveal uncommon values, and the absence of bars suggests rare or impossible values. As with bar charts, you can use this information to estimate the probabilities that different values will appear in future measurements of the variable. - -To make a histogram of a continuous variable, like the carat size of a diamond, use `geom_histogram()`. As with `geom_bar()`, you do not need to supply a $y$ variable. +A variable is **continuous** if you can arrange its values in order _and_ an infinite number of unique values can exist between any two values of the variable. Numbers and date-times are two examples of continuous variables. To examine the distribution of a continuous variable, use a histogram. ```{r message = FALSE} ggplot(data = diamonds) + - geom_histogram(aes(x = carat)) + geom_histogram(aes(x = carat), binwidth = 0.5) ``` -Binning is a temperamental process because the appearance of a distribution can change dramatically if the bin size changes. As no bin size is "correct," you should explore several bin sizes when examining data. +A histogram divides the x axis into equally spaced intervals and then uses a bar to display how many observations fall into each interval. In the graph above, the tallest bar shows that almost 30,000 observations have a $carat$ value between 0.25 and 0.75, which are the left and right edges of the bar. -By default, `geom_histogram()` will divide the range of your variable into 30 equal length bins. The quickest way to change this behavior is to set the binwidth argument. - -```{r message = FALSE} -ggplot(data = diamonds) + - geom_histogram(aes(x = carat), binwidth = 1) -``` - -Different binwidths reveal different information. For example, the plot above shows that the availability of diamonds decreases quickly as carat size increases. The plot below shows that there are more diamonds than you would expect at whole carat sizes (and common fractions of carat sizes). Moreover, for each popular size, there are more diamonds that are slightly larger than the size than there are diamonds that are slightly smaller than the size. +In a histogram, the intervals are known as **bins** and the process of creating intervals is known as **binning**. You can set the binwidth of the intervals with the `binwidth` argument of `geom_histogram()`, which is measured in the units of the $x$ axis. You should always explore a variety of binwidths when working with histograms, as different binwidths can reveal different patterns. For example, here is how the graph above looks with a binwidth of 0.01. ```{r message = FALSE} ggplot(data = diamonds) + geom_histogram(aes(x = carat), binwidth = 0.01) ``` -Histograms give you a quick sense of the variation in your variable. Often you can immediately tell what the typical value of a variable is and what range of values you can expect (the wider the range, the more uncertainty you will encounter when making predictions about the variable). However, histograms have a downside. +If you wish to overlay multiple histograms in the same plot, I recommend using `geom_freqpoly()` or `geom_density2d()` instead of `geom_histogram()`. `geom_freqpoly()` makes a frequency polygon, a line that connects the tops of the bars that would appear in a histogram. Like `geom_histogram()`, `geom_freqpoly()` accepts a binwidth argument. -It is difficult to compare multiple histograms. The solid bars of a histogram will occlude other histograms when you arrenage them in layers. You could stack histograms on top of each other, but this invites error because you cannot compare the bars against a common baseline. +`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a frequency polygon. You can control the smoothness of the density with `adjust`. `geom_density()` displays $density$---not $count$---on the y axis; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup. + +```{r message = FALSE, fig.show='hold', fig.width=3} +zoom <- coord_cartesian(xlim = c(55, 70)) -```{r message = FALSE} ggplot(data = diamonds) + - geom_histogram(aes(x = price, fill = cut)) + geom_freqpoly(aes(x = depth, color = cut), binwidth = 0.2) + + zoom + +ggplot(data = diamonds) + + geom_density(aes(x = depth, color = cut), adjust = 3) + + zoom ``` -`geom_freqpoly()` and `geom_density()` provide better ways to compare multiple distributions in the same plot. You can think of `geom_freqpoly()` as a line that connects the tops of the bars that would appear in a histogram. +## Follow up questions -```{r message = FALSE, fig.show='hold', fig.width=4, fig.height=4} -ggplot(data = diamonds) + - geom_freqpoly(aes(x = carat)) +Now that you can visualize variation, what should you look for in your plots? Here are the most useful types of information in any graph: -ggplot(data = diamonds) + - geom_histogram(aes(x = carat)) -``` - -`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a freqpoly. - -```{r} -ggplot(data = diamonds) + - geom_density(aes(x = carat)) -``` - -`geom_density()` displays $density$---not $count$---on the y axis, which makes it easy to compare the shape of the distributions of multiple subgroups; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup. To achieve the same effect with `geom_freqpoly()`, set the y variable to `..density..`. - -```{r message = FALSE, fig.show='hold', fig.width=4, fig.height=4} -ggplot(data = diamonds) + - geom_freqpoly(aes(x = price, y = ..density.., color = cut )) - -ggplot(data = diamonds) + - geom_density(aes(x = price, color = cut)) -``` - -`geom_density()` does not use the binwidth argument. You can control the smoothness of the density with `adjust`, and you can select the kernel to use to estimate the density with `kernel`. Set kernel to one of "gaussian" (default), "epanechikov", "rectangular", "triangular", "biweight", "cosine", "optcosine". - -```{r} -ggplot(data = diamonds) + - geom_density(aes(x = carat, color = cut), kernel = "gaussian", adjust = 4) -``` - -### Summarizing distributions - -You can also make sense of a distribution by reducing it to a few summary statistics, numbers that summarize important information about the distribution. Summary statistics have an advantage over plots and raw data; it is easy to talk and write about summary statistics. - -Two types of summary statistics are more useful than the rest: - -* statistics that describe the typical value of a variable. These include the measures of location from Chapter 2: - + `mean()` - the average value of a variable - + `median()` - the 50th percentile value of a variable - -* statistics that describe the range of a variable's values. These include the measures of spread from chapter 2. - + `sd()` - the standard deviation of a variable's distribution, which is the average distance between any two values selected at random from the distribution. - + `var()` - the variance of the distribution, which is the standard deviation squared. - + `IQR()` - the interquartile range of the distribution, which is the distance between the 25th and 75th percentiles of a distribution. - + `range()` - the minimum and maximum value of a distribution, use with `diff(range())` to compute the distance between the miminum and maximum values. +* *Typical Values* + + In both bar charts and histograms, tall bars reveal common values of a variable. Shorter bars reveal less common or rare values. Places that do not have bars reveal seemingly impossible values. To turn this information into a useful question, look for anything unexpected: -Use dplyr's summarise function to calculate any of these statistics for a variable. + + Which values are the most common? Why? + + + Which values are the most rare? Why? + + + Is there an unusual pattern to the frequencies? Why? + + + Do the typical values change if you look at individual subgroups of the data? + + For example, the histogram below suggests several interesting questions: Why are there more diamonds at whole carats and common fractions of carats? Why are there slightly more diamonds above each of these peaks than there are slightly below each of these peaks? + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(data = diamonds) + + geom_histogram(aes(x = carat), binwidth = 0.01) + xlim(0, 3) + ``` + +* *Range of values* -```{r} -diamonds %>% - summarise(mean = mean(price, na.rm = TRUE), - sd = sd(price, na.rm = TRUE)) -``` + The range, or spread, of values in the distribution reveals how certain you can be when you make predictions about a variable. If the variable only takes a narrow set of values, like below, you are unlikely to be far off if you make a prediction about a future observation. Even if the observation takes a value at the distant extreme of the distribution, the value will not be far from your guess. + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + mpg$hwy2 <- mpg$hwy / 10 + 22 + ggplot(mpg) + geom_histogram(aes(x = hwy2), binwidth = 1) + xlim(10, 45) + ``` + + If the variable takes on a wide set of values, like below, the possibility that your guess will be far off the mark is much greater. The extreme possibilities are farther away. + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(mpg) + geom_histogram(aes(x = hwy), binwidth = 1) + xlim(10, 45) + ``` + + As a quick rule, narrow distributions imply less uncertainty when making predictions about a variable; wide distributions imply more uncertainty. Ask yourself + + + Do your data show a surprising amount of certainty or uncertainty? Why? + + + Does the spread of the data change if you look at individual subgroups of the data? + +* *Outliers* -Combine `summarise()` with `group_by()` to calculate the statistics on a groupwise basis. + Outliers are data points that do not seem to fit the overall pattern of variation, like the diamond on the far right of the histogram below. This diamond has a y dimension of `r diamonds$y[which(diamonds$y > 50)]` mm, which is much larger than the other diamonds. + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(diamonds[24000:24500, ]) + geom_histogram(aes(x = y), binwidth = 0.25) + ``` + + An outlier is a signal that something unique happened to the observation. Whenever you spot an outlier, ask yourself + + + What can explain the unusual value? + + If you can figure out what happened, a discovery might follow. In the case above, the unique event was a measurement error. -```{r} -diamonds %>% - group_by(cut) %>% - summarise(mean = mean(price, na.rm = TRUE), - sd = sd(price, na.rm = TRUE)) -``` +* *Clusters* -## Understanding Covariation + Clusters of similar values suggest that subgroups exist in your data. To understand the subgroups, ask: + + + How are the observations within each cluster similar to each other? + + + How are the observations in separate clusters different from each other? + + + How can you explain or describe the clusters? + + The histogram below displays the length in minutes of 272 eruptions of the Old Faithful Geyser in Yellowstone National Park. You can spot two distinct clusters; Old Faithful appears to oscillate between short and long eruptions. -### Visualizing covariation + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(faithful) + geom_histogram(aes(x = eruptions)) + ``` -### Visualize Covariation +To answer many of the follow up questions above, you will need to make a new graph that includes two or more variables and then look for: + +* *Patterns* -### Compare Distributions + Patterns in your data provide clues about covariation. If a relationship exists between two variables it will appear as a pattern in the data. If you spot a pattern, ask yourself: + + + Could this pattern be due to coincidence (i.e. random chance)? + + + How can you describe the relationship described by the pattern? + + + How strong is the relationship implied by the pattern? + + + What other variable might be involved in the relationship? + + + Does the relationship change if you look at individual subgroups of the data? + +Each of these questions is an example of the second general question that I proposed for EDA. Let's look at that question now. -#### Visualize functions between two variables +## Covariation -Distributions provide useful information about variables, but the information is general. By itself, a distribution cannot tell you how the value of a variable in one set of circumstances will differ from the value of the same variable in a different set of circumstances. +> "What type of covariation occurs between my variables?" -_Covariation_ can provide more specific information. Covariation is a relationship between the values of two or more variables. +If variation describes the behavior _within_ a variable, covariation describes the behavior _between_ variables. **Covariation** is the tendency for the values of two or more variables to vary together in a systematic way. -To see how covariation works, consider two variables: the $volume$ of an object and its $temperature$. If the $volume$ of the object usually increases when the $temperature$ of the object increases, then you could use the value of $temperature$ to help predict the value of $volume$. +### Visualizaing covariation -You've probably heard that "correlation (covariation) does not prove causation." This is true, two variables can covary without one causing the other. However, covariation is often the first clue that two variables have a causal relationship. +The best way to spot covariation is to visualize the relationship between two or more variables. How you do that should again depend on the type of variable. -Visualization is one of the best ways to spot covariation. How you look for covariation will depend on the structural relationship between two variables. The simplest structure occurs when two continuous variables have a functional relationship, where each value of one variable corresponds to a single value of the second variable. +#### Two categorical variables -In this scenario, covariation will appear as a pattern in the relationship. If two variables do not covary, their functional relationship will look like a random walk. +Visualize covariation between categorical variables with `geom_count()`. -The variables `date` and `unemploy` in the `economics` data set have a functional relationship. The `economics` data set comes with `ggplot2` and contains various economic indicators for the United States between 1967 and 2007. The `unemploy` variable measures the number of unemployed individuals in the United States in thousands. - -A scatterplot of the data reveals the functional relationship between `date` and `unemploy`. - -```{r} -ggplot(data = economics) + - geom_point(aes(x = date, y = unemploy)) -``` - -`geom_line()` makes the relationship clear. `geom_line()` creates a line chart, one of the most used---and most efficient---devices for visualizing a function. - -```{r} -ggplot(data = economics) + - geom_line(aes(x = date, y = unemploy)) -``` - -Use `geom_step()` to turn a line chart into a step function. Here, the result will be easier to see with a subset of data. - -```{r} -ggplot(data = economics[1:150, ]) + - geom_step(aes(x = date, y = unemploy)) -``` - -Control the step direction by giving `geom_step()` a direction argument. `direction = "hv"` will make stairs that move horizontally then vertically to connect points. `direction = "vh"` will do the opposite. - -`geom_area()` creates a line chart with a filled area under the line. - -```{r} -ggplot(data = economics) + - geom_area(aes(x = date, y = unemploy)) -``` - - -##### Visualize correlations between two variables - -Many variables do not have a functional relationship. As a result, a single value of one variable can correspond to multiple values of another variable. - -Height and weight are two variables that are often related, but do not have a functional relationship. You could examine a classroom of students and notice that three different students, with three different weights all have the same height, 5'4". In this case, there is not a one to one relationship between height and weight. - -The easiest way to plot the relationship between two variables is with a scatterplot, i.e. `geom_point()`. If the variables covary, a pattern will appear in the points. If they do not, the points will look like a random cloud of points. - -```{r} -ggplot(data = mpg) + - geom_point(mapping = aes(x = displ, y = hwy)) -``` - -The jitter adjustment is so useful for scatterplots that `ggplot2` provides the `geom_jitter()`, which is identical to `geom_point()` but comes with `position = "jitter"` by default. - -```{r} -ggplot(data = mpg) + - geom_jitter(mapping = aes(x = displ, y = hwy)) -``` - -`geom_count()` can be a useful way to visualize the distribution between two discrete variables. ```{r} ggplot(data = diamonds) + geom_count(mapping = aes(x = cut, y = color)) ``` -Use `geom_rug()` to visualize the distribution of each variable in the scatterplot. `geom_rug()` adds a tickmark along each axis for each value observed in the data. `geom_rug()` works best as a second layer in the plot (see Section 3 for more info on layers). +The size of each circle in the plot will display how many observations occurred at each combination of values. As with bar charts, you can calculate the specific values with `table()`. Covariation will appear as a strong correlation between specifc x values and specific y values. ```{r} -ggplot(data = mpg) + - geom_point(mapping = aes(x = displ, y = hwy)) + - geom_rug(mapping = aes(x = displ, y = hwy), position = "jitter") +table(diamonds$color, diamonds$cut) ``` -Use the `sides` argument to control which axes to place a "rug" on. +#### One categorical variable and one continuous variable -* `sides = "bl"` - (default) Places a rug on each axis -* `sides = "b"` - Places a rug on the bottom axis -* `sides = "l"` - Places a rug on the left axis - -Scatterplots do not work well with large data sets because individual points will begin to occlude each other. As a result, you cannot tell where the mass of the data lies. Does a black region contain a single layer of points? Or hundreds of points stacked on top of each other? - -You can see this type of plotting in the `diamonds` data set. The data set only contains 53,940 points, but the points overplot each other in a way that we cannot fix with jittering. +Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution that is popular among statisticians. You make a boxplot with `geom_boxplot()`. The chart below shows several boxplots, one for each level of the cut variable. Each boxplot represents the distribution of depth values for points with the given level of cut. ```{r} ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + geom_boxplot(aes(x = cut, y = depth)) ``` -For large data, it is more useful to plot summary information that describes the raw data than it is to plot the raw data itself. Several geoms can help you do this. +How should you interpret a boxplot? Each boxplot consists of: -The simplest way to summarise covariance between two variables is with a model line. The model line displays the trend of the relationship between the variables. +* A box that stretches from the 25th percentile of the distribution to the 75th percentile, a distance known as the Inter-Quartile Range (IQR). In the middle of the box is a line that displays the median, i.e. 50th percentile, of the distribution. These three lines give you a sense of the spread of the distribution and whether or not it is symmetric about the median or skewed to one side. -Use `geom_smooth()` to display a model line between any two variables. As with `geom_rug()`, `geom_smooth()` works well as a second layer for a plot (See Section 3 for details). +* Points that display observations that fall more than 1.5 times the IQR from either edge of the box. These outlying points have a strong chance of being outliers, so they are included in the boxplot for inspection. Since diamonds is a large data set, quite a few points fall in this range. + +* A line (or whisker) that extends from each end of the box and goes to the farthest non-outlier point in the distribution. + +Boxplots make it especially easy to see if the locations or spreads of the distributions change across values. Simply compare the median lines of the distributions, or the width of the boxes. To make the trend easier to see, wrap the $x$ variable with `reorder()`. The code below reorders the x axis based on the median depth value of each group. ```{r} ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + - geom_smooth(mapping = aes(x = carat, y = price)) + geom_boxplot(aes(x = reorder(cut, depth, FUN = median), y = depth)) ``` -`geom_smooth()` will add a loess line to your data if the data contains less than 1000 points, otherwise it will fit a general additive model to your data with a cubic regression spline, and plot the resulting model line. In either case, `geom_smooth()` will display a message in the console to tell you what it is doing. This is not a warning message; you do not need to worry when you see it. - -`geom_smooth()` will also plot a standard error band around the model line. You can remove the standard error band by setting the `se` argument of `geom_smooth()` to `FALSE`. - -Use the `method` argument of `geom_smooth()` to add a specific type of model line to your data. `method` takes the name of an R modeling function. `geom_smooth()` will use the function to calculate the model line. For example, the code below uses R's `lm()` function to fit a linear model line to the data. +`geom_boxplot()` works best when the x variable is categorical, but if you wish to invert the axes, you can easily do so with `coord_flip()`. ```{r} ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + - geom_smooth(mapping = aes(x = carat, y = price), method = lm) + geom_boxplot(aes(x = cut, y = depth)) + + coord_flip() ``` -By default, `geom_smooth()` will use the formula `y ~ x` to model your data. You can modify this formula by setting the `formula` argument to a different formula. If you do this, be sure to refer to the variable on your $x$ axis as `x` and the variable on your $y$ axis as `y`, e.g. +`geom_violin()` provides an alternate version of a boxplot. In a violin plot, the width of the "box" displays a kernel density estimate of the shape of the distribution. ```{r} ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + - geom_smooth(mapping = aes(x = carat, y = price), - method = lm, formula = y ~ poly(x, 4)) + geom_violin(aes(x = cut, y = depth)) + + coord_flip() ``` -Be careful, `geom_smooth()` will overlay a trend line on every data set, even if the underlying data is uncorrelated. You can avoid being fooled by also inspecting the raw data or calculating the correlation between your variables, e.g. `cor(diamonds$carat, diamonds$price)`. -`geom_quantile()` fits a different type of model to your data. Use it to display the results of a quantile regression (see `?rq` for details). Like `geom_smooth()`, `geom_quantile()` takes a formula argument that describes the relationship between $x$ and $y$. +#### Two continuous variables -```{r message = FALSE} -ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + - geom_quantile(mapping = aes(x = carat, y = price), - quantiles = c(0.05, 0.5, 0.95), - formula = y ~ poly(x, 2)) -``` - -`geom_smooth()` and `geom_quantile()` summarise the relationship between two variables as a function, but you can also summarise the relationship as a bivariate distribution. - -`geom_bin2d()` divides the coordinate plane into a two dimensional grid and then displays the number of observations that fall into each bin in the grid. This technique let's you see where the mass of the data lies; bins with a light fill color contain more data than bins with a dark fill color. Bins with no fill contain no data at all. +Visualize covariation between two continuous variables with a scatterplot. Covariation will appear as a structure or pattern in the data points. For example, we saw in Chapter 1 that a positive relationship exists between the carat size and price of a diamond. ```{r} ggplot(data = diamonds) + - geom_bin2d(mapping = aes(x = carat, y = price), binwidth = c(0.1, 500)) + geom_point(aes(x = carat, y = price)) ``` -`geom_hex()` works similarly to `geom_bin2d()`, but it divides the coordinate plane into hexagon shaped bins. This can reduce visual artifacts that are introduced by the aligning edges of rectangular bins. +The easiest relationship to spot between two variables is a straight line. Often you can get a sense of the exact non-linear relationship between two variables by "bending" the data into a straight line with `coord_trans()`. For example, the gamut of charts below suggests that price and carat size have a relationship of the form $price = carat^{\beta}$ (This type of relationship is straightened by a log-log transform). + +```{r fig.show='hold', fig.width=3, fig.height=3} +p <- ggplot(data = diamonds) + + geom_point(aes(x = carat, y = price)) + +p + coord_trans(y = "sqrt") +p + coord_trans(y = "log10") +p + coord_trans(x = "log10", y = "log10") +``` + +Scatterplots become less useful as the size of your data set grows, because points begin to pile up into areas of uniform black. You can make patterns clear again with `geom_bin2d()`, `geom_hex()`, or `geom_density2d()`. + +`geom_bin2d()` and `geom_hex()` both divide the coordinate plane into two dimensional bins and then use fill to display how many points fall into each bin. `geom_bin2d()` creates rectangular bins. `geom_hex()` creates hexagonal bins. You will need to install the hexbin package to use `geom_hex()`. + +```{r fig.show='hold', fig.width=3, fig.height=3} +ggplot(data = diamonds) + + geom_bin2d(aes(x = carat, y = price)) + +ggplot(data = diamonds) + + geom_hex(aes(x = carat, y = price)) +``` + +`geom_density2d()` fits a 2D kernel density estimation to the data and then uses contour lines to highlight areas of high density. It is very useful for overlaying on raw data. + ```{r} -ggplot(data = diamonds) + - geom_hex(mapping = aes(x = carat, y = price), binwidth = c(0.1, 500)) +ggplot(data = faithful, aes(x = eruptions, y = waiting)) + + geom_point() + + geom_density2d() ``` -`geom_hex()` requires the `hexbin` package, which you can install with `install.packages("hexbin")`. +As you search for covariation, also keep an eye out for outliers and clusters. Two dimensional plots can reveal outliers and clusters that are not visible in one dimensional plots. -`geom_density2d()` uses density contours to display similar information. It is the two dimensional equivalent of `geom_density()`. Interpret a two dimensional density plot the same way you would interpret a contour map. Each line connects points of equal density, which makes changes of slope easy to see. +For example, some points in the plot on the left have an unusual combination of $x$ and $y$ values, which makes them an outlier even though their $x$ and $y$ values appear common when examined separately. -As with other summary geoms, `geom_density2d()` makes a useful second layer. +The two dimensional pattern in the plot on the right reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. -```{r} +```{r fig.show='hold', fig.width=3, fig.height=3} ggplot(data = diamonds) + - geom_point(mapping = aes(x = carat, y = price)) + - geom_density2d(mapping = aes(x = carat, y = price)) + geom_point(aes(x = x, y = y)) + + coord_cartesian(xlim = c(3, 12), ylim = c(3, 12)) + +ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) + + geom_jitter() + + geom_rug(position = "jitter") ``` -##### Visualize correlations between three variables -There are two ways to add three (or more) variables to a two dimensional plot. You can map additional variables to aesthetics within the plot, or you can use a geom that is designed to visualize three variables. +#### Three or more variables -`ggplot2` provides three geoms that are designed to display three variables: `geom_raster()`, `geom_tile()` and `geom_contour()`. These geoms generalize `geom_bin2d()` and `geom_density()` to display a third variable instead of a count, or a density. +You can extend scatterplots into three dimensions with the plotly, rgl, rglwidget, and threejs packages (among others). Each creates a "three dimensional," graph that you can rotate with your mouse. Below is an example from plotly. -`geom_raster()` and `geom_tile()` +```{r eval = FALSE} +library(plotly) +plot_ly(data = iris, x = Sepal.Length, y = Sepal.Width, z = Petal.Width, color = Species, type = "scatter3d", mode = "markers") +``` -### Summarizing covariation -### Modeling covariation - -Models have one of the richest literatures of how to select and test, so we've reserved them for their own section. Modelling brings together the various components of data science more so than any other data science task. So we'll postpone its coverage until you can program and wrangle data, two skills that will aid your ability to select models. - -#### How to fit a model -#### How to quickly look at a model -#### How to quickly access a model's residuals -## Bias can ruin everything - -## Bring it all together variables, values, observations, variation, natural laws, models. +![](images/EDA-plotly.png) +You can extend this approach into n-dimensional hyperspace with the ggobi package, but you will soon notice a weakness of multidimensional graphs. You can only visualize multidimensional space by projecting it onto your two dimensional retina. In the case of 3D graphics, you can combine 2D projections with rotation to create an intuitive illusion of space, but the illusion ceases to be intuitive as soon as you add a fourth dimension. +You can use aesthetics such as color and size to add a third or fourth variable to a two dimensional graph. You can also explore complex relationships two variables at a time. If you need to investigate the relationship between mutliple variables at the saem time, I recommend that you use modelling techniques, which we will discuss soon. From 725ae26de0b95ebd90c21c05a44f12a0505bbad9 Mon Sep 17 00:00:00 2001 From: Garrett Date: Thu, 19 May 2016 17:06:22 -0400 Subject: [PATCH 05/22] Edits the Part intro for explore --- explore.Rmd | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/explore.Rmd b/explore.Rmd index d9dfec0..0597b38 100644 --- a/explore.Rmd +++ b/explore.Rmd @@ -7,13 +7,7 @@ library(ggplot2) library(dplyr) ``` -If you are like most humans, your brain isn't built to process tables of raw data. Instead, it is very good at analyzing images and comparing summary statistics. This part of the book will show you the best ways to visualize and transform your data to make discoveries, a process known as Exploratory Data Analysis (EDA). - -## Why read this Part? - -You may be surprised to learn that your mind can only attend to a few pieces of new information at a time. According to cognitive scientists, the human working memory can only handle four to seven novel values at once, which creates a bottleneck when you process information. - -You probably do not notice this bottleneck in your day-to-day life, but it becomes a big deal when you work with data. The bottleneck makes it difficult to discover patterns in your raw data. To discover even a simple pattern, you must consider many values _at the same time_, which is difficult to do. For example, a simple pattern exists between $X$ and $Y$ in the table below, but it is very difficult to spot. +If you are like most humans, your brain is not designed to work with raw data. The working memory can only attend to a few values at a time, which makes it difficult to discover patterns in raw data. For example, can you spot the striking relationship between $X$ and $Y$ in the table below? ```{r data, echo=FALSE} x <- rep(seq(0.2, 1.8, length = 5), 2) + runif(10, -0.15, 0.15) @@ -25,16 +19,16 @@ order <- sample(1:10) knitr::kable(round(data.frame(X = X[order], Y = Y[order]), 2)) ``` -While your mind may stumble over raw data, you can easily process visual information. Your brain processes visual information in a different (and much wider) channel than it processes symbolic information, like words and numbers. As a result, the quickest way to understand your data is to visualize it. Once you plot your data, you can instantly see the relationships between values. Here, we see that the values above fall on a circle. +While we may stumble over raw data, we can easily process visual information. Within your mind is a visual processing system that has been fine-tuned by thousands of years of evolution. As a result, the quickest way to understand your data is to visualize it. Once you plot your data, you can instantly see the relationships between values. Here, we see that the values above fall on a circle. -```{r echo=FALSE} -ggplot2::qplot(X, Y) + ggplot2::coord_fixed(ylim = c(-2.5, 0.5), xlim = c(-0.5, 2.5)) +```{r echo=FALSE, dependson=data} +ggplot2::qplot(X, Y) + ggplot2::coord_fixed(ylim = c(-2.5, 2.5), xlim = c(-2.5, 2.5)) ``` -Visualization works because your mind contains a visual processing system that has been fine-tuned by thousands of years of evolution. However, visualization is not the only way to comprehend data. +Visualization works because your brain processes visual information in a different (and much wider) channel than it processes symbolic information, like words and numbers. However, visualization is not the only way to comprehend data. -You can also comprehend your data if you transform it into a small set of summary values. You can easily attend to a few summary values, which lets you absorb important information about the data. This is why it feels natural to work with things like averages, e.g. how tall is the average basketball player? An average is a single number that you can attend to. Although averages are quite popular, you can also compare data sets on other summary values, such as maximums, minimums, medians, and so on. +You can also comprehend data by transforming it. You can easily attend to a small set of summary values, which lets you absorb important information about the data. This is why it feels natural to work with things like averages, maximums, minimums, medians, and so on. -Another way to summarize your data is to replace it with a model, a function that describes the relationships between two or more variables. You can comprehend the important parts of a model more easily than you can attend to the raw values in your data set. +Another way to summarize your data is to replace it with a model, a function that describes the relationships between two or more variables. You can attend to the important parts of a model more easily than you can attend to the raw values in your data set. -These tactics, visualizing, transforming, and modeling your data, are the most important tools for exploring data. This part will show you how to visualize and transform your data with R, as well as how to apply these skills to discover insights in your data. You will also learn the basics of modelling in R, which will prepare you for Part 4 of the book. +The first problem in Data Science is a cognitive problem: how can you understand your own data? In this part of the book, you'll learn how to use R to discover and understand the information contained in your data. From 4d9998117ff64ec79de95cf7c883e296e882e4b3 Mon Sep 17 00:00:00 2001 From: kdpsingh Date: Fri, 20 May 2016 02:09:26 -0400 Subject: [PATCH 06/22] Fixed typo - "machinary" to machinery --- iteration.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iteration.Rmd b/iteration.Rmd index 92609a2..c4fd653 100644 --- a/iteration.Rmd +++ b/iteration.Rmd @@ -19,7 +19,7 @@ In [functions], we talked about how important it is to reduce duplication in you One part of reducing duplication is writing functions. Functions allow you to identify repeated patterns of code and extract them out into indepdent pieces that you can reuse and easily update as code changes. Iteration helps you when you need to do the same thing to multiple inputs: repeating the same operation on different columns, or on different datasets. (Generally, you won't need to use explicit iteration to deal with different subsets of your data: in most cases the implicit iteration in dplyr will take care of that problem for you.) -In this chapter you'll learn about two important iteration paradigms: imperative programming and functional programming, and the machinary each provides. On the imperative side you have things like for loops and while loops, which are a great place to start because they make iteration very explicit, so it's obvious what's happening. However, for loops are quite verbose, and include quite a bit of book-keeping code, that is duplicated for every for loop. Functional programming (FP) offers tools to extract out this duplicated code, so each common for loop pattern gets its own function. Once you master the vocabulary of FP, you can solve many common iteration problems with less code, more ease, and fewer errors. +In this chapter you'll learn about two important iteration paradigms: imperative programming and functional programming, and the machinery each provides. On the imperative side you have things like for loops and while loops, which are a great place to start because they make iteration very explicit, so it's obvious what's happening. However, for loops are quite verbose, and include quite a bit of book-keeping code, that is duplicated for every for loop. Functional programming (FP) offers tools to extract out this duplicated code, so each common for loop pattern gets its own function. Once you master the vocabulary of FP, you can solve many common iteration problems with less code, more ease, and fewer errors. Some people will tell you to avoid for loops because they are slow. They're wrong! (Well at least they're rather out of date, for loops haven't been slow for many years). The chief benefits of using FP functions like `lapply()` or `purrr::map()` is that they are more expressive and make code both easier to write and easier to read. From 6cf882b276a79be1957b4c6b1c6eee783df0c2ed Mon Sep 17 00:00:00 2001 From: kdpsingh Date: Fri, 20 May 2016 02:19:51 -0400 Subject: [PATCH 07/22] Minor grammatical corrections. --- iteration.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iteration.Rmd b/iteration.Rmd index 92609a2..4f31705 100644 --- a/iteration.Rmd +++ b/iteration.Rmd @@ -21,7 +21,7 @@ One part of reducing duplication is writing functions. Functions allow you to id In this chapter you'll learn about two important iteration paradigms: imperative programming and functional programming, and the machinary each provides. On the imperative side you have things like for loops and while loops, which are a great place to start because they make iteration very explicit, so it's obvious what's happening. However, for loops are quite verbose, and include quite a bit of book-keeping code, that is duplicated for every for loop. Functional programming (FP) offers tools to extract out this duplicated code, so each common for loop pattern gets its own function. Once you master the vocabulary of FP, you can solve many common iteration problems with less code, more ease, and fewer errors. -Some people will tell you to avoid for loops because they are slow. They're wrong! (Well at least they're rather out of date, for loops haven't been slow for many years). The chief benefits of using FP functions like `lapply()` or `purrr::map()` is that they are more expressive and make code both easier to write and easier to read. +Some people will tell you to avoid for loops because they are slow. They're wrong! (Well at least they're rather out of date, as for loops haven't been slow for many years). The chief benefits of using FP functions like `lapply()` or `purrr::map()` is that they are more expressive and make code both easier to write and easier to read. In later chapters you'll learn how to apply these iterating ideas when modelling. You can often use multiple simple models to help understand a complex dataset, or you might have multiple models because you're bootstrapping or cross-validating. The techniques you'll learn in this chapter will be invaluable. @@ -248,7 +248,7 @@ for (i in seq_along(x)) { ### Unknown output length -Sometimes you might know now how long the output will be. For example, imagine you want to simulate some random vectors of random lengths. You might be tempted to solve this problem by progressively growing the vector: +Sometimes you might not know how long the output will be. For example, imagine you want to simulate some random vectors of random lengths. You might be tempted to solve this problem by progressively growing the vector: ```{r} means <- c(0, 1, 2) From a43fb95cc429737d81438c78afdc02e6f8931511 Mon Sep 17 00:00:00 2001 From: kdpsingh Date: Fri, 20 May 2016 02:30:10 -0400 Subject: [PATCH 08/22] Minor grammar fix -- removed "type of" There was a missing word after "type of" -- potentially you meant "type of assignment." I removed "type of" to make it more concise. --- iteration.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iteration.Rmd b/iteration.Rmd index 92609a2..afd6eb7 100644 --- a/iteration.Rmd +++ b/iteration.Rmd @@ -261,7 +261,7 @@ for (i in seq_along(means)) { str(output) ``` -But this type of is not very efficient because in each iteration, R has to copy all the data from the previous iterations. In technical terms you get "quadratic" ($O(n^2)$) behaviour which means that a loop with three times as many elements would take nine times ($3^2$) as long to run. +But this is not very efficient because in each iteration, R has to copy all the data from the previous iterations. In technical terms you get "quadratic" ($O(n^2)$) behaviour which means that a loop with three times as many elements would take nine times ($3^2$) as long to run. A better solution to save the results in a list, and then combine into a single vector after the loop is done: From 671f8800b4f3cfeb0478b5e92cf53d9a74099b07 Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 20 May 2016 17:15:21 -0400 Subject: [PATCH 09/22] Adds model section to EDA chapter. Edits EDA chapter. --- images/EDA-boxplot.pdf | Bin 0 -> 26596 bytes variation.Rmd | 326 +++++++++++++++++++++++++++++++---------- 2 files changed, 250 insertions(+), 76 deletions(-) create mode 100644 images/EDA-boxplot.pdf diff --git a/images/EDA-boxplot.pdf b/images/EDA-boxplot.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3cea237c9fa347c834600c4a515b2ed393cb52ae GIT binary patch literal 26596 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 "There are no routine statistical questions, only questionable statistical routines."---Sir David Cox -> "Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise.."---John Tukey +> "Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise."---John Tukey -EDA begins with questions. The questions that you ask about your data will guide your attention as you search for insights. Good questions will lead you to discoveries that let you ask better questions. +Your goal during EDA is to develop a complete understanding of your data set and the information that it contains. The easiest way to do this is to use questions as tools that guide your investigation. When you ask a question, the question focuses your attention on a specific part of your data set and helps you decide which graphs or models to make. -There is no rule about which questions you should ask to guide your research. You will often begin with one set of questions and then replace them as your understanding of your data deepens. If you ever find yourself at a loss for questions, two types of questions will always be useful for making discoveries with your data. You can loosely word them as +During EDA, the _quantity_ of questions that you ask matters more than the quality of the questions. It is difficult to ask revealing questions at the start of your analysis because you do not know what insights are contained in your data set. On the other hand, each new question that you ask will expose you to a new aspect of your data and increase your chance of making a discovery. You can quickly drill down into the most interesting parts of your data---and develop a set of thought provoking questions---if you follow each question with a new question based on what you find. + +There is no rule about which questions you should ask to guide your research. However, two types of questions will always be useful for making discoveries within your data. You can loosely word them as 1. What type of **variation** occurs **within** my variables? and 2. What type of **covariation** occurs **between** my variables? -The rest of this chapter will look at these two questions. I'll show you the best ways to use visualization and summaries to explore variation and covariation. Our discussion will lead to a model of data science itself, the model that we've built this book around. To make the discussion easier, let's define some terms: +The rest of this chapter will look at these two questions. I'll explain what variation and covariation are, and I'll show you several ways to answer each question. Our discussion will lead to a model of data science itself, the model that I've built this book around. To make the discussion easier, let's define some terms: * A _variable_ is a quantity, quality, or property that you can measure. @@ -41,9 +45,7 @@ The rest of this chapter will look at these two questions. I'll show you the bes > "What type of variation occurs within my variables?" -**Variation** is the tendency of the values of a variable to change from measurement to measurement. - -You can see variation easily in real life; if you measure any continuous variable twice---and precisely enough, you will get two different results. This is true even if you measure quantities that should be constant, like the speed of light (below). Each of your measurements will include a small amount of error that varies from measurement to measurement. +**Variation** is the tendency of the values of a variable to change from measurement to measurement. You can see variation easily in real life; if you measure any continuous variable twice---and precisely enough, you will get two different results. This is true even if you measure quantities that should be constant, like the speed of light (below). Each of your measurements will include a small amount of error that varies from measurement to measurement. ```{r, variation, echo = FALSE} @@ -58,16 +60,14 @@ Each variable contains its own pattern of variation, which can reveal interestin ### Visualizing distributions -How you visualize the distribution will depend on whether your variable is categorical or continuous. - -A variable is **categorical** if it can only have a finite (or countably infinite) set of unique values. In R, categorical variables are usually saved as factors, integers, or character strings. To examine the distribution of a categorical variable, use a bar chart. +How you visualize the distribution of a variable will depend on whether the variable is categorical or continuous. A variable is **categorical** if it can only have a finite (or countably infinite) set of unique values. In R, categorical variables are usually saved as factors, integers, or character strings. To examine the distribution of a categorical variable, use a bar chart. ```{r} ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut)) ``` -The height of the bars displays how many observations occurred with each x value. If you would like, these exact values, wyou can compute them with R's `table()` function. +The height of the bars displays how many observations occurred at each x value. You can compute these values manually with `table()`. ```{r} table(diamonds$cut) @@ -82,7 +82,7 @@ ggplot(data = diamonds) + A histogram divides the x axis into equally spaced intervals and then uses a bar to display how many observations fall into each interval. In the graph above, the tallest bar shows that almost 30,000 observations have a $carat$ value between 0.25 and 0.75, which are the left and right edges of the bar. -In a histogram, the intervals are known as **bins** and the process of creating intervals is known as **binning**. You can set the binwidth of the intervals with the `binwidth` argument of `geom_histogram()`, which is measured in the units of the $x$ axis. You should always explore a variety of binwidths when working with histograms, as different binwidths can reveal different patterns. For example, here is how the graph above looks with a binwidth of 0.01. +You can set the width of the intervals with the `binwidth` argument of `geom_histogram()`, which is measured in the units of the $x$ axis. You should always explore a variety of binwidths when working with histograms, as different binwidths can reveal different patterns. For example, here is how the graph above looks with a binwidth of 0.01. ```{r message = FALSE} ggplot(data = diamonds) + @@ -91,7 +91,7 @@ ggplot(data = diamonds) + If you wish to overlay multiple histograms in the same plot, I recommend using `geom_freqpoly()` or `geom_density2d()` instead of `geom_histogram()`. `geom_freqpoly()` makes a frequency polygon, a line that connects the tops of the bars that would appear in a histogram. Like `geom_histogram()`, `geom_freqpoly()` accepts a binwidth argument. -`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a frequency polygon. You can control the smoothness of the density with `adjust`. `geom_density()` displays $density$---not $count$---on the y axis; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup. +`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a frequency polygon. You can control the smoothness of the density with `adjust`. `geom_density()` displays $density$---not $count$---on the y axis; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup, which makes it easier to compare subgroups. ```{r message = FALSE, fig.show='hold', fig.width=3} zoom <- coord_cartesian(xlim = c(55, 70)) @@ -107,30 +107,30 @@ ggplot(data = diamonds) + ## Follow up questions -Now that you can visualize variation, what should you look for in your plots? Here are the most useful types of information in any graph: +Now that you can visualize variation, what should you look for in your plots? and what type of follow up questions should you ask? I've put together below a list of the most useful types of information that you will find in your graphs, along with some follow up questions for each type of information. The key to asking good follow up questions will be to rely on your **curiosity** (What do you want to learn more about?) as well as your **skepticism** (How could this be misleading?). -* *Typical Values* +* *Typical values* In both bar charts and histograms, tall bars reveal common values of a variable. Shorter bars reveal less common or rare values. Places that do not have bars reveal seemingly impossible values. To turn this information into a useful question, look for anything unexpected: - + Which values are the most common? Why? + + Which values are the most common? Why might that be? - + Which values are the most rare? Why? + + Which values are the most rare? Why might that be? - + Is there an unusual pattern to the frequencies? Why? + + Is there an unusual pattern to the frequencies? Why might that be? - + Do the typical values change if you look at individual subgroups of the data? + + Do the typical values change if you look at subgroups of the data? - For example, the histogram below suggests several interesting questions: Why are there more diamonds at whole carats and common fractions of carats? Why are there slightly more diamonds above each of these peaks than there are slightly below each of these peaks? + As an example, the histogram below suggests several interesting questions: Why are there more diamonds at whole carats and common fractions of carats? Why are there more diamonds slightly to the right of each peak than there are slightly to the left of each peak? - ```{r echo = FALSE, message = FALSE, fig.height = 2} + ```{r echo = FALSE, message = FALSE, warning = FALSE, fig.height = 2} ggplot(data = diamonds) + geom_histogram(aes(x = carat), binwidth = 0.01) + xlim(0, 3) ``` * *Range of values* - The range, or spread, of values in the distribution reveals how certain you can be when you make predictions about a variable. If the variable only takes a narrow set of values, like below, you are unlikely to be far off if you make a prediction about a future observation. Even if the observation takes a value at the distant extreme of the distribution, the value will not be far from your guess. + The range of values in the distribution reveals how certain you can be when you make predictions about a variable. If the variable only takes a narrow set of values, like below, you are unlikely to be far off if you make a prediction about a future observation. Even if the observation takes a value at the distant extreme of the distribution, the value will not be far from your guess. ```{r echo = FALSE, message = FALSE, fig.height = 2} mpg$hwy2 <- mpg$hwy / 10 + 22 @@ -143,11 +143,11 @@ Now that you can visualize variation, what should you look for in your plots? He ggplot(mpg) + geom_histogram(aes(x = hwy), binwidth = 1) + xlim(10, 45) ``` - As a quick rule, narrow distributions imply less uncertainty when making predictions about a variable; wide distributions imply more uncertainty. Ask yourself + As a quick rule, wide distributions imply less certainty when making predictions about a variable; narrow distributions imply more certainty. Ask yourself + Do your data show a surprising amount of certainty or uncertainty? Why? - + Does the spread of the data change if you look at individual subgroups of the data? + + Does the range of the distribution change if you look at individual subgroups of the data? * *Outliers* @@ -172,41 +172,47 @@ Now that you can visualize variation, what should you look for in your plots? He + How are the observations in separate clusters different from each other? + How can you explain or describe the clusters? + + + Why might the appearance of clusters be misleading? - The histogram below displays the length in minutes of 272 eruptions of the Old Faithful Geyser in Yellowstone National Park. You can spot two distinct clusters; Old Faithful appears to oscillate between short and long eruptions. + The histogram below displays two distinct clusters. It shows the length in minutes of 272 eruptions of the Old Faithful Geyser in Yellowstone National Park; Old Faithful appears to oscillate between short and long eruptions. ```{r echo = FALSE, message = FALSE, fig.height = 2} ggplot(faithful) + geom_histogram(aes(x = eruptions)) ``` -To answer many of the follow up questions above, you will need to make a new graph that includes two or more variables and then look for: +To answer many of the follow up questions above, you will need to make a new graph that shows the relationship between two or more variables and then look for: * *Patterns* - Patterns in your data provide clues about covariation. If a relationship exists between two variables it will appear as a pattern in the data. If you spot a pattern, ask yourself: + Patterns in your data provide clues about relationships. If a systematic relationship exists between two variables it will appear as a pattern in the data. If you spot a pattern, ask yourself: + Could this pattern be due to coincidence (i.e. random chance)? - + How can you describe the relationship described by the pattern? + + How can you describe the relationship implied by the pattern? + How strong is the relationship implied by the pattern? - + What other variable might be involved in the relationship? + + What other variables might affect the relationship? + Does the relationship change if you look at individual subgroups of the data? -Each of these questions is an example of the second general question that I proposed for EDA. Let's look at that question now. + A scatterplot of Old Faithful eruption lengths versus the wait time between eruptions shows a pattern: longer wait times are associated with longer eruptions. The scatterplot also reveals the two clusters that we noticed above. + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(faithful) + geom_point(aes(x = eruptions, y = waiting)) + ``` + +Questions about patterns are examples of the second general question that I proposed for EDA. Let's look at that question now. ## Covariation > "What type of covariation occurs between my variables?" -If variation describes the behavior _within_ a variable, covariation describes the behavior _between_ variables. **Covariation** is the tendency for the values of two or more variables to vary together in a systematic way. +If variation describes the behavior _within_ a variable, covariation describes the behavior _between_ variables. **Covariation** is the tendency for the values of two or more variables to vary together in a correlated way. The best way to spot covariation is to visualize the relationship between two or more variables. How you do that should again depend on the type of variable. ### Visualizaing covariation -The best way to spot covariation is to visualize the relationship between two or more variables. How you do that should again depend on the type of variable. - #### Two categorical variables Visualize covariation between categorical variables with `geom_count()`. @@ -216,7 +222,7 @@ ggplot(data = diamonds) + geom_count(mapping = aes(x = cut, y = color)) ``` -The size of each circle in the plot will display how many observations occurred at each combination of values. As with bar charts, you can calculate the specific values with `table()`. Covariation will appear as a strong correlation between specifc x values and specific y values. +The size of each circle in the plot displays how many observations occurred at each combination of values. Covariation will appear as a strong correlation between specifc x values and specific y values. As with bar charts, you can calculate the specific values with `table()`. ```{r} table(diamonds$color, diamonds$cut) @@ -224,70 +230,65 @@ table(diamonds$color, diamonds$cut) #### One categorical variable and one continuous variable -Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution that is popular among statisticians. You make a boxplot with `geom_boxplot()`. The chart below shows several boxplots, one for each level of the cut variable. Each boxplot represents the distribution of depth values for points with the given level of cut. - -```{r} -ggplot(data = diamonds) + - geom_boxplot(aes(x = cut, y = depth)) -``` - -How should you interpret a boxplot? Each boxplot consists of: +Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution that is popular among statisticians. Each boxplot consists of: * A box that stretches from the 25th percentile of the distribution to the 75th percentile, a distance known as the Inter-Quartile Range (IQR). In the middle of the box is a line that displays the median, i.e. 50th percentile, of the distribution. These three lines give you a sense of the spread of the distribution and whether or not it is symmetric about the median or skewed to one side. -* Points that display observations that fall more than 1.5 times the IQR from either edge of the box. These outlying points have a strong chance of being outliers, so they are included in the boxplot for inspection. Since diamonds is a large data set, quite a few points fall in this range. +* Points that display observations that fall more than 1.5 times the IQR from either edge of the box. These outlying points have a strong chance of being outliers, so they are included in the boxplot for inspection. * A line (or whisker) that extends from each end of the box and goes to the farthest non-outlier point in the distribution. -Boxplots make it especially easy to see if the locations or spreads of the distributions change across values. Simply compare the median lines of the distributions, or the width of the boxes. To make the trend easier to see, wrap the $x$ variable with `reorder()`. The code below reorders the x axis based on the median depth value of each group. - -```{r} -ggplot(data = diamonds) + - geom_boxplot(aes(x = reorder(cut, depth, FUN = median), y = depth)) +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-boxplot.pdf") ``` -`geom_boxplot()` works best when the x variable is categorical, but if you wish to invert the axes, you can easily do so with `coord_flip()`. +The chart below shows several boxplots, one for each level of the class variable in the mpg data set. Each boxplot represents the distribution of hwy values for points with the given level of class. To make boxplots, use `geom_boxplot()`. ```{r} -ggplot(data = diamonds) + - geom_boxplot(aes(x = cut, y = depth)) + +ggplot(data = mpg) + + geom_boxplot(aes(x = class, y = hwy)) +``` + + + +Covariation will appear as a systematic change in the medians or IQR's of the boxplots. To make the trend easier to see, wrap the $x$ variable with `reorder()`. The code below reorders the x axis based on the median hwy value of each group. + +```{r} +ggplot(data = mpg) + + geom_boxplot(aes(x = reorder(class, hwy, FUN = median), y = hwy)) +``` + +`geom_boxplot()` works best when the categorical variable is on the x axis. You can invert the axes with `coord_flip()`. + +```{r} +ggplot(data = mpg) + + geom_boxplot(aes(x = reorder(class, hwy, FUN = median), y = hwy)) + coord_flip() ``` -`geom_violin()` provides an alternate version of a boxplot. In a violin plot, the width of the "box" displays a kernel density estimate of the shape of the distribution. +If you wish to add more information to your boxplots, use `geom_violin()`. In a violin plot, the width of the "box" displays a kernel density estimate of the shape of the distribution. ```{r} -ggplot(data = diamonds) + - geom_violin(aes(x = cut, y = depth)) + +ggplot(data = mpg) + + geom_violin(aes(x = reorder(class, hwy, FUN = median), y = hwy)) + coord_flip() ``` #### Two continuous variables -Visualize covariation between two continuous variables with a scatterplot. Covariation will appear as a structure or pattern in the data points. For example, we saw in Chapter 1 that a positive relationship exists between the carat size and price of a diamond. +Visualize covariation between two continuous variables with a scatterplot, i.e. `geom_point()`. Covariation will appear as a structure or pattern in the data points. For example, a positive trend exists between the carat size and price of a diamond. ```{r} ggplot(data = diamonds) + geom_point(aes(x = carat, y = price)) ``` -The easiest relationship to spot between two variables is a straight line. Often you can get a sense of the exact non-linear relationship between two variables by "bending" the data into a straight line with `coord_trans()`. For example, the gamut of charts below suggests that price and carat size have a relationship of the form $price = carat^{\beta}$ (This type of relationship is straightened by a log-log transform). - -```{r fig.show='hold', fig.width=3, fig.height=3} -p <- ggplot(data = diamonds) + - geom_point(aes(x = carat, y = price)) - -p + coord_trans(y = "sqrt") -p + coord_trans(y = "log10") -p + coord_trans(x = "log10", y = "log10") -``` - Scatterplots become less useful as the size of your data set grows, because points begin to pile up into areas of uniform black. You can make patterns clear again with `geom_bin2d()`, `geom_hex()`, or `geom_density2d()`. -`geom_bin2d()` and `geom_hex()` both divide the coordinate plane into two dimensional bins and then use fill to display how many points fall into each bin. `geom_bin2d()` creates rectangular bins. `geom_hex()` creates hexagonal bins. You will need to install the hexbin package to use `geom_hex()`. +`geom_bin2d()` and `geom_hex()` divide the coordinate plane into two dimensional bins and then use a fill color to display how many points fall into each bin. `geom_bin2d()` creates rectangular bins. `geom_hex()` creates hexagonal bins. You will need to install the hexbin package to use `geom_hex()`. -```{r fig.show='hold', fig.width=3, fig.height=3} +```{r fig.show='hold', fig.width=3} ggplot(data = diamonds) + geom_bin2d(aes(x = carat, y = price)) @@ -295,7 +296,7 @@ ggplot(data = diamonds) + geom_hex(aes(x = carat, y = price)) ``` -`geom_density2d()` fits a 2D kernel density estimation to the data and then uses contour lines to highlight areas of high density. It is very useful for overlaying on raw data. +`geom_density2d()` fits a 2D kernel density estimation to the data and then uses contour lines to highlight areas of high density. It is very useful for overlaying on raw data when your data set is not big. ```{r} @@ -304,9 +305,9 @@ ggplot(data = faithful, aes(x = eruptions, y = waiting)) + geom_density2d() ``` -As you search for covariation, also keep an eye out for outliers and clusters. Two dimensional plots can reveal outliers and clusters that are not visible in one dimensional plots. +#### Follow up questions -For example, some points in the plot on the left have an unusual combination of $x$ and $y$ values, which makes them an outlier even though their $x$ and $y$ values appear common when examined separately. +Use the same follow up questions for plots of covariation that you sue for plots of variation. Outliers, clusters, and patterns all appear in two dimensional plots. In fact, two dimensional plots can reveal outliers and clusters that are not visible in one dimensional plots. For example, some points in the plot on the left have an unusual combination of $x$ and $y$ values, which makes them an outlier even though their $x$ and $y$ values appear normal when examined separately. The two dimensional pattern in the plot on the right reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. @@ -317,23 +318,196 @@ ggplot(data = diamonds) + ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_jitter() + + geom_density2d() + geom_rug(position = "jitter") ``` +In general, outliers and clusters become easier to spot as you look at the interaction of more and more variables. However, as you include more variables in your plot, data becomes harder to visualize. #### Three or more variables -You can extend scatterplots into three dimensions with the plotly, rgl, rglwidget, and threejs packages (among others). Each creates a "three dimensional," graph that you can rotate with your mouse. Below is an example from plotly. +You can extend scatterplots into three dimensions with the plotly, rgl, rglwidget, and threejs packages (among others). Each creates a "three dimensional," graph that you can rotate with your mouse. Below is an example from plotly, displayed as a static image. ```{r eval = FALSE} library(plotly) plot_ly(data = iris, x = Sepal.Length, y = Sepal.Width, z = Petal.Width, color = Species, type = "scatter3d", mode = "markers") ``` -![](images/EDA-plotly.png) +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-plotly.png") +``` -You can extend this approach into n-dimensional hyperspace with the ggobi package, but you will soon notice a weakness of multidimensional graphs. You can only visualize multidimensional space by projecting it onto your two dimensional retina. In the case of 3D graphics, you can combine 2D projections with rotation to create an intuitive illusion of space, but the illusion ceases to be intuitive as soon as you add a fourth dimension. +You can extend this approach into n-dimensional hyperspace with the ggobi package, but you will soon notice a weakness of multidimensional graphs. You can only visualize multidimensional space by projecting it onto your two dimensional retinas. In the case of 3D graphics, you can combine 2D projections with rotation to create an intuitive illusion of 3D space, but the illusion ceases to be intuitive as soon as you add a fourth dimension. -You can use aesthetics such as color and size to add a third or fourth variable to a two dimensional graph. You can also explore complex relationships two variables at a time. If you need to investigate the relationship between mutliple variables at the saem time, I recommend that you use modelling techniques, which we will discuss soon. +This doesn't mean that you should ignore complex interactions in your data. You can explore multivariate relationships in several ways. For example, you can visualize each combination of variables in the relationship, two at a time. Or you could use aesthetics and facetting to add additional variables to a 2D plot. Or you could calculate summaries that help you understand the relationship. Two types of summaries are particularly useful for EDA: summary statistics and models. + +## Summary Statistics + +You can use summary statistics to answer questions about the variation and covariation in your data. To do this, use dplyr's `summarise()` with a function that calculates summary statistics. + +```{r} +diamonds %>% + summarise(avg_price = mean(price), sd_price = sd(price)) +``` + +The measures of location and measures of spread listed in Chapter 3 are particularly useful for summaries; as is `cor()`, a function that calculates the correlation coefficient between two numerical variables. + +The correlation coefficient measures the strength of the _linear_ relationship between two variables. Correlation coefficients can range from -1 to 1. A value near -1 or 1 describes a strong relationship between two variables. A value near zero describes a weak relationship, or no relationship. A negative correlation coefficient indicates that the variables are inversely related. + +```{r} +cor(diamonds$price, diamonds$carat) +``` + +Summary statistics provide useful information. They are easy to compare against each other and easy to use in conversation. However, I do not recommend that you use summary statistics without also using visualizations. A visualization can prompt you to notice something that you did not expect to see. A summary statistic can only provide information that you intend to see. + +## Models + +> "Essentially, all models are wrong, but some are useful."---George Box + +Models are a type of summary that describes the relationships in your data. You can use models to reveal unexpected covariation in your data or to describe relationships that you cannot easily visualize. + +It is important to keep in mind that a model is just a description of your data. In my experience, you can easily overthink models because models are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make predictions, and we will examine it in Part 4. For now, we are only going to use models as descriptions that can use to help you discover insights in your data. + +The most useful type of model for explorating your data is a linear model. A **linear model** describes the value of one variable as a linear combination of the values of other variables. This means that a linear model would describe the relationship between two variables as a line (below left), the relationship between three variables as a plane (below right), and the relationship between $n$ variables as a $n - 1$ dimensional hyperplane. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-plotly.png") +``` + +Linear models are useful because they are easy to interpret and because linear functions are a reasonable approximation to non-linear relationships over short distances (this is the basis of the taylor series approximation). You can also turn many non-linear relationships into linear relationships by transfroming the variables involved. + +You can represent a linear model with the formula + +$$Y = \alpha + \beta_{1} X_{1} + ... + \beta_{n} X_{n} + \epsilon$$ + +The first portion of the formula is the equation of the line (or plane or hyperplane) that "best" fits the data. The last variable in the formula, $\epsilon$, is an error term that has an unknown, random value. As a result, it is easy to interpret a linear model. A linear model says that when an observation has the $X$ values $x_{1}, ..., x_{n}$, it will have the $Y$ value $y$, where $y$ equals the point on the line (or plane or hyperplane) at $(x_{1}, ... x_{n})$ plus or minus some random error, $\epsilon$. + +If all of the points in your data set fall close to the model line (or plane or hyperplane) then you can assume that the random error represented by $\epsilon$ is small. If they fall far from the line (or plane or hyperplane), then you can assume that the random error is large. The algorithm that you use to fit your linear model automatically chooses the line (or plane or hyperplane) that minimizes the distance between your data points and the model line (or plane or hyperplane). Technically, it minimizes the sum squared distances between each point and the model surface. + +### Fitting a linear model + +To fit a linear model to your data, use the `lm()` function that comes with R. Then save the output to an object that you can access later. + +```{r} +faithful_mod <- lm(eruptions ~ waiting, data = faithful) +diamonds_mod <- lm(price ~ carat + cut, data = diamonds) +``` + +The first argument of `lm()` should be a formula, two or more variables separated by a `~`. You've seen formulas before, we used them in Chapter 2 to facet graphs. + +The left hand side of the formula should contain a single variable name. This will be the response variable in your model. If you think of your model as a function, the explanatory variable would be the variable on the $y$ axis. The right hand side of the formula should contain the names of the variables related to the response variable. If you think of your model as a function, these would be the variables on the $x$ axes. If you include more than one variable on the right hand side of the formula, separate their names with a `+`, e.g. `price ~ carat + cut + color + clarity`. + +The second argument of `lm` should be the name of the data set that contains the variables in the formula. + +Once you've made your model, you can see the model equation by typing the name of the model object at the command line. + +```{r} +faithful_mod +``` + +The output above shows that the linear model that best fits the Old Faithful data is + +$$\text{eruption} = -1.87 + 0.07 \time \text{waiting} + \epsilon$$ + +You can interpret the coefficient of each $X_{i}$ variable in your model as the amount of change in $Y$ that is associated with a one unit change in $X_{i}$ _when the values of any other $X$ variables in the model are held constant. + +If you like, you can return the coefficients in a data frame with the `tidy()` function in the broom package. For now, ignore the last three columns. + +```{r} +library(broom) +tidy(faithful_mod) +``` + +### Visualizing a linear model + +If your model only contains one variable, like our faithful mod, you can visualize its results with `geom_smooth()`. To do this, plot your model's $Y$ variable on the y axis, plot your model's $X$ variable on the $x$ axis, and set the method argument of `geom_smooth()` to `lm`, the name of the function that R should use to fit the model. I also like to set `se = FALSE` to remove the standard error ribbon that `geom_smooth()` displays by default. We'll look at standard errors in Part 4. + +```{r} +ggplot(data = faithful, aes(x = waiting, y = eruptions)) + + geom_point() + + geom_smooth(method = lm, se = FALSE) +``` + +If your model contains multiple $X$ variables, the easiest way to visualize it will be to plot the fitted (i.e predicted) values of the model against various combinations of the explanatory variables. The fitted values are the $Y$ values along the model line (or plane or hyperplane) that correspond to each observation in your data set. You can access the fitted values with broom's `augment()` function. + +```{r} +diamonds_fit <- augment(diamonds_mod) +head(diamonds_fit) +``` + +`augment()` returns a data frame that makes it easy to plot the fitted values in relation to the explanatory and response variables. + +```{r} +ggplot(data = diamonds_fit, aes(x = carat, y = price, color = cut)) + + geom_point(alpha = 0.1) + + geom_line(aes(y = .fitted)) + + theme_bw() +``` + +### Modeling categorical variables + +If you add a categorical variable to your model, like `diamonds$cut`, R will fit a separate line for each level of the variable, as you see above. It will also add each level of the variable, except one, to the model formula, e.g. + +```{r} +diamonds_mod +``` + +If your categorical variable happens to be saved in R as an ordered factor, the model results will be displayed in a format that is unnecessarily hard to interpret (R turns ordered variables into a set of contrasts and then fits a model to the contrasts). This is what has happened above. + +```{r} +class(diamonds$cut) +``` + +In all other cases, the results of modeling categorical variables are easy to interpret. If you have an ordered factor, I recommend that you change it to a regular factor before fitting your model. This will not noticeably change the output of your model, and it will free your model from a set of questionable assumptions (that the levels of the ordered factor are equidistant from each other in magnitude). + +```{r} +diamonds$cut2 <- factor(diamonds$cut, ordered = FALSE) +diamonds_mod <- lm(price ~ carat + cut2, data = diamonds) +diamonds_mod +``` + +Now the model contains a coefficient and a dummy variable for each level of the categorical variable except one. To interpret the model, treat the dummy variables as indicator variables that take the value of 1 if an observation has the associated level of cut, and 0 if the observation does not. The effect of each dummy variable is to shift the line up or down to best fit observations with the given level. + +So the model predicts that Fair cut diamonds have a price of + +$$\text{Price} = -3875 + 7871 \times \text{carat} + \epsilon$$ + +It predicts that Good cut diamonds have a price of + +$$\text{Price} = -3875 + 7871 \times \text{carat} + 1120 + \epsilon$$ + +It predicts that Very Good cut diamonds have a price of + +$$\text{Price} = -3875 + 7871 \times \text{carat} + 1510 + \epsilon$$ + +and so on. + +### Follow up questions + +Now that you can fit a linear model to your data, how can you use them to make discoveries and reveal insights? The most useful information in your model will come from the model's coefficients and the model's residuals. The residuals of the model are the distances between each observed $Y$ value and each fitted $Y$ value. You can access the residuals of your model with the `augment()` function. The are saved in the `.resid` column. + +```{r} +diamonds_fit <- augment(diamonds_mod) +head(diamonds_fit) +``` + +* *Size of coefficient* + +* *Sign of coefficient* + +* *Changes between models* + +* *Outliers in residuals* + +* *Clusters in residuals* + +* *Patterns in residuals* + +## Summary + +What can go wrong? Bias and variance. + +The structure of data, scientific laws, and the data analysis process. Segue to the rest of the book. +Using group_by and summarise to create new levels of observations From 5265fd767eba153fae9e72b61b909fe1e35496eb Mon Sep 17 00:00:00 2001 From: Garrett Date: Sat, 21 May 2016 22:14:30 -0400 Subject: [PATCH 10/22] More writing on variation. --- variation.Rmd | 334 ++++++++++++++++++++------------------------------ 1 file changed, 131 insertions(+), 203 deletions(-) diff --git a/variation.Rmd b/variation.Rmd index 90d65f3..84baf24 100644 --- a/variation.Rmd +++ b/variation.Rmd @@ -1,21 +1,20 @@ # Exploratory Data Analysis (EDA) -# Exploratory Data Analysis (EDA) - ```{r include = FALSE} library(ggplot2) library(dplyr) +library(broom) knitr::opts_chunk$set(fig.height = 2) ``` -Visualization and transformation are the most useful tools for exploring your data, a task that statisticians call Exploratory Data Analysis, or EDA for short. EDA involves iteratively +This chapter will show you how to use visualization and transformation to explore your data in a systematic way, a task that statisticians call Exploratory Data Analysis, or EDA for short. EDA involves iteratively 1. forming questions about your data 2. searching for answers by visualizing and transforming your data 3. using what you discover to refine your questions about the data, or to choose new questions to investigate -There is no formal way to do Exploratory Data Analysis because you must be free to investigate every insight that occurs to you. However, some tactics will lead reliably lead to insights. This chapter will teach you a basic toolkit of these useful EDA techniques. +There is no formal way to do Exploratory Data Analysis because you must be free to investigate every idea that occurs to you. However, some tactics will reliably lead to insights. This chapter will teach you a basic toolkit of these useful EDA techniques. Our discussion will lead to a model of data science itself, the model that I've built this book around. ## Questions @@ -23,17 +22,17 @@ There is no formal way to do Exploratory Data Analysis because you must be free > "Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise."---John Tukey -Your goal during EDA is to develop a complete understanding of your data set and the information that it contains. The easiest way to do this is to use questions as tools that guide your investigation. When you ask a question, the question focuses your attention on a specific part of your data set and helps you decide which graphs or models to make. +Your goal during EDA is to develop a complete understanding of your data set and the information that it contains. The easiest way to do this is to ask questions as tools to guide your investigation. When you ask a question, the question focuses your attention on a specific part of your data set and helps you decide which graphs or models to make. -During EDA, the _quantity_ of questions that you ask matters more than the quality of the questions. It is difficult to ask revealing questions at the start of your analysis because you do not know what insights are contained in your data set. On the other hand, each new question that you ask will expose you to a new aspect of your data and increase your chance of making a discovery. You can quickly drill down into the most interesting parts of your data---and develop a set of thought provoking questions---if you follow each question with a new question based on what you find. +During EDA, the _quantity_ of questions that you ask matters more than the quality of the questions. It is difficult to ask revealing questions at the start of your analysis because you do not know what insights are contained in your data set. On the other hand, each new question that you ask will expose you to a new aspect of your data and increase your chance of making a discovery. You can quickly drill down into the most interesting parts of your data---and develop a set of thought provoking questions---if you follow up each question with a new question based on what you find. -There is no rule about which questions you should ask to guide your research. However, two types of questions will always be useful for making discoveries within your data. You can loosely word them as +There is no rule about which questions you should ask to guide your research. However, two types of questions will always be useful for making discoveries within your data. You can loosely word these questions as 1. What type of **variation** occurs **within** my variables? and 2. What type of **covariation** occurs **between** my variables? -The rest of this chapter will look at these two questions. I'll explain what variation and covariation are, and I'll show you several ways to answer each question. Our discussion will lead to a model of data science itself, the model that I've built this book around. To make the discussion easier, let's define some terms: +The rest of this chapter will look at these two questions. I'll explain what variation and covariation are, and I'll show you several ways to answer each question. To make the discussion easier, let's define some terms: * A _variable_ is a quantity, quality, or property that you can measure. @@ -41,6 +40,8 @@ The rest of this chapter will look at these two questions. I'll explain what var * An _observation_ is a set of measurements that you make under similar conditions (you usually make all of the measurements in an observation at the same time and on the same object). An observation will contain several values, each associated with a different variable. I'll sometimes refer to an observation as a data point. +* _tabular data_ is a set of values, each associated with a variable and an observation. Tabular data is _tidy_ if each value is placed in its own "cell", each variable in its own column, and each observation in its own row. Throughout the rest of this chapter I will use the word data to mean tidy tabular data. + ## Variation > "What type of variation occurs within my variables?" @@ -54,9 +55,9 @@ mat <- as.data.frame(matrix(morley$Speed + 299000, ncol = 10)) knitr::kable(mat, caption = "*The speed of light is a universal constant, but variation due to measurement error obscures its value. In 1879, Albert Michelson measured the speed of light 100 times and observed 30 different values (in km/sec).*", col.names = rep("", ncol(mat))) ``` -Discrete and categorical variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron). +Discrete and categorical variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron at different moments). -Each variable contains its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you have observed for the variable. +Every variable has its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you have observed for the variable. ### Visualizing distributions @@ -82,7 +83,7 @@ ggplot(data = diamonds) + A histogram divides the x axis into equally spaced intervals and then uses a bar to display how many observations fall into each interval. In the graph above, the tallest bar shows that almost 30,000 observations have a $carat$ value between 0.25 and 0.75, which are the left and right edges of the bar. -You can set the width of the intervals with the `binwidth` argument of `geom_histogram()`, which is measured in the units of the $x$ axis. You should always explore a variety of binwidths when working with histograms, as different binwidths can reveal different patterns. For example, here is how the graph above looks with a binwidth of 0.01. +You can set the width of the intervals in a histogram with the `binwidth` argument, which is measured in the units of the $x$ axis. You should always explore a variety of binwidths when working with histograms, as different binwidths can reveal different patterns. For example, here is how the graph above looks with a binwidth of 0.01. ```{r message = FALSE} ggplot(data = diamonds) + @@ -91,7 +92,7 @@ ggplot(data = diamonds) + If you wish to overlay multiple histograms in the same plot, I recommend using `geom_freqpoly()` or `geom_density2d()` instead of `geom_histogram()`. `geom_freqpoly()` makes a frequency polygon, a line that connects the tops of the bars that would appear in a histogram. Like `geom_histogram()`, `geom_freqpoly()` accepts a binwidth argument. -`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a frequency polygon. You can control the smoothness of the density with `adjust`. `geom_density()` displays $density$---not $count$---on the y axis; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup, which makes it easier to compare subgroups. +`geom_density()` plots a one dimensional kernel density estimate of a variable's distribution. The result is a smooth version of the information contained in a histogram or a frequency polygon. You can control the smoothness of the density with `adjust`. `geom_density()` displays _density_---not count---on the y axis; the area under each curve will be normalized to one, no matter how many total observations occur in the subgroup, which makes it easier to compare subgroups. ```{r message = FALSE, fig.show='hold', fig.width=3} zoom <- coord_cartesian(xlim = c(55, 70)) @@ -105,9 +106,9 @@ ggplot(data = diamonds) + zoom ``` -## Follow up questions +### Asking questions about variation -Now that you can visualize variation, what should you look for in your plots? and what type of follow up questions should you ask? I've put together below a list of the most useful types of information that you will find in your graphs, along with some follow up questions for each type of information. The key to asking good follow up questions will be to rely on your **curiosity** (What do you want to learn more about?) as well as your **skepticism** (How could this be misleading?). +Now that you can visualize variation, what should you look for in your plots? and what type of follow up questions should you ask? I've put together a list below of the most useful types of information that you will find in your graphs, along with some follow up questions for each type of information. The key to asking good follow up questions will be to rely on your **curiosity** (What do you want to learn more about?) as well as your **skepticism** (How could this be misleading?). * *Typical values* @@ -117,7 +118,7 @@ Now that you can visualize variation, what should you look for in your plots? an + Which values are the most rare? Why might that be? - + Is there an unusual pattern to the frequencies? Why might that be? + + Is there an unusual pattern in the distribution? Why might that be? + Do the typical values change if you look at subgroups of the data? @@ -130,7 +131,7 @@ Now that you can visualize variation, what should you look for in your plots? an * *Range of values* - The range of values in the distribution reveals how certain you can be when you make predictions about a variable. If the variable only takes a narrow set of values, like below, you are unlikely to be far off if you make a prediction about a future observation. Even if the observation takes a value at the distant extreme of the distribution, the value will not be far from your guess. + The range of values, or spread, of the distribution reveals how certain you can be when you make predictions about a variable. If the variable only takes a narrow set of values, like below, you are unlikely to be far off if you make a prediction about a future observation. Even if the observation takes a value at the distant extreme of the distribution, the value will not be far from your guess. ```{r echo = FALSE, message = FALSE, fig.height = 2} mpg$hwy2 <- mpg$hwy / 10 + 22 @@ -143,7 +144,7 @@ Now that you can visualize variation, what should you look for in your plots? an ggplot(mpg) + geom_histogram(aes(x = hwy), binwidth = 1) + xlim(10, 45) ``` - As a quick rule, wide distributions imply less certainty when making predictions about a variable; narrow distributions imply more certainty. Ask yourself + As a quick rule, wide distributions imply less certainty when making predictions about a variable; narrow distributions imply more certainty. A distribution with only a single repeated value implies complete certainty: your variable is a constant. Ask yourself + Do your data show a surprising amount of certainty or uncertainty? Why? @@ -181,39 +182,15 @@ Now that you can visualize variation, what should you look for in your plots? an ggplot(faithful) + geom_histogram(aes(x = eruptions)) ``` -To answer many of the follow up questions above, you will need to make a new graph that shows the relationship between two or more variables and then look for: - -* *Patterns* - - Patterns in your data provide clues about relationships. If a systematic relationship exists between two variables it will appear as a pattern in the data. If you spot a pattern, ask yourself: - - + Could this pattern be due to coincidence (i.e. random chance)? - - + How can you describe the relationship implied by the pattern? - - + How strong is the relationship implied by the pattern? - - + What other variables might affect the relationship? - - + Does the relationship change if you look at individual subgroups of the data? - - A scatterplot of Old Faithful eruption lengths versus the wait time between eruptions shows a pattern: longer wait times are associated with longer eruptions. The scatterplot also reveals the two clusters that we noticed above. - - ```{r echo = FALSE, message = FALSE, fig.height = 2} - ggplot(faithful) + geom_point(aes(x = eruptions, y = waiting)) - ``` - -Questions about patterns are examples of the second general question that I proposed for EDA. Let's look at that question now. +Many of the questions above will prompt you to explore a relationship *between* variables, for example, to see if the values of one variable can explain the behavior of another variable. Questions about relationships are examples of the second general question that I proposed for EDA. Let's look at that question now. ## Covariation > "What type of covariation occurs between my variables?" -If variation describes the behavior _within_ a variable, covariation describes the behavior _between_ variables. **Covariation** is the tendency for the values of two or more variables to vary together in a correlated way. The best way to spot covariation is to visualize the relationship between two or more variables. How you do that should again depend on the type of variable. +If variation describes the behavior _within_ a variable, covariation describes the behavior _between_ variables. **Covariation** is the tendency for the values of two or more variables to vary together in a correlated way. The best way to spot covariation is to visualize the relationship between two or more variables. How you do that should again depend on the type of variables involved. -### Visualizaing covariation - -#### Two categorical variables +### Visualizing two categorical variables Visualize covariation between categorical variables with `geom_count()`. @@ -228,7 +205,7 @@ The size of each circle in the plot displays how many observations occurred at e table(diamonds$color, diamonds$cut) ``` -#### One categorical variable and one continuous variable +### Visualizing one categorical variable and one continuous variable Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution that is popular among statisticians. Each boxplot consists of: @@ -249,8 +226,6 @@ ggplot(data = mpg) + geom_boxplot(aes(x = class, y = hwy)) ``` - - Covariation will appear as a systematic change in the medians or IQR's of the boxplots. To make the trend easier to see, wrap the $x$ variable with `reorder()`. The code below reorders the x axis based on the median hwy value of each group. ```{r} @@ -275,16 +250,16 @@ ggplot(data = mpg) + ``` -#### Two continuous variables +### Vizualizing two continuous variables -Visualize covariation between two continuous variables with a scatterplot, i.e. `geom_point()`. Covariation will appear as a structure or pattern in the data points. For example, a positive trend exists between the carat size and price of a diamond. +Visualize covariation between two continuous variables with a scatterplot, i.e. `geom_point()`. Covariation will appear as a structure or pattern in the data points. For example, an exponential relationship seems to exist between the carat size and price of a diamond. ```{r} ggplot(data = diamonds) + geom_point(aes(x = carat, y = price)) ``` -Scatterplots become less useful as the size of your data set grows, because points begin to pile up into areas of uniform black. You can make patterns clear again with `geom_bin2d()`, `geom_hex()`, or `geom_density2d()`. +Scatterplots become less useful as the size of your data set grows, because points begin to pile up into areas of uniform black (as above). You can make patterns clear again with `geom_bin2d()`, `geom_hex()`, or `geom_density2d()`. `geom_bin2d()` and `geom_hex()` divide the coordinate plane into two dimensional bins and then use a fill color to display how many points fall into each bin. `geom_bin2d()` creates rectangular bins. `geom_hex()` creates hexagonal bins. You will need to install the hexbin package to use `geom_hex()`. @@ -292,6 +267,7 @@ Scatterplots become less useful as the size of your data set grows, because poin ggplot(data = diamonds) + geom_bin2d(aes(x = carat, y = price)) +# install.packages("hexbin") ggplot(data = diamonds) + geom_hex(aes(x = carat, y = price)) ``` @@ -305,26 +281,57 @@ ggplot(data = faithful, aes(x = eruptions, y = waiting)) + geom_density2d() ``` -#### Follow up questions +### Asking questions about covariation -Use the same follow up questions for plots of covariation that you sue for plots of variation. Outliers, clusters, and patterns all appear in two dimensional plots. In fact, two dimensional plots can reveal outliers and clusters that are not visible in one dimensional plots. For example, some points in the plot on the left have an unusual combination of $x$ and $y$ values, which makes them an outlier even though their $x$ and $y$ values appear normal when examined separately. +When you explore plots of covariation, look for the following sources of insight: -The two dimensional pattern in the plot on the right reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. +* *Outliers* -```{r fig.show='hold', fig.width=3, fig.height=3} -ggplot(data = diamonds) + - geom_point(aes(x = x, y = y)) + - coord_cartesian(xlim = c(3, 12), ylim = c(3, 12)) + Two dimensional plots can reveal outliers that are not visible in one dimensional plots. For example, some points in the plot below have an unusual combination of $x$ and $y$ values, which makes the points outliers even though their $x$ and $y$ values appear normal when examined separately. + + ```{r echo = FALSE} + ggplot(data = diamonds) + + geom_point(aes(x = x, y = y)) + + coord_cartesian(xlim = c(3, 12), ylim = c(3, 12)) + ``` -ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width)) + - geom_jitter() + - geom_density2d() + - geom_rug(position = "jitter") -``` -In general, outliers and clusters become easier to spot as you look at the interaction of more and more variables. However, as you include more variables in your plot, data becomes harder to visualize. +* *Clusters* -#### Three or more variables + Plots of covariation can also reveal clusters that may not be visible in plots of variation. For example, the two dimensional pattern in the plot below reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. + + ```{r echo = FALSE} + ggplot(data = iris, aes(y = Sepal.Length, x = Sepal.Width)) + + geom_jitter() + + geom_density2d(h= c(1,1)) + + geom_rug(position = "jitter") + ``` + +* *Patterns* + + Patterns in your data provide clues about relationships. If a systematic relationship exists between two variables it will appear as a pattern in the data. If you spot a pattern, ask yourself: + + + Could this pattern be due to coincidence (i.e. random chance)? + + + How can you describe the relationship implied by the pattern? + + + How strong is the relationship implied by the pattern? + + + What other variables might affect the relationship? + + + Does the relationship change if you look at individual subgroups of the data? + + A scatterplot of Old Faithful eruption lengths versus the wait time between eruptions shows a pattern: longer wait times are associated with longer eruptions. The scatterplot also reveals the two clusters that we noticed above. + + ```{r echo = FALSE, message = FALSE, fig.height = 2} + ggplot(faithful) + geom_point(aes(x = eruptions, y = waiting)) + ``` + + Patterns provide one of the most useful tools for data scientists because they reveal covariation. If you think of variation as a phenomenon that creates uncertainty, covariation is a phenomenon that reduces it. If two variables covary, you can use the values of one variable to make better predictions about the values of the second. If the covariation is due to a causal relationship (a special case), then you can use the value of one variable to control the value of the second. + +### Visualizing three or more variables + +In general, outliers, clusters, and patterns become easier to spot as you look at the interaction of more and more variables. However, as you include more variables in your plot, data becomes harder to visualize. You can extend scatterplots into three dimensions with the plotly, rgl, rglwidget, and threejs packages (among others). Each creates a "three dimensional," graph that you can rotate with your mouse. Below is an example from plotly, displayed as a static image. @@ -339,175 +346,96 @@ knitr::include_graphics("images/EDA-plotly.png") You can extend this approach into n-dimensional hyperspace with the ggobi package, but you will soon notice a weakness of multidimensional graphs. You can only visualize multidimensional space by projecting it onto your two dimensional retinas. In the case of 3D graphics, you can combine 2D projections with rotation to create an intuitive illusion of 3D space, but the illusion ceases to be intuitive as soon as you add a fourth dimension. -This doesn't mean that you should ignore complex interactions in your data. You can explore multivariate relationships in several ways. For example, you can visualize each combination of variables in the relationship, two at a time. Or you could use aesthetics and facetting to add additional variables to a 2D plot. Or you could calculate summaries that help you understand the relationship. Two types of summaries are particularly useful for EDA: summary statistics and models. +This doesn't mean that you should ignore complex interactions in your data. You can explore multivariate relationships in several ways. You can -## Summary Statistics +* visualize each combination of variables in a multivariate relationship, two at a time -You can use summary statistics to answer questions about the variation and covariation in your data. To do this, use dplyr's `summarise()` with a function that calculates summary statistics. +* use aesthetics and facetting to add additional variables to a 2D plot -```{r} -diamonds %>% - summarise(avg_price = mean(price), sd_price = sd(price)) -``` +* use a clustering algorithm to spot clusters in multivariate space -The measures of location and measures of spread listed in Chapter 3 are particularly useful for summaries; as is `cor()`, a function that calculates the correlation coefficient between two numerical variables. +* use a modeling algorithm to spot patterns and outliers in multivariate space -The correlation coefficient measures the strength of the _linear_ relationship between two variables. Correlation coefficients can range from -1 to 1. A value near -1 or 1 describes a strong relationship between two variables. A value near zero describes a weak relationship, or no relationship. A negative correlation coefficient indicates that the variables are inversely related. +## Clusters -```{r} -cor(diamonds$price, diamonds$carat) -``` - -Summary statistics provide useful information. They are easy to compare against each other and easy to use in conversation. However, I do not recommend that you use summary statistics without also using visualizations. A visualization can prompt you to notice something that you did not expect to see. A summary statistic can only provide information that you intend to see. +A clustering algorithm computes the distances between data points in n-dimensional space. It then uses an algorithm to group points into clusters based on how near or far they are from each other. ## Models -> "Essentially, all models are wrong, but some are useful."---George Box +A model is a type of summary that describes the relationships in your data. You can use a model to reveal patterns and outliers that only appear in n-dimensional space. To see how this works, consider the simple linear model below. I've fit it to a two dimensional pattern so we can visualize the results. -Models are a type of summary that describes the relationships in your data. You can use models to reveal unexpected covariation in your data or to describe relationships that you cannot easily visualize. - -It is important to keep in mind that a model is just a description of your data. In my experience, you can easily overthink models because models are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make predictions, and we will examine it in Part 4. For now, we are only going to use models as descriptions that can use to help you discover insights in your data. +```{r echo = FALSE} +diamonds2 <- filter(diamonds, x > 3, y > 3, y < 12) +diamond_mod <- lm(y ~ x, data = diamonds2) +resids <- augment(diamond_mod) +diamonds3 <- bind_rows(filter(resids, abs(.resid) > 0.5), + sample_n(filter(resids, abs(.resid) <= 0.5), 1000)) %>% + select(x, y) -The most useful type of model for explorating your data is a linear model. A **linear model** describes the value of one variable as a linear combination of the values of other variables. This means that a linear model would describe the relationship between two variables as a line (below left), the relationship between three variables as a plane (below right), and the relationship between $n$ variables as a $n - 1$ dimensional hyperplane. - -```{r, echo = FALSE} -knitr::include_graphics("images/EDA-plotly.png") -``` - -Linear models are useful because they are easy to interpret and because linear functions are a reasonable approximation to non-linear relationships over short distances (this is the basis of the taylor series approximation). You can also turn many non-linear relationships into linear relationships by transfroming the variables involved. - -You can represent a linear model with the formula - -$$Y = \alpha + \beta_{1} X_{1} + ... + \beta_{n} X_{n} + \epsilon$$ - -The first portion of the formula is the equation of the line (or plane or hyperplane) that "best" fits the data. The last variable in the formula, $\epsilon$, is an error term that has an unknown, random value. As a result, it is easy to interpret a linear model. A linear model says that when an observation has the $X$ values $x_{1}, ..., x_{n}$, it will have the $Y$ value $y$, where $y$ equals the point on the line (or plane or hyperplane) at $(x_{1}, ... x_{n})$ plus or minus some random error, $\epsilon$. - -If all of the points in your data set fall close to the model line (or plane or hyperplane) then you can assume that the random error represented by $\epsilon$ is small. If they fall far from the line (or plane or hyperplane), then you can assume that the random error is large. The algorithm that you use to fit your linear model automatically chooses the line (or plane or hyperplane) that minimizes the distance between your data points and the model line (or plane or hyperplane). Technically, it minimizes the sum squared distances between each point and the model surface. - -### Fitting a linear model - -To fit a linear model to your data, use the `lm()` function that comes with R. Then save the output to an object that you can access later. - -```{r} -faithful_mod <- lm(eruptions ~ waiting, data = faithful) -diamonds_mod <- lm(price ~ carat + cut, data = diamonds) -``` - -The first argument of `lm()` should be a formula, two or more variables separated by a `~`. You've seen formulas before, we used them in Chapter 2 to facet graphs. - -The left hand side of the formula should contain a single variable name. This will be the response variable in your model. If you think of your model as a function, the explanatory variable would be the variable on the $y$ axis. The right hand side of the formula should contain the names of the variables related to the response variable. If you think of your model as a function, these would be the variables on the $x$ axes. If you include more than one variable on the right hand side of the formula, separate their names with a `+`, e.g. `price ~ carat + cut + color + clarity`. - -The second argument of `lm` should be the name of the data set that contains the variables in the formula. - -Once you've made your model, you can see the model equation by typing the name of the model object at the command line. - -```{r} -faithful_mod -``` - -The output above shows that the linear model that best fits the Old Faithful data is - -$$\text{eruption} = -1.87 + 0.07 \time \text{waiting} + \epsilon$$ - -You can interpret the coefficient of each $X_{i}$ variable in your model as the amount of change in $Y$ that is associated with a one unit change in $X_{i}$ _when the values of any other $X$ variables in the model are held constant. - -If you like, you can return the coefficients in a data frame with the `tidy()` function in the broom package. For now, ignore the last three columns. - -```{r} -library(broom) -tidy(faithful_mod) -``` - -### Visualizing a linear model - -If your model only contains one variable, like our faithful mod, you can visualize its results with `geom_smooth()`. To do this, plot your model's $Y$ variable on the y axis, plot your model's $X$ variable on the $x$ axis, and set the method argument of `geom_smooth()` to `lm`, the name of the function that R should use to fit the model. I also like to set `se = FALSE` to remove the standard error ribbon that `geom_smooth()` displays by default. We'll look at standard errors in Part 4. - -```{r} -ggplot(data = faithful, aes(x = waiting, y = eruptions)) + +ggplot(diamonds3, aes(x = x, y = y)) + geom_point() + geom_smooth(method = lm, se = FALSE) ``` -If your model contains multiple $X$ variables, the easiest way to visualize it will be to plot the fitted (i.e predicted) values of the model against various combinations of the explanatory variables. The fitted values are the $Y$ values along the model line (or plane or hyperplane) that correspond to each observation in your data set. You can access the fitted values with broom's `augment()` function. +The model describes the relationship between x and y as -```{r} -diamonds_fit <- augment(diamonds_mod) -head(diamonds_fit) +$$\hat{y} = 0.13 + 0.98 x$$ + +which is the equation of the blue model line in the graph above. Even if we did not have the graph, we could use the model coefficients in the equation above to determine that a positive relationship exists between $y$ and $x$ such that a one unit increase in $x$ is associated with an approximately one unit increase in $y$. We could use a model statistic, such as adjusted $r^{2}$ to determine that the relationship is very strong (here adjusted $r^{2} = 0.99$). + +Finally, we could spot outliers in our data by examining the residuals of the model, which are the distances between the actual $y$ values of our data points and the $y$ values that the model would predict for the data points. Observations that are outliers in n-dimensional space will have a residual that is an outlier in one dimensional space. You can find these outliers by plotting a histogram of the residuals or by visualizing the residuals against any variable in a two dimenisonal plot. + +```{r echo = FALSE, fig.width = 3, fig.show='hold'} +diamond_mod <- lm(y ~ x, data = diamonds3) +resids <- augment(diamond_mod) + +ggplot(resids) + + geom_histogram(aes(x = .resid), binwidth = 0.1) + +ggplot(resids) + + geom_point(aes(x = x, y = .resid)) ``` -`augment()` returns a data frame that makes it easy to plot the fitted values in relation to the explanatory and response variables. +You can examine coefficients, model statistics, and residuals of a model fit to an n-dimensional relationship in the same way, without visualizing the raw data in n-dimensional space. + +I'll postpone teaching you how to fit and interpret models with R until Part 4. Altough models are something simple, a description of your data set, they are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make inferences and predictions. You'll be able to do more with models if you learn a few more skills before you begin to model data. + +## A last word on variables and observations + +Variables, observations, and visualization + +Every data set contains more information than it displays. You can use the values in your data to calculate new variables, as well as new, group-level, observations. This section will show you how to calculate new variables and observations, which you can use in visualizations, clustering algorithms, and modeling algorithms. + +### Making new variables + +Use dplyr's `mutate()` function to calculate mew variables from your existing variables. ```{r} -ggplot(data = diamonds_fit, aes(x = carat, y = price, color = cut)) + - geom_point(alpha = 0.1) + - geom_line(aes(y = .fitted)) + - theme_bw() +diamonds %>% + mutate(volume = x * y * z) %>% + head() ``` -### Modeling categorical variables +The window functions from Chapter 3 are particularly useful for calculating new variables. To calculate a variable from two or more variables, use basic operators or the `map2()`, `map3()`, and `map_n()` functions from purr. You will learn more about purrr in Chapter ?. -If you add a categorical variable to your model, like `diamonds$cut`, R will fit a separate line for each level of the variable, as you see above. It will also add each level of the variable, except one, to the model formula, e.g. +### Making new observations + +If your data set contains subgroups, you can derive a new data set from it of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level values. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. ```{r} -diamonds_mod +mpg %>% + group_by(class) %>% + summarise(n_obs = n(), avg_hwy = mean(hwy), sd_hwy = sd(hwy)) ``` -If your categorical variable happens to be saved in R as an ordered factor, the model results will be displayed in a format that is unnecessarily hard to interpret (R turns ordered variables into a set of contrasts and then fits a model to the contrasts). This is what has happened above. - -```{r} -class(diamonds$cut) -``` - -In all other cases, the results of modeling categorical variables are easy to interpret. If you have an ordered factor, I recommend that you change it to a regular factor before fitting your model. This will not noticeably change the output of your model, and it will free your model from a set of questionable assumptions (that the levels of the ordered factor are equidistant from each other in magnitude). - -```{r} -diamonds$cut2 <- factor(diamonds$cut, ordered = FALSE) -diamonds_mod <- lm(price ~ carat + cut2, data = diamonds) -diamonds_mod -``` - -Now the model contains a coefficient and a dummy variable for each level of the categorical variable except one. To interpret the model, treat the dummy variables as indicator variables that take the value of 1 if an observation has the associated level of cut, and 0 if the observation does not. The effect of each dummy variable is to shift the line up or down to best fit observations with the given level. - -So the model predicts that Fair cut diamonds have a price of - -$$\text{Price} = -3875 + 7871 \times \text{carat} + \epsilon$$ - -It predicts that Good cut diamonds have a price of - -$$\text{Price} = -3875 + 7871 \times \text{carat} + 1120 + \epsilon$$ - -It predicts that Very Good cut diamonds have a price of - -$$\text{Price} = -3875 + 7871 \times \text{carat} + 1510 + \epsilon$$ - -and so on. - -### Follow up questions - -Now that you can fit a linear model to your data, how can you use them to make discoveries and reveal insights? The most useful information in your model will come from the model's coefficients and the model's residuals. The residuals of the model are the distances between each observed $Y$ value and each fitted $Y$ value. You can access the residuals of your model with the `augment()` function. The are saved in the `.resid` column. - -```{r} -diamonds_fit <- augment(diamonds_mod) -head(diamonds_fit) -``` - -* *Size of coefficient* - -* *Sign of coefficient* - -* *Changes between models* - -* *Outliers in residuals* - -* *Clusters in residuals* - -* *Patterns in residuals* +Group level observations and group geoms ## Summary -What can go wrong? Bias and variance. +Data is difficult to comprehend, which means that you need to visualize, model, and transform it. -The structure of data, scientific laws, and the data analysis process. Segue to the rest of the book. +Once you comprehend the information in your data, you can make inferences from your data. +But all of this will involve a computer. To make head way, you will need to know how to program in a computer language (R), import data to use with that language, and tidy the data into the format that works best for that language. -Using group_by and summarise to create new levels of observations +When you are finished you will want to report and reproduce your results. From 2a1f6b7e5c6f577b79b4e69d16d7ad779d3c846e Mon Sep 17 00:00:00 2001 From: Garrett Date: Sun, 22 May 2016 13:35:52 -0400 Subject: [PATCH 11/22] Adds clusters to variation chapter. --- variation.Rmd | 123 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 2 deletions(-) diff --git a/variation.Rmd b/variation.Rmd index 84baf24..7e737ba 100644 --- a/variation.Rmd +++ b/variation.Rmd @@ -1,3 +1,7 @@ +--- +output: html_document +--- + # Exploratory Data Analysis (EDA) ```{r include = FALSE} @@ -358,7 +362,119 @@ This doesn't mean that you should ignore complex interactions in your data. You ## Clusters -A clustering algorithm computes the distances between data points in n-dimensional space. It then uses an algorithm to group points into clusters based on how near or far they are from each other. +A clustering algorithm computes the distances between data points in n-dimensional space. It then uses an algorithm to group points into clusters based on how near or far they are from each other. Base R provides two easy to use clustering algrotihms: heirarchical clustering and k means clustering. + +### Heirarchical clustering + +The heirarchical clustering algorithm groups points together based on how near they are to each other in n-dimensional space. The algorithm proceeds in stages until every point has been grouped into a single cluster, the data set. You can visualize the results of the algorithm as a dendrogram, and you can use the dendrogram to divide your data into any number of clusters. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-plotly.png") +``` + +You can only apply heirarchical clustering to numeric data, so begin by selecting the numeric columns from your data set. Then apply the `dist()` function to the data and pass the results to `hcust()`. `dist()` computes the distances between your points in the n dimensional space defined by your numeric vectors. `hclust()` performs the clustering algorithm. + +```{r} +iris_hclust <- iris %>% + select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% + dist() %>% + hclust(method = "complete") +``` + +Use `plot()` to visualize the results as a dendrogram. Each observation in the data set will appear at the bottom of the dendrogram labeled by its rowname. You can use the labels argument to set the labels to something more informative. + +```{r fig.height = 4} +plot(iris_hclust, labels = iris$Species) +``` + +To see how near two data points are to each other, trace the paths of the data points up through the tree until they intersect. The y value of the intersection displays how far apart the points are in n-dimensional space. Points that are close to each other will intersect at a small y value, points that are far from each other will intersect at a large y value. Groups of points that are near each other will look like "leaves" that all grow on the same "branch." + +The ordering of the x axis in the dendrogram is somewhat arbitrary (think of the tree as a mobile, each horizontal branch can spin around meaninglessly). + +Use the `identify()` function to easily see easily which group of points are downstream from a branch. `identify()` will plot the dendrogram in an interactive format. When you click on a branch, R will draw a red rectangle around the downstream points. Clikc escape when you are finished. + +```{r eval = FALSE} +identify(iris_hclust) +``` + +You can split your data into any number of clusters by drawing a horizontal line across the tree. Each vertical branch that the line crosses will represent a cluster that contains all of the points downstream from the branch. Move the line up the y axis to intersect fewer branches (and create fewer clusters), move the line down the y axis to intersect more branches and (create more clusters). + +`cutree()` provides a useful way to split data points into clusters. Give cutree the output of `hclust()` as well as the number of clusters that you want to split the data into. `cutree()` will return a vector of cluster labels for your data set. To visualize the results, map the output of `cutree()` to an aesthetic. + +```{r} +(clusters <- cutree(iris_hclust, 3)) + +ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length)) + + geom_point(aes(color = factor(clusters), shape = Species)) +``` + +You can modify the heirarchical clustering algorithm by setting the method argument of hclust to one of "complete", "single", "average", or "centroid". The method determines how to measure the distance between two clusters or a lone point and a cluster, a measurement that effects the outcome of the algorithm. + +* *complete* - Measures the greatest distance between any two points. Tends to create distinct clusters and subclusters. + +* *single* - Measures the smallest distance between any two points in the clusters. Tends to add points one at a time to existing clusters, creating ambiguously defined clusters. + +* *average* - Measures the average distance between all combinations of points in the separate clusters. Tends to add points one at a time to existing clusters. + +* *centroid* - Measures the distance between the average location of the points in each cluster. + + +```{r fig.height = 4} +iris %>% + select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% + dist() %>% + hclust(method = "single") %>% + plot(labels = iris$Species) +``` + + +### K means clustering + +K means clustering provides a simulation based alternative to heirarchical clustering. It identifies the "best" way to group your data into a predefined number of clusters. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-plotly.png") +``` + +Use `kmeans()` to perform k means clustering with R. As with heirarchical clustering, you can only apply k means clustering to numerical data. Pass your numerical data to the `kmeans()` function, then set `center` to the number of clusters to search for ($k$) and `nstart` to the number of simulations to run. Since the results of k means clustering depend on the initial assignment of points to groups, which is random, R will run `nstart` k means simulations and then return the best results (as measured by the minimum sum of squared distances between each point and the centroid of the group it is assigned to). + +Finally, set the maximum number of iterations to let each simulation run in case the simulation cannot quickly find a stable grouping. + +```{r} +iris_kmeans <- iris %>% + select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% + kmeans(centers = 3, nstart = 20, iter.max = 50) + +iris_kmeans$cluster +``` + +Unlike `hclust()` the k means algorithm does not porvide an intuitive visualize interface. Instead, `kmeans()` returns a kmeans class object. Subset the object with `$cluster` to access list of cluster assignments for your data set, like `cutree()`, e.g. `iris_kmeans$cluster`. You can visualize the results by mapping them to an aesthetic, or you can apply the results by passing them to dplyr's `group_by()` function. + +```{r} +ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length)) + + geom_point(aes(color = factor(iris_kmeans$cluster), shape = Species)) + +iris %>% + group_by(iris_kmeans$cluster) %>% + summarise(n_obs = n(), avg_width = mean(Sepal.Width), avg_length = mean(Sepal.Length)) +``` + + +### Asking questions about clustering + +Both algorithms _will always_ return a set of clusters, whether your data appears clustered or not. As a result, you should always be skeptical about clustering algorithms. Ask yourself: + +* Do the clusters seem to identify real differences between your points? How can you tell? + +* Are the points within each cluster similar in some way? + +* Are the points in separate clusters different in some way? + +* Might there be a mismatch between the number of clusters that you found and the number that exist in real life? Are only a couple of the clusters meaningful? Are there more clusters in the data than you found? + +* How stable are the clusters if you re-run the algorithm? + +Remember to use the results of clustering as a tool for exploration. They can be quite insightful, but there is no reason to treat them as a fact without doing further research. ## Models @@ -408,7 +524,7 @@ Every data set contains more information than it displays. You can use the value ### Making new variables -Use dplyr's `mutate()` function to calculate mew variables from your existing variables. +Use dplyr's `mutate()` function to calculate new variables from your existing variables. ```{r} diamonds %>% @@ -418,6 +534,9 @@ diamonds %>% The window functions from Chapter 3 are particularly useful for calculating new variables. To calculate a variable from two or more variables, use basic operators or the `map2()`, `map3()`, and `map_n()` functions from purr. You will learn more about purrr in Chapter ?. + +PCA and PFA + ### Making new observations If your data set contains subgroups, you can derive a new data set from it of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level values. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. From 5b046924ef11fcfab32d638a19d757682e670be2 Mon Sep 17 00:00:00 2001 From: Julia Stewart Lowndes Date: Sun, 22 May 2016 11:45:14 -0700 Subject: [PATCH 12/22] fix 2 tiny typos --- visualize.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/visualize.Rmd b/visualize.Rmd index f8c2309..d2004ca 100644 --- a/visualize.Rmd +++ b/visualize.Rmd @@ -493,7 +493,7 @@ You can learn which stat a geom uses, as well as what variables it computes by v Stats are the most subtle part of plotting because you do not see them in action. `ggplot2` applies the transformation and stores the results behind the scenes. You only see the finished plot. Moreover, `ggplot2` applies stats automatically, with a very intuitive set of defaults. As a result, you rarely need to adjust a geom's stat. However, you can do three things with a geom's stat if you wish to. -First, you can change the stat that the geom uses with the geom's stat argument. In the code below, I change the stat of `geom_bar()` from count (the default) to identity. This let's me map the height of the bars to the raw values of a $y$ variable. +First, you can change the stat that the geom uses with the geom's stat argument. In the code below, I change the stat of `geom_bar()` from count (the default) to identity. This lets me map the height of the bars to the raw values of a $y$ variable. ```{r} demo <- data.frame( @@ -507,7 +507,7 @@ ggplot(data = demo) + demo ``` -I provide a list of the stats that are availalbe to use in ggplot2 at the end of this section. Be careful when you change a geom's stat. Many combinations of geoms and stats will create incompatible results. In practice, you will almost always use a geom's default stat. +I provide a list of the stats that are available to use in ggplot2 at the end of this section. Be careful when you change a geom's stat. Many combinations of geoms and stats will create incompatible results. In practice, you will almost always use a geom's default stat. Second, you can give some stats arguments by passing the arguments to your geom function. In the code below, I pass a width argument to the count stat, which controls the widths of the bars. `width = 1` will make the bars wide enough to touch each other. From 718341a2fc7567778e2952c48394adca30e59a79 Mon Sep 17 00:00:00 2001 From: Garrett Date: Sun, 22 May 2016 21:31:00 -0400 Subject: [PATCH 13/22] Completes draft of variation/EDA chapter. --- images/EDA-data-science-1.png | Bin 0 -> 20691 bytes images/EDA-data-science-2.png | Bin 0 -> 21870 bytes images/EDA-data-science-3.png | Bin 0 -> 30939 bytes images/EDA-data-science-4.png | Bin 0 -> 37627 bytes images/EDA-data-science-5.png | Bin 0 -> 61899 bytes variation.Rmd | 67 +++++++++++++++++++++++++--------- 6 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 images/EDA-data-science-1.png create mode 100644 images/EDA-data-science-2.png create mode 100644 images/EDA-data-science-3.png create mode 100644 images/EDA-data-science-4.png create mode 100644 images/EDA-data-science-5.png diff --git a/images/EDA-data-science-1.png b/images/EDA-data-science-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f19a22268dac6714358962d578735eb6a9c0d402 GIT binary patch literal 20691 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 literal 0 HcmV?d00001 diff --git a/images/EDA-data-science-3.png b/images/EDA-data-science-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5719a833a23e18c825ec500ead9e99ab61b42ac2 GIT binary patch literal 30939 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 literal 0 HcmV?d00001 diff --git a/images/EDA-data-science-4.png b/images/EDA-data-science-4.png new file mode 100644 index 0000000000000000000000000000000000000000..6c776f77cf79cb1f60594a54ec6122b720d0205b GIT binary patch literal 37627 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 literal 0 HcmV?d00001 diff --git a/images/EDA-data-science-5.png b/images/EDA-data-science-5.png new file mode 100644 index 0000000000000000000000000000000000000000..db2f98ff638229fd961d50c87f7e71a02352ec68 GIT binary patch literal 61899 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 literal 0 HcmV?d00001 diff --git a/variation.Rmd b/variation.Rmd index 7e737ba..458e739 100644 --- a/variation.Rmd +++ b/variation.Rmd @@ -1,7 +1,3 @@ ---- -output: html_document ---- - # Exploratory Data Analysis (EDA) ```{r include = FALSE} @@ -516,11 +512,9 @@ You can examine coefficients, model statistics, and residuals of a model fit to I'll postpone teaching you how to fit and interpret models with R until Part 4. Altough models are something simple, a description of your data set, they are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make inferences and predictions. You'll be able to do more with models if you learn a few more skills before you begin to model data. -## A last word on variables and observations +## Exploring further -Variables, observations, and visualization - -Every data set contains more information than it displays. You can use the values in your data to calculate new variables, as well as new, group-level, observations. This section will show you how to calculate new variables and observations, which you can use in visualizations, clustering algorithms, and modeling algorithms. +Every data set contains more variables and observations than it displays. You can use the values in your data to compute new variables or to measure new new, group-level observations on subgroups of your data. These new variables and observations provide a further source of insights that you can explore with visualizations, clustering algorithms, and models. ### Making new variables @@ -534,12 +528,11 @@ diamonds %>% The window functions from Chapter 3 are particularly useful for calculating new variables. To calculate a variable from two or more variables, use basic operators or the `map2()`, `map3()`, and `map_n()` functions from purr. You will learn more about purrr in Chapter ?. - -PCA and PFA +Statisticians can use R to extract potential variables with more sophisticated algorithms. R provides `prcomp()` for Principle Components Analysis and `factanal()` for factor analysis. The psych and SEM packages also provide further tools for working with latent variables. ### Making new observations -If your data set contains subgroups, you can derive a new data set from it of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level values. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. +If your data set contains subgroups, you can derive from your data a new data set of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level values. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. ```{r} mpg %>% @@ -547,14 +540,54 @@ mpg %>% summarise(n_obs = n(), avg_hwy = mean(hwy), sd_hwy = sd(hwy)) ``` -Group level observations and group geoms +## A last word on variables, values, and observations -## Summary +Variables, values, and observations provide a basis for Exploratory Data Analysis: if a relationship exists between two variables, then the relationship will exist between the values of those variables when those values are measured in the same observation. As a result, relationships between variables will appear as patterns in your data. -Data is difficult to comprehend, which means that you need to visualize, model, and transform it. +Within any particular observation, the exact form of the relationship between values may be obscured by mediating factors, measurement error, or random noise; which means the patterns in your data will appear as signals obscured by noise. -Once you comprehend the information in your data, you can make inferences from your data. +Due to a quirk of the human cognitive system, the easiest way to spot the signal admidst the noise is to visualize your data. The concepts of variables, values, and observations make this easy to do. To visualize your data, represent each observation with its own geometric object, such as a point. Then map each variable to an aesthetic property of the point, setting specific values of the variable to specific levels of the aesthetic. Or compute group-level statistics (i.e. observations) and map them to geoms, something that `geom_bar()`, `geom_boxplot()` and other geoms do for you automatically. -But all of this will involve a computer. To make head way, you will need to know how to program in a computer language (R), import data to use with that language, and tidy the data into the format that works best for that language. +## Exploratory Data Analysis and Data Science -When you are finished you will want to report and reproduce your results. +As a term, data science has been used in many ways by different people. This fluidity is necessary for a term that describes a wide breadth of activity, as data science does. Although different data science activities will take different forms, you can use the principles in this chapter to build a general model of data science. The model requires one limit to the definition of data science: data science must rely in some way on human judgement and expertise. + +To judge or interpret the information in a data set, you must first comprehend that information. Data is difficult to comprehend, which means that you need to visualize, model, and transform it, a process that we have referred to as Exploratory Data Analysis. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-data-science-1.png") +``` + +Once you comprehend the information in your data, you can use it to make inferences from your data. Often this involves making deductions from a model. This is what you do when you conduct a hypothesis test, make a prediction (wth or without a confidence interval), or score cases in a database. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-data-science-2.png") +``` + +But all of this will involve a computer; you can make little headway with pencil and paper calculations when you work with data. To work efficiently, you will need to know how to program in a computer language, such as R, import data to use with that language, and tidy the data into the format that works best for that language. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-data-science-3.png") +``` + +Finally, if your work is meaningful at all you will need to report it in a way that your audience can understand. Your audience might be fellow scientists who will want to ensure that the work is reproducible, non-scientists who will need to understand your findings in plain language, or future you who will be thankful if you make it easy to come back up to speed on your work and recreate it as necessary. To satisfy these audiences, you may choose to communicate your results in a report or to bundle your work into some type of useful format, like a package or a Shiny app. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-data-science-4.png") +``` + +This model forms a roadmap for the rest of the book. + +* Part 1 of the book covered the central tasks of the model above, Exploratory Data Analysis. + +* Part 2 will cover the logistical tasks of working with data in a computer language: importing and tidying the data, skills I call Data Wrangling. + +* Part 3 will teach you some of the most efficient ways to program in R with data. + +* Part 4 discusses models and how to apply them. + +* Part 5 will teach you the most popular format for reporting and reproducing the results of an R analysis. + +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-data-science-5.png") +``` From 16e948f487f6258d0d9d5d7f49543daaacfd7cfb Mon Sep 17 00:00:00 2001 From: jjchern Date: Mon, 23 May 2016 18:25:38 -0500 Subject: [PATCH 14/22] Fix a type --- wrangle.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrangle.Rmd b/wrangle.Rmd index 4df5bed..732fb73 100644 --- a/wrangle.Rmd +++ b/wrangle.Rmd @@ -4,7 +4,7 @@ With data, the relationships between values matter as much as the values themselves. Tidy data encodes those relationships. -Throughout this book we work with "tibbles" instead of the traditional data frame. Tibbles _are_ data frames but they encode some patterns that make modern usage of R better. Unfortunately R is an old language, and things that made sense 10 or 20 years a go are no longer as valid. It's difficult to change base R without breaking existing code, so most innovation occurs in packages, providing new functions that you should use instead of the old ones. +Throughout this book we work with "tibbles" instead of the traditional data frame. Tibbles _are_ data frames but they encode some patterns that make modern usage of R better. Unfortunately R is an old language, and things that made sense 10 or 20 years ago are no longer as valid. It's difficult to change base R without breaking existing code, so most innovation occurs in packages, providing new functions that you should use instead of the old ones. ```{r} library(tibble) From 74c27cfd2a7539316bcbb9ab80306716b4181580 Mon Sep 17 00:00:00 2001 From: jjchern Date: Mon, 23 May 2016 18:30:53 -0500 Subject: [PATCH 15/22] "vs" should be "vs." --- wrangle.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrangle.Rmd b/wrangle.Rmd index 732fb73..2327a5f 100644 --- a/wrangle.Rmd +++ b/wrangle.Rmd @@ -38,7 +38,7 @@ frame_data( ) ``` -## Tibbles vs data frames +## Tibbles vs. data frames There are two main differences in the usage of a data frame vs a tibble: printing, and subsetting. From a43a2e82dc598f158b4857bc26e3abd0874934d4 Mon Sep 17 00:00:00 2001 From: jjchern Date: Mon, 23 May 2016 18:33:30 -0500 Subject: [PATCH 16/22] "vs" should be "vs." --- transform.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transform.Rmd b/transform.Rmd index 2441de5..d77fbbc 100644 --- a/transform.Rmd +++ b/transform.Rmd @@ -681,7 +681,7 @@ ggplot(delays, aes(n, delay)) + geom_point() ``` -Not suprisingly, there is much more variation in the average delay when there are few flights. The shape of this plot is very characteristic: whenever you plot a mean (or many other summaries) vs number of observations, you'll see that the variation decreases as the sample size increases. +Not suprisingly, there is much more variation in the average delay when there are few flights. The shape of this plot is very characteristic: whenever you plot a mean (or many other summaries) vs. number of observations, you'll see that the variation decreases as the sample size increases. When looking at this sort of plot, it's often useful to filter out the groups with the smallest numbers of observations, so you can see more of the pattern and less of the extreme variation in the smallest groups. This is what the following code does, and also shows you a handy pattern for integrating ggplot2 into dplyr flows. It's a bit painful that you have to switch from `%>%` to `+`, but once you get the hang of it, it's quite convenient. From 0eb06e7b7475708977780c02f6f094fcf381bc2d Mon Sep 17 00:00:00 2001 From: jjchern Date: Mon, 23 May 2016 18:35:41 -0500 Subject: [PATCH 17/22] "vs" should be "vs." --- iteration.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iteration.Rmd b/iteration.Rmd index 92609a2..a9eb8c1 100644 --- a/iteration.Rmd +++ b/iteration.Rmd @@ -375,7 +375,7 @@ I mention while loops briefly, because I hardly ever use them. They're most ofte } ``` -## For loops vs functionals +## For loops vs. functionals For loops are not as important in R as they are in other languages because R is a functional programming language. This means that it's possible to wrap up for loops in a function, and call that function instead of using the for loop directly. From ffdf38d2bf06005180ee3526e0e83af76df0c5dc Mon Sep 17 00:00:00 2001 From: jjchern Date: Mon, 23 May 2016 18:37:05 -0500 Subject: [PATCH 18/22] "vs" should be "vs." --- strings.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings.Rmd b/strings.Rmd index 33443a4..fd8c60a 100644 --- a/strings.Rmd +++ b/strings.Rmd @@ -815,7 +815,7 @@ There are a few other functions in base R that accept regular expressions: stringr is built on top of the __stringi__ package. stringr is useful when you're learning because it exposes a minimal set of functions, that have been carefully picked to handle the most common string manipulation functions. stringi on the other hand is designed to be comprehensive. It contains almost every function you might ever need. stringi has `r length(ls(getNamespace("stringi")))` functions to stringr's `r length(ls("package:stringr"))`. -So if you find yourself struggling to do something that doesn't seem natural in stringr, it's worth taking a look at stringi. The use of the two packages is very similar because stringr was designed to mimic stringi's interface. The main difference is the prefix: `str_` vs `stri_`. +So if you find yourself struggling to do something that doesn't seem natural in stringr, it's worth taking a look at stringi. The use of the two packages is very similar because stringr was designed to mimic stringi's interface. The main difference is the prefix: `str_` vs. `stri_`. ### Encoding From a9eb6566db8a9a7b56e5d11b8a46a454db71bbc7 Mon Sep 17 00:00:00 2001 From: hadley Date: Thu, 26 May 2016 09:43:22 -0500 Subject: [PATCH 19/22] Minor tweaks --- model-vis.Rmd | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/model-vis.Rmd b/model-vis.Rmd index 759a7e8..7e83d59 100644 --- a/model-vis.Rmd +++ b/model-vis.Rmd @@ -321,6 +321,8 @@ grid %>% ## Generating prediction grids +Now that you're learned the basics of generating prediction grids with `expand()`, we need to go into a few more details to cover other types of data you might come across. In each of the following sections, I'll explore in more detail one type of data along with the expansion and visualisation techniques you'll need to understand it. + ### Continuous variables When you have a continuous variable in the model, rather than using the unique values that you've seen, it's often more useful to generate an evenly spaced grid. One convenient way to do this is with `modelr::seq_range()` which takes a continuous variable, calculates its range, and then generates an evenly spaced points between the minimum and maximum. @@ -507,6 +509,8 @@ To help avoid this problem, it's good practice to include "nearby" observed data One way to do this is to use `condvis::visualweight()`. + + ### Exercises 1. In the use of `rlm` with `poly()`, the model didn't converge. Carefully @@ -545,3 +549,4 @@ delays %>% geom_smooth(se = F) ``` + From add27b771f7f786f647615d24c87f89d7721e8ae Mon Sep 17 00:00:00 2001 From: hadley Date: Thu, 26 May 2016 09:52:02 -0500 Subject: [PATCH 20/22] Install modelr from github --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index cc6964e..d4321ea 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -35,6 +35,7 @@ Imports: Remotes: gaborcsardi/rcorpora, garrettgman/DSR, + hadley/modelr, hadley/purrr, hadley/stringr, hadley/ggplot2, From 7dfd6cfa90ff0532df0dc86c53257359a5c0f43b Mon Sep 17 00:00:00 2001 From: Garrett Date: Thu, 26 May 2016 11:45:36 -0400 Subject: [PATCH 21/22] Finishes draft of variation/EDA. Adds cluster algorithm figures. --- images/EDA-boxplot.pdf | Bin 26596 -> 49117 bytes images/EDA-hclust.pdf | Bin 0 -> 104672 bytes images/EDA-kmeans.pdf | Bin 0 -> 46795 bytes images/EDA-linkage.pdf | Bin 0 -> 37116 bytes variation.Rmd | 155 ++++++++++++++++++++++------------------- 5 files changed, 85 insertions(+), 70 deletions(-) create mode 100644 images/EDA-hclust.pdf create mode 100644 images/EDA-kmeans.pdf create mode 100644 images/EDA-linkage.pdf diff --git a/images/EDA-boxplot.pdf b/images/EDA-boxplot.pdf index 3cea237c9fa347c834600c4a515b2ed393cb52ae..b2ec98e652d25c4966224c73aa6e1ffc83f1339a 100644 GIT binary patch literal 49117 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%0A-J=ZQR0csKV$HZV3e0@yb`_WN+ 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%0D#I``lLFMxw2WP$N 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 delta 23476 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 Yr@6c5&o=-Bg$W8^v#_Acs>@;j4^cyvI{*Lx diff --git a/images/EDA-hclust.pdf b/images/EDA-hclust.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c19149075d6b1b7194aa7be101fa5ccf57890228 GIT binary patch literal 104672 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 ube`p9uC&w@l#gs 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 y0A5ZePCWw-ZNS{>>Fem|>Fe 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 "Far better an approximate answer to the right question, which is often vague, than an exact answer to the wrong question, which can always be made precise."---John Tukey -Your goal during EDA is to develop a complete understanding of your data set and the information that it contains. The easiest way to do this is to ask questions as tools to guide your investigation. When you ask a question, the question focuses your attention on a specific part of your data set and helps you decide which graphs or models to make. +Your goal during EDA is to develop a complete understanding of your data set and the information that it contains. The easiest way to do this is to use questions as tools to guide your investigation. When you ask a question, the question focuses your attention on a specific part of your data set and helps you decide which graphs or models to make. During EDA, the _quantity_ of questions that you ask matters more than the quality of the questions. It is difficult to ask revealing questions at the start of your analysis because you do not know what insights are contained in your data set. On the other hand, each new question that you ask will expose you to a new aspect of your data and increase your chance of making a discovery. You can quickly drill down into the most interesting parts of your data---and develop a set of thought provoking questions---if you follow up each question with a new question based on what you find. @@ -40,7 +40,11 @@ The rest of this chapter will look at these two questions. I'll explain what var * An _observation_ is a set of measurements that you make under similar conditions (you usually make all of the measurements in an observation at the same time and on the same object). An observation will contain several values, each associated with a different variable. I'll sometimes refer to an observation as a data point. -* _tabular data_ is a set of values, each associated with a variable and an observation. Tabular data is _tidy_ if each value is placed in its own "cell", each variable in its own column, and each observation in its own row. Throughout the rest of this chapter I will use the word data to mean tidy tabular data. +* _tabular data_ is a set of values, each associated with a variable and an observation. Tabular data is _tidy_ if each value is placed in its own "cell", each variable in its own column, and each observation in its own row. + + Throughout the rest of this chapter I will use the word data to mean tidy tabular data. Other types of "unstructured" data exist, but you would not use the methods in this chapter on unstructured data until you first reorganized the unstructured data into tidy tabular data. + + ## Variation @@ -57,7 +61,7 @@ knitr::kable(mat, caption = "*The speed of light is a universal constant, but va Discrete and categorical variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron at different moments). -Every variable has its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you have observed for the variable. +Every variable has its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you observe for the variable. ### Visualizing distributions @@ -68,7 +72,7 @@ ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut)) ``` -The height of the bars displays how many observations occurred at each x value. You can compute these values manually with `table()`. +The height of the bars displays how many observations occurred with each x value. You can compute these values manually with `table()`. ```{r} table(diamonds$cut) @@ -108,7 +112,7 @@ ggplot(data = diamonds) + ### Asking questions about variation -Now that you can visualize variation, what should you look for in your plots? and what type of follow up questions should you ask? I've put together a list below of the most useful types of information that you will find in your graphs, along with some follow up questions for each type of information. The key to asking good follow up questions will be to rely on your **curiosity** (What do you want to learn more about?) as well as your **skepticism** (How could this be misleading?). +Now that you can visualize variation, what should you look for in your plots? And what type of follow up questions should you ask? I've put together a list below of the most useful types of information that you will find in your graphs, along with some follow up questions for each type of information. The key to asking good follow up questions will be to rely on your **curiosity** (What do you want to learn more about?) as well as your **skepticism** (How could this be misleading?). * *Typical values* @@ -207,11 +211,11 @@ table(diamonds$color, diamonds$cut) ### Visualizing one categorical variable and one continuous variable -Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution that is popular among statisticians. Each boxplot consists of: +Visualize covariation between continuous and categorical variables with boxplots. A **boxplot** is a type of visual shorthand for a distribution of values that is popular among statisticians. Each boxplot consists of: -* A box that stretches from the 25th percentile of the distribution to the 75th percentile, a distance known as the Inter-Quartile Range (IQR). In the middle of the box is a line that displays the median, i.e. 50th percentile, of the distribution. These three lines give you a sense of the spread of the distribution and whether or not it is symmetric about the median or skewed to one side. +* A box that stretches from the 25th percentile of the distribution to the 75th percentile, a distance known as the Inter-Quartile Range (IQR). In the middle of the box is a line that displays the median, i.e. 50th percentile, of the distribution. These three lines give you a sense of the spread of the distribution and whether or not the distribution is symmetric about the median or skewed to one side. -* Points that display observations that fall more than 1.5 times the IQR from either edge of the box. These outlying points have a strong chance of being outliers, so they are included in the boxplot for inspection. +* Visual points that display observations that fall more than 1.5 times the IQR from either edge of the box. These outlying points have a strong chance of being outliers, so they are included in the boxplot for inspection. * A line (or whisker) that extends from each end of the box and goes to the farthest non-outlier point in the distribution. @@ -221,19 +225,19 @@ knitr::include_graphics("images/EDA-boxplot.pdf") The chart below shows several boxplots, one for each level of the class variable in the mpg data set. Each boxplot represents the distribution of hwy values for points with the given level of class. To make boxplots, use `geom_boxplot()`. -```{r} +```{r fig.height = 3} ggplot(data = mpg) + geom_boxplot(aes(x = class, y = hwy)) ``` Covariation will appear as a systematic change in the medians or IQR's of the boxplots. To make the trend easier to see, wrap the $x$ variable with `reorder()`. The code below reorders the x axis based on the median hwy value of each group. -```{r} +```{r fig.height = 3} ggplot(data = mpg) + geom_boxplot(aes(x = reorder(class, hwy, FUN = median), y = hwy)) ``` -`geom_boxplot()` works best when the categorical variable is on the x axis. You can invert the axes with `coord_flip()`. +`geom_boxplot()` works best when the categorical variable is mapped to the x aesthetic. You can invert the axes with `coord_flip()`. ```{r} ggplot(data = mpg) + @@ -272,7 +276,7 @@ ggplot(data = diamonds) + geom_hex(aes(x = carat, y = price)) ``` -`geom_density2d()` fits a 2D kernel density estimation to the data and then uses contour lines to highlight areas of high density. It is very useful for overlaying on raw data when your data set is not big. +`geom_density2d()` fits a 2D kernel density estimation to the data and then uses contour lines to highlight areas of high density. It is very useful for overlaying on raw data even when your data set is not big. ```{r} @@ -287,7 +291,7 @@ When you explore plots of covariation, look for the following sources of insight * *Outliers* - Two dimensional plots can reveal outliers that are not visible in one dimensional plots. For example, some points in the plot below have an unusual combination of $x$ and $y$ values, which makes the points outliers even though their $x$ and $y$ values appear normal when examined separately. + Two dimensional plots reveal outliers that are not visible in one dimensional plots. For example, some points in the plot below have an unusual combination of $x$ and $y$ values, which makes the points outliers even though their $x$ and $y$ values appear normal when examined separately. ```{r echo = FALSE} ggplot(data = diamonds) + @@ -298,9 +302,9 @@ When you explore plots of covariation, look for the following sources of insight * *Clusters* - Plots of covariation can also reveal clusters that may not be visible in plots of variation. For example, the two dimensional pattern in the plot below reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. + Two dimensional plots can also reveal clusters that may not be visible in one dimensional plots. For example, the two dimensional pattern in the plot below reveals two clusters, a separation that is not visible in the distribution of either variable by itself, as verified with a rug geom. - ```{r echo = FALSE} + ```{r echo = FALSE, fig.height = 3} ggplot(data = iris, aes(y = Sepal.Length, x = Sepal.Width)) + geom_jitter() + geom_density2d(h= c(1,1)) + @@ -321,7 +325,7 @@ When you explore plots of covariation, look for the following sources of insight + Does the relationship change if you look at individual subgroups of the data? - A scatterplot of Old Faithful eruption lengths versus the wait time between eruptions shows a pattern: longer wait times are associated with longer eruptions. The scatterplot also reveals the two clusters that we noticed above. + A scatterplot of Old Faithful eruption lengths versus the wait time between eruptions shows a pattern: longer wait times are associated with longer eruptions. The scatterplot also displays the two clusters that we noticed above. ```{r echo = FALSE, message = FALSE, fig.height = 2} ggplot(faithful) + geom_point(aes(x = eruptions, y = waiting)) @@ -337,7 +341,8 @@ You can extend scatterplots into three dimensions with the plotly, rgl, rglwidge ```{r eval = FALSE} library(plotly) -plot_ly(data = iris, x = Sepal.Length, y = Sepal.Width, z = Petal.Width, color = Species, type = "scatter3d", mode = "markers") +plot_ly(data = iris, x = Sepal.Length, y = Sepal.Width, z = Petal.Width, + color = Species, type = "scatter3d", mode = "markers") ``` ```{r, echo = FALSE} @@ -358,20 +363,29 @@ This doesn't mean that you should ignore complex interactions in your data. You ## Clusters -A clustering algorithm computes the distances between data points in n-dimensional space. It then uses an algorithm to group points into clusters based on how near or far they are from each other. Base R provides two easy to use clustering algrotihms: heirarchical clustering and k means clustering. +Cluster algorithms are automated tools that seek out clusters in n-dimensional space for you. Base R provides two easy to use clustering algorithms: heirarchical clustering and k means clustering. ### Heirarchical clustering -The heirarchical clustering algorithm groups points together based on how near they are to each other in n-dimensional space. The algorithm proceeds in stages until every point has been grouped into a single cluster, the data set. You can visualize the results of the algorithm as a dendrogram, and you can use the dendrogram to divide your data into any number of clusters. +Heirarchical clustering uses a simple algorithm to locate groups of points that are near each other in n-dimensional space: + +1. Identify the two points that are closest to each other +2. Combine these points into a cluster +3. Treat the new cluster as a point +4. Repeat until all of the points are grouped into a single cluster + +You can visualize the results of the algorithm as a dendrogram, and you can use the dendrogram to divide your data into any number of clusters. The figure below demonstrates how the algorithm would proceed in a two dimensional data set. ```{r, echo = FALSE} -knitr::include_graphics("images/EDA-plotly.png") +knitr::include_graphics("images/EDA-hclust.pdf") ``` -You can only apply heirarchical clustering to numeric data, so begin by selecting the numeric columns from your data set. Then apply the `dist()` function to the data and pass the results to `hcust()`. `dist()` computes the distances between your points in the n dimensional space defined by your numeric vectors. `hclust()` performs the clustering algorithm. +To use heirarchical clustering in R, begin by selecting the numeric columns from your data; you can only apply heirarchical clustering to numeric data. Then apply the `dist()` function to the data and pass the results to `hclust()`. `dist()` computes the distances between your points in the n dimensional space defined by your numeric vectors. `hclust()` performs the clustering algorithm. ```{r} -iris_hclust <- iris %>% +small_iris <- sample_n(iris, 50) + +iris_hclust <- small_iris %>% select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% dist() %>% hclust(method = "complete") @@ -380,18 +394,10 @@ iris_hclust <- iris %>% Use `plot()` to visualize the results as a dendrogram. Each observation in the data set will appear at the bottom of the dendrogram labeled by its rowname. You can use the labels argument to set the labels to something more informative. ```{r fig.height = 4} -plot(iris_hclust, labels = iris$Species) +plot(iris_hclust, labels = small_iris$Species) ``` -To see how near two data points are to each other, trace the paths of the data points up through the tree until they intersect. The y value of the intersection displays how far apart the points are in n-dimensional space. Points that are close to each other will intersect at a small y value, points that are far from each other will intersect at a large y value. Groups of points that are near each other will look like "leaves" that all grow on the same "branch." - -The ordering of the x axis in the dendrogram is somewhat arbitrary (think of the tree as a mobile, each horizontal branch can spin around meaninglessly). - -Use the `identify()` function to easily see easily which group of points are downstream from a branch. `identify()` will plot the dendrogram in an interactive format. When you click on a branch, R will draw a red rectangle around the downstream points. Clikc escape when you are finished. - -```{r eval = FALSE} -identify(iris_hclust) -``` +To see how near two data points are to each other, trace the paths of the data points up through the tree until they intersect. The y value of the intersection displays how far apart the points are in n-dimensional space. Points that are close to each other will intersect at a small y value, points that are far from each other will intersect at a large y value. Groups of points that are near each other will look like "leaves" that all grow on the same "branch." The ordering of the x axis in the dendrogram is somewhat arbitrary (think of the tree as a mobile, each horizontal branch can spin around meaninglessly). You can split your data into any number of clusters by drawing a horizontal line across the tree. Each vertical branch that the line crosses will represent a cluster that contains all of the points downstream from the branch. Move the line up the y axis to intersect fewer branches (and create fewer clusters), move the line down the y axis to intersect more branches and (create more clusters). @@ -400,15 +406,19 @@ You can split your data into any number of clusters by drawing a horizontal line ```{r} (clusters <- cutree(iris_hclust, 3)) -ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length)) + - geom_point(aes(color = factor(clusters), shape = Species)) +ggplot(small_iris, aes(x = Sepal.Width, y = Sepal.Length)) + + geom_point(aes(color = factor(clusters))) ``` You can modify the heirarchical clustering algorithm by setting the method argument of hclust to one of "complete", "single", "average", or "centroid". The method determines how to measure the distance between two clusters or a lone point and a cluster, a measurement that effects the outcome of the algorithm. -* *complete* - Measures the greatest distance between any two points. Tends to create distinct clusters and subclusters. +```{r, echo = FALSE} +knitr::include_graphics("images/EDA-linkage.pdf") +``` -* *single* - Measures the smallest distance between any two points in the clusters. Tends to add points one at a time to existing clusters, creating ambiguously defined clusters. +* *complete* - Measures the greatest distance between any two points in the separate clusters. Tends to create distinct clusters and subclusters. + +* *single* - Measures the smallest distance between any two points in the separate clusters. Tends to add points one at a time to existing clusters, creating ambiguously defined clusters. * *average* - Measures the average distance between all combinations of points in the separate clusters. Tends to add points one at a time to existing clusters. @@ -416,41 +426,44 @@ You can modify the heirarchical clustering algorithm by setting the method argum ```{r fig.height = 4} -iris %>% +small_iris %>% select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% dist() %>% hclust(method = "single") %>% - plot(labels = iris$Species) + plot(labels = small_iris$Species) ``` ### K means clustering -K means clustering provides a simulation based alternative to heirarchical clustering. It identifies the "best" way to group your data into a predefined number of clusters. +K means clustering provides a simulation based alternative to heirarchical clustering. It identifies the "best" way to group your data into a pre-defined number of clusters. The figure below visualizes (in two dimensional space) the k means algorith: + +1. Randomly assign each data point to one of $k$ groups +2. Compute the centroid of each group +3. Reassign each point to the group whose centroid it is nearest to +4. Repeat steps 2 and 3 until group memberships cease to change ```{r, echo = FALSE} -knitr::include_graphics("images/EDA-plotly.png") +knitr::include_graphics("images/EDA-kmeans.pdf") ``` -Use `kmeans()` to perform k means clustering with R. As with heirarchical clustering, you can only apply k means clustering to numerical data. Pass your numerical data to the `kmeans()` function, then set `center` to the number of clusters to search for ($k$) and `nstart` to the number of simulations to run. Since the results of k means clustering depend on the initial assignment of points to groups, which is random, R will run `nstart` k means simulations and then return the best results (as measured by the minimum sum of squared distances between each point and the centroid of the group it is assigned to). - -Finally, set the maximum number of iterations to let each simulation run in case the simulation cannot quickly find a stable grouping. +Use `kmeans()` to perform k means clustering with R. As with heirarchical clustering, you can only apply k means clustering to numerical data. Pass your numerical data to the `kmeans()` function, then set `center` to the number of clusters to search for ($k$) and `nstart` to the number of simulations to run. Since the results of k means clustering depend on the initial assignment of points to groups, which is random, R will run `nstart` simulations and then return the best results (as measured by the minimum sum of squared distances between each point and the centroid of the group it is assigned to). Finally, set the maximum number of iterations to let each simulation run in case the simulation cannot quickly find a stable grouping. ```{r} -iris_kmeans <- iris %>% +iris_kmeans <- small_iris %>% select(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) %>% kmeans(centers = 3, nstart = 20, iter.max = 50) iris_kmeans$cluster ``` -Unlike `hclust()` the k means algorithm does not porvide an intuitive visualize interface. Instead, `kmeans()` returns a kmeans class object. Subset the object with `$cluster` to access list of cluster assignments for your data set, like `cutree()`, e.g. `iris_kmeans$cluster`. You can visualize the results by mapping them to an aesthetic, or you can apply the results by passing them to dplyr's `group_by()` function. +Unlike `hclust()`, the k means algorithm does not porvide an intuitive visual interface. Instead, `kmeans()` returns a kmeans class object. Subset the object with `$cluster` to access a list of cluster assignments for your data set, e.g. `iris_kmeans$cluster`. You can visualize the results by mapping them to an aesthetic, or you can apply the results by passing them to dplyr's `group_by()` function. ```{r} -ggplot(iris, aes(x = Sepal.Width, y = Sepal.Length)) + - geom_point(aes(color = factor(iris_kmeans$cluster), shape = Species)) +ggplot(small_iris, aes(x = Sepal.Width, y = Sepal.Length)) + + geom_point(aes(color = factor(iris_kmeans$cluster))) -iris %>% +small_iris %>% group_by(iris_kmeans$cluster) %>% summarise(n_obs = n(), avg_width = mean(Sepal.Width), avg_length = mean(Sepal.Length)) ``` @@ -458,7 +471,7 @@ iris %>% ### Asking questions about clustering -Both algorithms _will always_ return a set of clusters, whether your data appears clustered or not. As a result, you should always be skeptical about clustering algorithms. Ask yourself: +Ask the same questions about clusters that you find with `hclust()` and `kmeans()` that you would ask about clusters that you find with a graph. Ask yourself: * Do the clusters seem to identify real differences between your points? How can you tell? @@ -470,7 +483,7 @@ Both algorithms _will always_ return a set of clusters, whether your data appear * How stable are the clusters if you re-run the algorithm? -Remember to use the results of clustering as a tool for exploration. They can be quite insightful, but there is no reason to treat them as a fact without doing further research. +Keep in mind that both algorithms _will always_ return a set of clusters, whether your data appears clustered or not. As a result, you should always be skeptical about the results. They can be quite insightful, but there is no reason to treat them as a fact without doing further research. ## Models @@ -495,7 +508,7 @@ $$\hat{y} = 0.13 + 0.98 x$$ which is the equation of the blue model line in the graph above. Even if we did not have the graph, we could use the model coefficients in the equation above to determine that a positive relationship exists between $y$ and $x$ such that a one unit increase in $x$ is associated with an approximately one unit increase in $y$. We could use a model statistic, such as adjusted $r^{2}$ to determine that the relationship is very strong (here adjusted $r^{2} = 0.99$). -Finally, we could spot outliers in our data by examining the residuals of the model, which are the distances between the actual $y$ values of our data points and the $y$ values that the model would predict for the data points. Observations that are outliers in n-dimensional space will have a residual that is an outlier in one dimensional space. You can find these outliers by plotting a histogram of the residuals or by visualizing the residuals against any variable in a two dimenisonal plot. +Finally, we could spot outliers in our data by examining the residuals of the model, which are the distances between the actual $y$ values of our data points and the $y$ values that the model would predict for the data points. Observations that are outliers in n-dimensional space will have residuals that are outliers in one dimensional space. You can find these outliers by plotting a histogram of the residuals or by visualizing the residuals against any variable in a two dimenisonal plot. ```{r echo = FALSE, fig.width = 3, fig.show='hold'} diamond_mod <- lm(y ~ x, data = diamonds3) @@ -508,15 +521,17 @@ ggplot(resids) + geom_point(aes(x = x, y = .resid)) ``` -You can examine coefficients, model statistics, and residuals of a model fit to an n-dimensional relationship in the same way, without visualizing the raw data in n-dimensional space. +You can easily use these techniques with n dimensional relationships that cannot be visualized easily. When you spot a pattern or outlier, ask yourself the same questions that you would ask when you spot a pattern or outlier in a graph. Then visualize the residuals of your model in various ways. If a pattern exists in the residuals, it suggests that your model does not accurately describe the pattern in your data. -I'll postpone teaching you how to fit and interpret models with R until Part 4. Altough models are something simple, a description of your data set, they are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make inferences and predictions. You'll be able to do more with models if you learn a few more skills before you begin to model data. +I'll postpone teaching you how to fit and interpret models with R until Part 4. Although models are something simple, descriptions of patterns, they are tied into the logic of statistical inference: if a model describes your data accurately _and_ your data is similar to the world at large, then your model should describe the world at large accurately. This chain of reasoning provides a basis for using models to make inferences and predictions. As a result, there is more to learn about models than we can examine here. ## Exploring further -Every data set contains more variables and observations than it displays. You can use the values in your data to compute new variables or to measure new new, group-level observations on subgroups of your data. These new variables and observations provide a further source of insights that you can explore with visualizations, clustering algorithms, and models. +> Every data set contains more variables and observations than it displays. -### Making new variables +You now know how to explore the variables displayed in your data set, but you should know that these are not the only variables in your data. Nor are the observations that are displayed in your data the only observations. You can use the values in your data to compute new variables or to measure new (group-level) observations. These new variables and observations provide a further source of insights that you can explore with visualizations, clustering algorithms, and models. + +### To make new variables Use dplyr's `mutate()` function to calculate new variables from your existing variables. @@ -526,13 +541,13 @@ diamonds %>% head() ``` -The window functions from Chapter 3 are particularly useful for calculating new variables. To calculate a variable from two or more variables, use basic operators or the `map2()`, `map3()`, and `map_n()` functions from purr. You will learn more about purrr in Chapter ?. +The window functions from Chapter 3 are particularly useful for calculating new variables. To calculate a variable from two or more variables, use basic operators or the `map2()`, `map3()`, and `map_n()` functions from purrr. You will learn more about purrr in Chapter ?. -Statisticians can use R to extract potential variables with more sophisticated algorithms. R provides `prcomp()` for Principle Components Analysis and `factanal()` for factor analysis. The psych and SEM packages also provide further tools for working with latent variables. +If you are statistically trained, you can use R to extract potential variables with more sophisticated algorithms. R provides `prcomp()` for Principle Components Analysis and `factanal()` for factor analysis. The psych and SEM packages also provide further tools for working with latent variables. -### Making new observations +### To make new observations -If your data set contains subgroups, you can derive from your data a new data set of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level values. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. +If your data set contains subgroups, you can derive from your data a new data set of observations that describe the subgroups. To do this, first use dplyr's `group_by()` function to group the data into subgroups. Then use dplyr's `summarise()` function to calculate group level statistics. The measures of location, rank and spread listed in Chapter 3 are particularly useful for describing subgroups. ```{r} mpg %>% @@ -542,41 +557,41 @@ mpg %>% ## A last word on variables, values, and observations -Variables, values, and observations provide a basis for Exploratory Data Analysis: if a relationship exists between two variables, then the relationship will exist between the values of those variables when those values are measured in the same observation. As a result, relationships between variables will appear as patterns in your data. +Variables, values, and observations provide a basis for Exploratory Data Analysis: _if a relationship exists between two_ variables, _then the relationship will exist between the_ values _of those variables when those values are measured in the same_ observation. As a result, relationships between variables will appear as patterns in your data. -Within any particular observation, the exact form of the relationship between values may be obscured by mediating factors, measurement error, or random noise; which means the patterns in your data will appear as signals obscured by noise. +Within any particular observation, the exact form of the relationship between variables may be obscured by mediating factors, measurement error, or random noise; which means that the patterns in your data will appear as signals obscured by noise. -Due to a quirk of the human cognitive system, the easiest way to spot the signal admidst the noise is to visualize your data. The concepts of variables, values, and observations make this easy to do. To visualize your data, represent each observation with its own geometric object, such as a point. Then map each variable to an aesthetic property of the point, setting specific values of the variable to specific levels of the aesthetic. Or compute group-level statistics (i.e. observations) and map them to geoms, something that `geom_bar()`, `geom_boxplot()` and other geoms do for you automatically. +Due to a quirk of the human cognitive system, the easiest way to spot signal admidst noise is to visualize your data. The concepts of variables, values, and observations have a role to play here as well. To visualize your data, represent each observation with its own geometric object, such as a point. Then map each variable to an aesthetic property of the point, setting specific values of the variable to specific levels of the aesthetic. You could also compute group-level statistics from your data (i.e. new observations) and map them to geoms, something that `geom_bar()`, `geom_boxplot()` and other geoms do for you automatically. ## Exploratory Data Analysis and Data Science -As a term, data science has been used in many ways by different people. This fluidity is necessary for a term that describes a wide breadth of activity, as data science does. Although different data science activities will take different forms, you can use the principles in this chapter to build a general model of data science. The model requires one limit to the definition of data science: data science must rely in some way on human judgement and expertise. +As a term, "data science" has been used in different ways by many people. This fluidity is necessary for a term that describes a wide breadth of activity, as data science does. Nonetheless, you can use the principles in this chapter to build a general model of data science. The model requires one limit to the definition of data science: data science must rely in some way on human judgement applied to data. -To judge or interpret the information in a data set, you must first comprehend that information. Data is difficult to comprehend, which means that you need to visualize, model, and transform it, a process that we have referred to as Exploratory Data Analysis. +To judge or interpret the information in a data set, you must first comprehend that information, which is difficult to do. The easiest way to comprehend data is to visualize, transform, and model it, a process that we have referred to as Exploratory Data Analysis. ```{r, echo = FALSE} knitr::include_graphics("images/EDA-data-science-1.png") ``` -Once you comprehend the information in your data, you can use it to make inferences from your data. Often this involves making deductions from a model. This is what you do when you conduct a hypothesis test, make a prediction (wth or without a confidence interval), or score cases in a database. +Once you comprehend the information in your data, you can use it to make inferences from your data. Often this involves making deductions from a model. This is what you do when you conduct a hypothesis test, make a prediction (with or without a confidence interval), or score cases in a database. ```{r, echo = FALSE} knitr::include_graphics("images/EDA-data-science-2.png") ``` -But all of this will involve a computer; you can make little headway with pencil and paper calculations when you work with data. To work efficiently, you will need to know how to program in a computer language, such as R, import data to use with that language, and tidy the data into the format that works best for that language. +But all of this work will involve a computer; you cannot do it in your head, nor on paper with a pencil. To work efficiently, you will need to know how to program in a computer language, such as R. You will also need to know how to import data to use with the computer language, and how to tidy the data into the format that works best for that computer language. ```{r, echo = FALSE} knitr::include_graphics("images/EDA-data-science-3.png") ``` -Finally, if your work is meaningful at all you will need to report it in a way that your audience can understand. Your audience might be fellow scientists who will want to ensure that the work is reproducible, non-scientists who will need to understand your findings in plain language, or future you who will be thankful if you make it easy to come back up to speed on your work and recreate it as necessary. To satisfy these audiences, you may choose to communicate your results in a report or to bundle your work into some type of useful format, like a package or a Shiny app. +Finally, if your work is meaningful at all, it will have an audience, which means that you will need to share your work in a way that your audience can understand. Your audience might be fellow scientists who will want to reproduce the work, non-scientists who will want to understand your findings in plain terms, or yourself (in the future) who will be thankful if you make your work easy to re-learn and recreate. To satisfy these audiences, you may choose to communicate your results in a report or to bundle your work into some type of useful format, like an R package or a Shiny app. ```{r, echo = FALSE} knitr::include_graphics("images/EDA-data-science-4.png") ``` -This model forms a roadmap for the rest of the book. +This model od data science forms a roadmap for the rest of the book. * Part 1 of the book covered the central tasks of the model above, Exploratory Data Analysis. @@ -584,9 +599,9 @@ This model forms a roadmap for the rest of the book. * Part 3 will teach you some of the most efficient ways to program in R with data. -* Part 4 discusses models and how to apply them. +* Part 4 will discuss models and how to apply them. -* Part 5 will teach you the most popular format for reporting and reproducing the results of an R analysis. +* Part 5 will teach you R Markdown, the most popular format for reporting and reproducing the results of an R analysis. ```{r, echo = FALSE} knitr::include_graphics("images/EDA-data-science-5.png") From c66de8e375fa9fd21d3c4b74b463bd334983bb53 Mon Sep 17 00:00:00 2001 From: Garrett Date: Fri, 27 May 2016 10:18:07 -0400 Subject: [PATCH 22/22] Fixes digits option for EDA table. --- variation.Rmd | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/variation.Rmd b/variation.Rmd index c0dba99..691994a 100644 --- a/variation.Rmd +++ b/variation.Rmd @@ -52,6 +52,10 @@ The rest of this chapter will look at these two questions. I'll explain what var **Variation** is the tendency of the values of a variable to change from measurement to measurement. You can see variation easily in real life; if you measure any continuous variable twice---and precisely enough, you will get two different results. This is true even if you measure quantities that should be constant, like the speed of light (below). Each of your measurements will include a small amount of error that varies from measurement to measurement. +```{r include = FALSE} +options(digits = 7) +``` + ```{r, variation, echo = FALSE} mat <- as.data.frame(matrix(morley$Speed + 299000, ncol = 10)) @@ -59,6 +63,10 @@ mat <- as.data.frame(matrix(morley$Speed + 299000, ncol = 10)) knitr::kable(mat, caption = "*The speed of light is a universal constant, but variation due to measurement error obscures its value. In 1879, Albert Michelson measured the speed of light 100 times and observed 30 different values (in km/sec).*", col.names = rep("", ncol(mat))) ``` +```{r include = FALSE} +options(digits = 3) +``` + Discrete and categorical variables can also vary if you measure across different subjects (e.g. the eye colors of different people), or different times (e.g. the energy levels of an electron at different moments). Every variable has its own pattern of variation, which can reveal interesting information. The best way to understand that pattern is to visualize the distribution of the values that you observe for the variable.