From cd5b869a3bcaedafc9dd008e5e92796d2a92d1ee Mon Sep 17 00:00:00 2001 From: Claus Wilke Date: Thu, 1 Feb 2024 14:51:08 -0600 Subject: [PATCH] Project 1 --- assignments/Project_1.Rmd | 64 +++ assignments/Project_1.html | 456 +++++++++++++++ assignments/Project_1_example.html | 576 +++++++++++++++++++ assignments/Project_1_instructions.html | 475 +++++++++++++++ assignments/Project_1_rubric.pdf | Bin 0 -> 59431 bytes docs/assignments/Project_1.Rmd | 64 +++ docs/assignments/Project_1.html | 456 +++++++++++++++ docs/assignments/Project_1_example.html | 576 +++++++++++++++++++ docs/assignments/Project_1_instructions.html | 475 +++++++++++++++ docs/assignments/Project_1_rubric.pdf | Bin 0 -> 59431 bytes docs/schedule.html | 10 + docs/search.json | 10 +- schedule.Rmd | 8 + 13 files changed, 3165 insertions(+), 5 deletions(-) create mode 100644 assignments/Project_1.Rmd create mode 100644 assignments/Project_1.html create mode 100644 assignments/Project_1_example.html create mode 100644 assignments/Project_1_instructions.html create mode 100644 assignments/Project_1_rubric.pdf create mode 100644 docs/assignments/Project_1.Rmd create mode 100644 docs/assignments/Project_1.html create mode 100644 docs/assignments/Project_1_example.html create mode 100644 docs/assignments/Project_1_instructions.html create mode 100644 docs/assignments/Project_1_rubric.pdf diff --git a/assignments/Project_1.Rmd b/assignments/Project_1.Rmd new file mode 100644 index 0000000..f50c574 --- /dev/null +++ b/assignments/Project_1.Rmd @@ -0,0 +1,64 @@ +--- +title: "Project 1" +output: html_document +--- + +```{r setup, include=FALSE} +library(tidyverse) +knitr::opts_chunk$set(echo = TRUE) +``` + +This is the dataset you will be working with: +```{r message = FALSE} +olympics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-27/olympics.csv') + +triathlon <- olympics %>% + filter(!is.na(height)) %>% # only keep athletes with known height + filter(sport == "Triathlon") %>% # keep only triathletes + mutate( + medalist = case_when( # add column to track medalist vs not + is.na(medal) ~ "non-medalist", + !is.na(medal) ~ "medalist" # any medals (Gold, Silver, Bronze) count + ) + ) +``` + +`triathlon` is a subset of `olympics` and contains only the data for triathletes. More information about the original `olympics` dataset can be found at https://github.com/rfordatascience/tidytuesday/tree/master/data/2021/2021-07-27/readme.md and https://www.sports-reference.com/olympics.html. + +For this project, use `triathlon` to answer the following questions about athletes competing in this sport: + +1. In how many events total did male and female triathletes compete for each country? +2. Are there height differences among triathletes between sexes or over time? +3. Are there height differences among triathletes that have medaled or not, again also considering athlete sex? + +You should make one plot per question. + +**Hints:** + +- We recommend you use a bar plot for question 1, a boxplot for question 2, and a sina plot overlaid on top of violins for question 3. However, you are free to use any of the plots we have discussed in class so far. +- For question 2, you will have to convert `year` into a factor. +- For question 3, consider why a boxplot or simple violin plot is not a good idea and mention this in the approach section. +- For all questions, you can use either faceting or color coding or both. Pick whichever you prefer. +- Adjust `fig.width` and `fig.height` in the chunk headers to customize figure sizing and figure aspect ratios. + +You can delete these instructions from your project. Please also delete text such as *Your approach here* or `# Q1: Your R code here`. + +**Introduction:** *Your introduction here.* + +**Approach:** *Your approach here.* + +**Analysis:** + +```{r fig.width = 5, fig.heigth = 5} +# Q1: Your R code here +``` + +```{r fig.width = 5, fig.heigth = 5} +# Q2: Your R code here +``` + +```{r fig.width = 5, fig.heigth = 5} +# Q3: Your R code here +``` + +**Discussion:** *Your discussion of results here.* diff --git a/assignments/Project_1.html b/assignments/Project_1.html new file mode 100644 index 0000000..96c0471 --- /dev/null +++ b/assignments/Project_1.html @@ -0,0 +1,456 @@ + + + + + + + + + + + + + +Project 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

This is the dataset you will be working with:

+
olympics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-27/olympics.csv')
+
+triathlon <- olympics %>% 
+  filter(!is.na(height)) %>%             # only keep athletes with known height
+  filter(sport == "Triathlon") %>%       # keep only triathletes
+  mutate(
+    medalist = case_when(                # add column to track medalist vs not
+      is.na(medal) ~ "non-medalist",
+      !is.na(medal) ~ "medalist"         # any medals (Gold, Silver, Bronze) count
+    )
+  )
+

triathlon is a subset of olympics and +contains only the data for triathletes. More information about the +original olympics dataset can be found at https://github.com/rfordatascience/tidytuesday/tree/master/data/2021/2021-07-27/readme.md +and https://www.sports-reference.com/olympics.html.

+

For this project, use triathlon to answer the following +questions about athletes competing in this sport:

+
    +
  1. In how many events total did male and female triathletes compete for +each country?
  2. +
  3. Are there height differences among triathletes between sexes or over +time?
  4. +
  5. Are there height differences among triathletes that have medaled or +not, again also considering athlete sex?
  6. +
+

You should make one plot per question.

+

Hints:

+ +

You can delete these instructions from your project. Please also +delete text such as Your approach here or +# Q1: Your R code here.

+

Introduction: Your introduction here.

+

Approach: Your approach here.

+

Analysis:

+
# Q1: Your R code here
+
# Q2: Your R code here
+
# Q3: Your R code here
+

Discussion: Your discussion of results +here.

+ + + + +
+ + + + + + + + + + + + + + + diff --git a/assignments/Project_1_example.html b/assignments/Project_1_example.html new file mode 100644 index 0000000..b6261dd --- /dev/null +++ b/assignments/Project_1_example.html @@ -0,0 +1,576 @@ + + + + + + + + + + + + + +Project 1 Example Solution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Claus O. Wilke, EID

+

This is the dataset you will be working with:

+
NCbirths <- read_csv("https://wilkelab.org/classes/SDS348/data_sets/NCbirths.csv")
+
+NCbirths
+
## # A tibble: 1,409 × 10
+##    Plural   Sex MomAge Weeks Gained Smoke BirthWeightGm   Low Premie Marital
+##     <dbl> <dbl>  <dbl> <dbl>  <dbl> <dbl>         <dbl> <dbl>  <dbl>   <dbl>
+##  1      1     1     32    40     38     0         3147.     0      0       0
+##  2      1     2     32    37     34     0         3289.     0      0       0
+##  3      1     1     27    39     12     0         3912.     0      0       0
+##  4      1     1     27    39     15     0         3856.     0      0       0
+##  5      1     1     25    39     32     0         3430.     0      0       0
+##  6      1     1     28    43     32     0         3317.     0      0       0
+##  7      1     2     25    39     75     0         4054.     0      0       0
+##  8      1     2     15    42     25     0         3204.     0      0       1
+##  9      1     2     21    39     28     0         3402      0      0       0
+## 10      1     2     27    40     37     0         3515.     0      0       1
+## # ℹ 1,399 more rows
+

Questions:

+
    +
  1. Is there a relationship between whether a mother smokes or not +and her baby’s weight at birth?

  2. +
  3. How many mothers are smokers or non-smokers?

  4. +
  5. What are the age distributions of mothers of twins or +triplets?

  6. +
+

Introduction: We are working with the +NCbirths dataset, which contains 1409 birth records from +North Carolina in 2001. In this dataset, each row corresponds to one +birth, and there are ten columns providing information about the birth, +the mother, and the baby. Information about the birth includes whether +it is a single, twin, or triplet birth, the number of completed weeks of +gestation, and whether the birth is premature. Information about the +baby includes the sex, the weight at birth, and whether the birth weight +should be considered low. Information about the mother includes her age, +the weight gained during pregnancy, whether she is a smoker, and whether +she is married.

+

To answer the three questions, we will work with five variables, the +baby’s birthweight (column BirthWeightGm), whether the baby +was born prematurely (column Premie), whether it was a +singleton, twin, or triplet birth (column Plural), whether +the mother is a smoker or not (column Smoke), and the +mother’s age (column MomAge). The birthweight is provided +as a numeric value, in grams. The premature birth status is encoded as +0/1, where 0 means regular and 1 means premature (36 weeks or sooner). +The number of births is encoded as 1/2/3 representing singleton, twins, +and triplets, respectively. The smoking status is encoded as 0/1, where +0 means the mother is not a smoker and 1 means she is a smoker. The +mother’s age is provided in years.

+

Approach: To show the distributions of birthweights +versus the mothers’ smoking status we will be using violin plots +(geom_violin()). We also separate out regular and premature +births, because babies born prematurely have much lower birthweight and +therefore must be considered separately. Violins make it easy to compare +multiple distributions side-by-side.

+

To show the number of mothers that are smokers or non-smokers we will +use a simple bar plot (geom_bar()). Finally, to show the +distribution of mothers’ ages we will make a strip chart. The number of +twin and triplet births in the dataset is not that large, so a strip +chart is a good option here.

+

Analysis:

+

Question 1: Is there a relationship between whether a mother smokes +or not and her baby’s weight at birth?

+

To answer this question, we plot the birthweight distributions as +violins, separated by both smoking status and by whether the birth was +regular or premature.

+
# The columns `Premie` and `Smoke` are numerical but contain
+# categorical data, so we convert to factors to ensure ggplot
+# treats them correctly
+ggplot(NCbirths, aes(factor(Premie), BirthWeightGm)) +
+  geom_violin(aes(fill = factor(Smoke))) +
+  scale_x_discrete(
+    name = NULL, # remove axis title entirely
+    labels = c("regular birth", "premature birth")
+  ) +
+  scale_y_continuous(
+    name = "Birth weight (gm)"
+  ) +
+  scale_fill_manual(
+    name = "Mother",
+    labels = c("non-smoker", "smoker"),
+    # explicitly assign colors to specific data values
+    values = c(`0` = "#56B4E9", `1` = "#E69F00")
+  ) + 
+  theme_bw(12)
+

+

There is a clear difference between birthweight for regular and +premature births, and for regular births the birthweight also seems to +be lower when the mother smokes.

+

Question 2: How many mothers are smokers or non-smokers?

+

To answer this question, we make a simple bar plot of the number of +mothers by smoking status.

+
# again, convert `Smoke` into factor so it's categorical
+ggplot(NCbirths, aes(y = factor(Smoke))) +
+  geom_bar() +
+  scale_y_discrete(
+    name = NULL,
+    labels = c("non-smoker", "smoker")
+  ) +
+  scale_x_continuous(
+    # ensure there's no gap between the beginning of the bar
+    # and the edge of the plot panel
+    expand = expansion(mult = c(0, 0.1))
+  ) +
+  theme_bw(12)
+

+

The vast majority of mothers in the dataset are non-smokers (almost +1250). Fewer than 250 are smokers.

+

Question 3. What are the age distributions of mothers of twins or +triplets?

+

To answer this question, we first remove singleton births from the +dataset and then show age distributions as a strip chart.

+
NCbirths %>%
+  filter(Plural > 1) %>% # remove singlet births
+  ggplot(aes(x = factor(Plural), y = MomAge)) +
+  geom_point(
+    # jitter horizontally so points don't overlap
+    position = position_jitter(
+      width = 0.2,
+      height = 0
+    ),
+    # it's nice to make points a little bigger and give them some color
+    size = 2,
+    color = "#1E4A7F"
+  ) +
+  scale_x_discrete(
+    name = NULL,
+    labels = c("twins", "triplets")
+  ) +
+  scale_y_continuous(
+    name = "age of mother (years)"
+  ) +
+  theme_bw(12)
+

+

Mothers of twins span the entire childbearing range, from 15 years to +approximately 40 years old. By contrast, mothers of triplets tend to be +in their thirties.

+

Discussion: The smoking status of the mother appears +to have a small effect on the average birth weight for regular births. +We can see this by comparing the two left-most violins in the first +plot, where we see that they are slightly vertically shifted relative to +each other but have otherwise a comparable shape. However, a much bigger +effect comes from whether the baby is born prematurely or not. Premature +births have on average a much lower birthweight than regular births, and +the variance is also bigger (the two right-most violins are taller than +the two left-most violins). Interestingly, smoking status does not seem +to affect the distribution of birthweights for premature births much. We +can see this from the fact that the two right-most violins look +approximately the same. We would have to run a multivariate statistical +analysis to determine whether any of these observed patterns are +statistically significant.

+

There are many more births to non-smoking mothers than to smoking +mothers in the dataset. This is important because it means we have more +complete data for non-smoking mothers. Some of the differences we saw in +the first graph, such as the slightly lower variance in birthweight for +premature births to smoking mothers—as compared to premature births to +non-smoking mothers—may simply be due to a smaller data set.

+

When comparing age distributions of mothers of twins or of triplets +we see an unexpected difference. It appears that mothers of all ages, +from teenage moms to moms in their early fourties, all can have twins. +By contrast, only mothers in their thirties appear to have triplets. We +can think of a possible explanation. Twin births happen due to natural +causes and therefore can occur in mothers of all ages. Triplet births, +however, are extremely unlikely to occur naturally, and most commonly +are caused by fertility treatments that cause multiple eggs to mature at +once. It is unlikely that women in their late teens or twenties will +undergo fertility treatment, whereas women in their thirties do so +frequently. We also note, however, that there are only four triplet +births in the dataset, so the lack of younger mothers could be due to +random chance. We would have to perform further analysis or run +statistical tests develop a clearer picture of what mechanisms may have +caused the observed patterns in the data.

+ + + + +
+ + + + + + + + + + + + + + + diff --git a/assignments/Project_1_instructions.html b/assignments/Project_1_instructions.html new file mode 100644 index 0000000..5ee58a8 --- /dev/null +++ b/assignments/Project_1_instructions.html @@ -0,0 +1,475 @@ + + + + + + + + + + + + + +Project 1 Instructions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Please use the project template R Markdown document to complete your +project. The knitted R Markdown document (as a PDF) and the raw +R Markdown file (as .Rmd) must be submitted to Canvas by 11:00pm on +Thurs., Feb 15, 2024. These two documents will be +graded jointly, so they must be consistent (as in, don’t change the R +Markdown file without also updating the knitted document!).

+

All results presented must have corresponding code, and the +code should be visible in the final generated pdf for ease of grading. +Any answers/results given without the corresponding R code that +generated the result will be considered absent. All code +reported in your final project document should work properly. Please do +not include any extraneous code or code which produces error messages. +(Code which produces warnings is acceptable, as long as you understand +what the warnings mean and explain this.)

+

For this project, you will be using an Olympic Games dataset, which +is a compilation of records for athletes that have competed in the +Olympics from Athens 1896 to Rio 2016.

+

Each record contains information including the name of the athlete +(name), their sex, their age, +their height, their weight, their +team, their nationality (noc), the +games at which they played, the year, the +olympic season, the city where the olympics +took place, the sport, the name of the event +(event), the decade during which the Olympics took place +(decade), whether or not the athlete won a gold medal +(gold), whether or not the athlete won any medal +(medalist) and if the athlete won “Gold”, “Silver”, +“Bronze” or received “no medal” (medal). More information +about the dataset can be found at https://github.com/rfordatascience/tidytuesday/blob/master/data/2021/2021-07-27/readme.md

+

We will provide you with specific questions to answer and specific +instructions on how to answer the questions. The project should be +structured as follows:

+ +

We encourage you to be concise. A paragraph should typically not be +longer than 5 sentences.

+

You are not required to perform any statistical +tests in this project, but you may do so if you find it helpful to +answer your question.

+
+

Instructions

+

In the Introduction section, write a brief introduction to the +dataset, the questions, and what parts of the dataset are necessary to +answer the questions. You may repeat some of the information about the +dataset provided above, paraphrasing on your own terms. Imagine that +your project is a standalone document and the grader has no prior +knowledge of the dataset. You do not need to describe variables that are +never used in your analysis.

+

In the Approach section, describe what types of plots you are going +to make to address your questions. For each plot, provide a clear +explanation as to why this plot (e.g. boxplot, barplot, histogram, etc.) +is best for providing the information you are asking about. (You can +draw on the materials provided +here for guidance.) All plots should be of different types, +and all should use either color mapping or faceting or +both.

+

In the Analysis section, provide the code that generates your plots. +Use scale functions to provide nice axis labels and guides. You are +welcome to use theme functions to customize the appearance of your plot, +but you are not required to do so for this project. All plots +must be made with ggplot2. Do not use base R plotting +functions.

+

In the Discussion section, interpret the results of your analysis. +Identify any trends revealed (or not revealed) by the plots. Speculate +about why the data looks the way it does.

+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/assignments/Project_1_rubric.pdf b/assignments/Project_1_rubric.pdf new file mode 100644 index 0000000000000000000000000000000000000000..172915916347daa5cd95270bcacbae7458df4aeb GIT binary patch literal 59431 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 literal 0 HcmV?d00001 diff --git a/docs/assignments/Project_1.Rmd b/docs/assignments/Project_1.Rmd new file mode 100644 index 0000000..f50c574 --- /dev/null +++ b/docs/assignments/Project_1.Rmd @@ -0,0 +1,64 @@ +--- +title: "Project 1" +output: html_document +--- + +```{r setup, include=FALSE} +library(tidyverse) +knitr::opts_chunk$set(echo = TRUE) +``` + +This is the dataset you will be working with: +```{r message = FALSE} +olympics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-27/olympics.csv') + +triathlon <- olympics %>% + filter(!is.na(height)) %>% # only keep athletes with known height + filter(sport == "Triathlon") %>% # keep only triathletes + mutate( + medalist = case_when( # add column to track medalist vs not + is.na(medal) ~ "non-medalist", + !is.na(medal) ~ "medalist" # any medals (Gold, Silver, Bronze) count + ) + ) +``` + +`triathlon` is a subset of `olympics` and contains only the data for triathletes. More information about the original `olympics` dataset can be found at https://github.com/rfordatascience/tidytuesday/tree/master/data/2021/2021-07-27/readme.md and https://www.sports-reference.com/olympics.html. + +For this project, use `triathlon` to answer the following questions about athletes competing in this sport: + +1. In how many events total did male and female triathletes compete for each country? +2. Are there height differences among triathletes between sexes or over time? +3. Are there height differences among triathletes that have medaled or not, again also considering athlete sex? + +You should make one plot per question. + +**Hints:** + +- We recommend you use a bar plot for question 1, a boxplot for question 2, and a sina plot overlaid on top of violins for question 3. However, you are free to use any of the plots we have discussed in class so far. +- For question 2, you will have to convert `year` into a factor. +- For question 3, consider why a boxplot or simple violin plot is not a good idea and mention this in the approach section. +- For all questions, you can use either faceting or color coding or both. Pick whichever you prefer. +- Adjust `fig.width` and `fig.height` in the chunk headers to customize figure sizing and figure aspect ratios. + +You can delete these instructions from your project. Please also delete text such as *Your approach here* or `# Q1: Your R code here`. + +**Introduction:** *Your introduction here.* + +**Approach:** *Your approach here.* + +**Analysis:** + +```{r fig.width = 5, fig.heigth = 5} +# Q1: Your R code here +``` + +```{r fig.width = 5, fig.heigth = 5} +# Q2: Your R code here +``` + +```{r fig.width = 5, fig.heigth = 5} +# Q3: Your R code here +``` + +**Discussion:** *Your discussion of results here.* diff --git a/docs/assignments/Project_1.html b/docs/assignments/Project_1.html new file mode 100644 index 0000000..96c0471 --- /dev/null +++ b/docs/assignments/Project_1.html @@ -0,0 +1,456 @@ + + + + + + + + + + + + + +Project 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assignments/Project_1_example.html b/docs/assignments/Project_1_example.html new file mode 100644 index 0000000..b6261dd --- /dev/null +++ b/docs/assignments/Project_1_example.html @@ -0,0 +1,576 @@ + + + + + + + + + + + + + +Project 1 Example Solution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Claus O. Wilke, EID

+

This is the dataset you will be working with:

+
NCbirths <- read_csv("https://wilkelab.org/classes/SDS348/data_sets/NCbirths.csv")
+
+NCbirths
+
## # A tibble: 1,409 × 10
+##    Plural   Sex MomAge Weeks Gained Smoke BirthWeightGm   Low Premie Marital
+##     <dbl> <dbl>  <dbl> <dbl>  <dbl> <dbl>         <dbl> <dbl>  <dbl>   <dbl>
+##  1      1     1     32    40     38     0         3147.     0      0       0
+##  2      1     2     32    37     34     0         3289.     0      0       0
+##  3      1     1     27    39     12     0         3912.     0      0       0
+##  4      1     1     27    39     15     0         3856.     0      0       0
+##  5      1     1     25    39     32     0         3430.     0      0       0
+##  6      1     1     28    43     32     0         3317.     0      0       0
+##  7      1     2     25    39     75     0         4054.     0      0       0
+##  8      1     2     15    42     25     0         3204.     0      0       1
+##  9      1     2     21    39     28     0         3402      0      0       0
+## 10      1     2     27    40     37     0         3515.     0      0       1
+## # ℹ 1,399 more rows
+

Questions:

+
    +
  1. Is there a relationship between whether a mother smokes or not +and her baby’s weight at birth?

  2. +
  3. How many mothers are smokers or non-smokers?

  4. +
  5. What are the age distributions of mothers of twins or +triplets?

  6. +
+

Introduction: We are working with the +NCbirths dataset, which contains 1409 birth records from +North Carolina in 2001. In this dataset, each row corresponds to one +birth, and there are ten columns providing information about the birth, +the mother, and the baby. Information about the birth includes whether +it is a single, twin, or triplet birth, the number of completed weeks of +gestation, and whether the birth is premature. Information about the +baby includes the sex, the weight at birth, and whether the birth weight +should be considered low. Information about the mother includes her age, +the weight gained during pregnancy, whether she is a smoker, and whether +she is married.

+

To answer the three questions, we will work with five variables, the +baby’s birthweight (column BirthWeightGm), whether the baby +was born prematurely (column Premie), whether it was a +singleton, twin, or triplet birth (column Plural), whether +the mother is a smoker or not (column Smoke), and the +mother’s age (column MomAge). The birthweight is provided +as a numeric value, in grams. The premature birth status is encoded as +0/1, where 0 means regular and 1 means premature (36 weeks or sooner). +The number of births is encoded as 1/2/3 representing singleton, twins, +and triplets, respectively. The smoking status is encoded as 0/1, where +0 means the mother is not a smoker and 1 means she is a smoker. The +mother’s age is provided in years.

+

Approach: To show the distributions of birthweights +versus the mothers’ smoking status we will be using violin plots +(geom_violin()). We also separate out regular and premature +births, because babies born prematurely have much lower birthweight and +therefore must be considered separately. Violins make it easy to compare +multiple distributions side-by-side.

+

To show the number of mothers that are smokers or non-smokers we will +use a simple bar plot (geom_bar()). Finally, to show the +distribution of mothers’ ages we will make a strip chart. The number of +twin and triplet births in the dataset is not that large, so a strip +chart is a good option here.

+

Analysis:

+

Question 1: Is there a relationship between whether a mother smokes +or not and her baby’s weight at birth?

+

To answer this question, we plot the birthweight distributions as +violins, separated by both smoking status and by whether the birth was +regular or premature.

+
# The columns `Premie` and `Smoke` are numerical but contain
+# categorical data, so we convert to factors to ensure ggplot
+# treats them correctly
+ggplot(NCbirths, aes(factor(Premie), BirthWeightGm)) +
+  geom_violin(aes(fill = factor(Smoke))) +
+  scale_x_discrete(
+    name = NULL, # remove axis title entirely
+    labels = c("regular birth", "premature birth")
+  ) +
+  scale_y_continuous(
+    name = "Birth weight (gm)"
+  ) +
+  scale_fill_manual(
+    name = "Mother",
+    labels = c("non-smoker", "smoker"),
+    # explicitly assign colors to specific data values
+    values = c(`0` = "#56B4E9", `1` = "#E69F00")
+  ) + 
+  theme_bw(12)
+

+

There is a clear difference between birthweight for regular and +premature births, and for regular births the birthweight also seems to +be lower when the mother smokes.

+

Question 2: How many mothers are smokers or non-smokers?

+

To answer this question, we make a simple bar plot of the number of +mothers by smoking status.

+
# again, convert `Smoke` into factor so it's categorical
+ggplot(NCbirths, aes(y = factor(Smoke))) +
+  geom_bar() +
+  scale_y_discrete(
+    name = NULL,
+    labels = c("non-smoker", "smoker")
+  ) +
+  scale_x_continuous(
+    # ensure there's no gap between the beginning of the bar
+    # and the edge of the plot panel
+    expand = expansion(mult = c(0, 0.1))
+  ) +
+  theme_bw(12)
+

+

The vast majority of mothers in the dataset are non-smokers (almost +1250). Fewer than 250 are smokers.

+

Question 3. What are the age distributions of mothers of twins or +triplets?

+

To answer this question, we first remove singleton births from the +dataset and then show age distributions as a strip chart.

+
NCbirths %>%
+  filter(Plural > 1) %>% # remove singlet births
+  ggplot(aes(x = factor(Plural), y = MomAge)) +
+  geom_point(
+    # jitter horizontally so points don't overlap
+    position = position_jitter(
+      width = 0.2,
+      height = 0
+    ),
+    # it's nice to make points a little bigger and give them some color
+    size = 2,
+    color = "#1E4A7F"
+  ) +
+  scale_x_discrete(
+    name = NULL,
+    labels = c("twins", "triplets")
+  ) +
+  scale_y_continuous(
+    name = "age of mother (years)"
+  ) +
+  theme_bw(12)
+

+

Mothers of twins span the entire childbearing range, from 15 years to +approximately 40 years old. By contrast, mothers of triplets tend to be +in their thirties.

+

Discussion: The smoking status of the mother appears +to have a small effect on the average birth weight for regular births. +We can see this by comparing the two left-most violins in the first +plot, where we see that they are slightly vertically shifted relative to +each other but have otherwise a comparable shape. However, a much bigger +effect comes from whether the baby is born prematurely or not. Premature +births have on average a much lower birthweight than regular births, and +the variance is also bigger (the two right-most violins are taller than +the two left-most violins). Interestingly, smoking status does not seem +to affect the distribution of birthweights for premature births much. We +can see this from the fact that the two right-most violins look +approximately the same. We would have to run a multivariate statistical +analysis to determine whether any of these observed patterns are +statistically significant.

+

There are many more births to non-smoking mothers than to smoking +mothers in the dataset. This is important because it means we have more +complete data for non-smoking mothers. Some of the differences we saw in +the first graph, such as the slightly lower variance in birthweight for +premature births to smoking mothers—as compared to premature births to +non-smoking mothers—may simply be due to a smaller data set.

+

When comparing age distributions of mothers of twins or of triplets +we see an unexpected difference. It appears that mothers of all ages, +from teenage moms to moms in their early fourties, all can have twins. +By contrast, only mothers in their thirties appear to have triplets. We +can think of a possible explanation. Twin births happen due to natural +causes and therefore can occur in mothers of all ages. Triplet births, +however, are extremely unlikely to occur naturally, and most commonly +are caused by fertility treatments that cause multiple eggs to mature at +once. It is unlikely that women in their late teens or twenties will +undergo fertility treatment, whereas women in their thirties do so +frequently. We also note, however, that there are only four triplet +births in the dataset, so the lack of younger mothers could be due to +random chance. We would have to perform further analysis or run +statistical tests develop a clearer picture of what mechanisms may have +caused the observed patterns in the data.

+ + + + +
+ + + + + + + + + + + + + + + diff --git a/docs/assignments/Project_1_instructions.html b/docs/assignments/Project_1_instructions.html new file mode 100644 index 0000000..5ee58a8 --- /dev/null +++ b/docs/assignments/Project_1_instructions.html @@ -0,0 +1,475 @@ + + + + + + + + + + + + + +Project 1 Instructions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Please use the project template R Markdown document to complete your +project. The knitted R Markdown document (as a PDF) and the raw +R Markdown file (as .Rmd) must be submitted to Canvas by 11:00pm on +Thurs., Feb 15, 2024. These two documents will be +graded jointly, so they must be consistent (as in, don’t change the R +Markdown file without also updating the knitted document!).

+

All results presented must have corresponding code, and the +code should be visible in the final generated pdf for ease of grading. +Any answers/results given without the corresponding R code that +generated the result will be considered absent. All code +reported in your final project document should work properly. Please do +not include any extraneous code or code which produces error messages. +(Code which produces warnings is acceptable, as long as you understand +what the warnings mean and explain this.)

+

For this project, you will be using an Olympic Games dataset, which +is a compilation of records for athletes that have competed in the +Olympics from Athens 1896 to Rio 2016.

+

Each record contains information including the name of the athlete +(name), their sex, their age, +their height, their weight, their +team, their nationality (noc), the +games at which they played, the year, the +olympic season, the city where the olympics +took place, the sport, the name of the event +(event), the decade during which the Olympics took place +(decade), whether or not the athlete won a gold medal +(gold), whether or not the athlete won any medal +(medalist) and if the athlete won “Gold”, “Silver”, +“Bronze” or received “no medal” (medal). More information +about the dataset can be found at https://github.com/rfordatascience/tidytuesday/blob/master/data/2021/2021-07-27/readme.md

+

We will provide you with specific questions to answer and specific +instructions on how to answer the questions. The project should be +structured as follows:

+
    +
  • Introduction (1–2 paragraphs)
  • +
  • Approach (2–3 paragraphs)
  • +
  • Analysis (3–4 code blocks, 3 figures, text/code comments as +needed)
  • +
  • Discussion (1–3 paragraphs)
  • +
+

We encourage you to be concise. A paragraph should typically not be +longer than 5 sentences.

+

You are not required to perform any statistical +tests in this project, but you may do so if you find it helpful to +answer your question.

+
+

Instructions

+

In the Introduction section, write a brief introduction to the +dataset, the questions, and what parts of the dataset are necessary to +answer the questions. You may repeat some of the information about the +dataset provided above, paraphrasing on your own terms. Imagine that +your project is a standalone document and the grader has no prior +knowledge of the dataset. You do not need to describe variables that are +never used in your analysis.

+

In the Approach section, describe what types of plots you are going +to make to address your questions. For each plot, provide a clear +explanation as to why this plot (e.g. boxplot, barplot, histogram, etc.) +is best for providing the information you are asking about. (You can +draw on the materials provided +here for guidance.) All plots should be of different types, +and all should use either color mapping or faceting or +both.

+

In the Analysis section, provide the code that generates your plots. +Use scale functions to provide nice axis labels and guides. You are +welcome to use theme functions to customize the appearance of your plot, +but you are not required to do so for this project. All plots +must be made with ggplot2. Do not use base R plotting +functions.

+

In the Discussion section, interpret the results of your analysis. +Identify any trends revealed (or not revealed) by the plots. Speculate +about why the data looks the way it does.

+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/docs/assignments/Project_1_rubric.pdf b/docs/assignments/Project_1_rubric.pdf new file mode 100644 index 0000000000000000000000000000000000000000..172915916347daa5cd95270bcacbae7458df4aeb GIT binary patch literal 59431 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 literal 0 HcmV?d00001 diff --git a/docs/schedule.html b/docs/schedule.html index 76551b3..337ddb8 100644 --- a/docs/schedule.html +++ b/docs/schedule.html @@ -2646,6 +2646,16 @@

Homework 7 (due Apr 11, 2024)

Projects

All projects are due by 11:00pm on the day they are due. Projects need to be submitted on Canvas. Please carefully read the submission instructions for each project.

Project 1 (due Feb 15, 2023)

+

+Materials: +

+

Project 2 (due Mar 21, 2023)

Project 3 (due Apr 18, 2023)

Reuse

diff --git a/docs/search.json b/docs/search.json index ed33f1f..a88864e 100644 --- a/docs/search.json +++ b/docs/search.json @@ -6,21 +6,21 @@ "description": "Data Visualization in R", "author": [], "contents": "\nThis is the home page for SDS 375, Data Visualization in R. All course materials will be posted on this site.\nInstructor: Claus O. Wilke\nMeeting times: TTH 3:30pm to 5:00pm\nVenue: UTC 4.110\nSyllabus: click here\nUpcoming lectures and assignments: click here\nComputing requirements\nFor students enrolled in this course, you only need a working web browser to access the edupod server, located at: https://edupod.cns.utexas.edu/\nIf you are using the edupod server, stop reading here. Everything is pre-installed and no further action is needed.\nTo run any of the materials locally on your own machine, you will need the following:\nA recent version of R, download from here.\nA recent version of RStudio, download from here.\nThe following R packages:\nbroom, cluster, colorspace, cowplot, distill, gapminder, GGally, gganimate, ggiraph, ggdendro, ggdist, ggforce, ggplot2movies, ggrepel, ggridges, ggthemes, gifski, glue, knitr, learnr, naniar, margins, MASS, Matrix, nycflights13, palmerpenguins, patchwork, rmarkdown, rnaturalearth, rnaturalearthhires, scales, sf, shinyjs, sp, tidyverse, transformr, umap, xaringan\nYou can install all required R packages at once by running the following code in the R command line:\n\n\n# first run this command:\ninstall.packages(\n c(\n \"broom\", \"cluster\", \"colorspace\", \"cowplot\", \"distill\", \"gapminder\", \n \"GGally\", \"gganimate\", \"ggiraph\", \"ggdendro\", \"ggdist\", \"ggforce\",\n \"ggplot2movies\", \"ggrepel\", \"ggridges\", \"ggthemes\", \"gifski\", \"glue\",\n \"knitr\", \"learnr\", \"naniar\", \"margins\", \"MASS\", \"Matrix\",\n \"nycflights13\", \"palmerpenguins\", \"patchwork\", \"rmarkdown\", \"rnaturalearth\",\n \"scales\", \"sf\", \"shinyjs\", \"sp\", \"tidyverse\", \"transformr\", \"umap\",\n \"xaringan\"\n )\n)\n\n# then run this command:\ninstall.packages(\n \"rnaturalearthhires\", repos = \"https://packages.ropensci.org\", type = \"source\"\n)\n\n\nReuse\nText and figures are licensed under Creative Commons Attribution CC BY 4.0. Any computer code (R, HTML, CSS, etc.) in slides and worksheets, including in slide and worksheet sources, is also licensed under MIT. Note that figures in slides may be pulled in from external sources and may be licensed under different terms. For such images, image credits are available in the slide notes, accessible via pressing the letter ‘p’.\n\n\n\n", - "last_modified": "2024-01-29T15:00:27-06:00" + "last_modified": "2024-02-01T14:50:44-06:00" }, { "path": "LICENSE.html", "author": [], "contents": "\nMIT License\nCopyright (c) 2021 Claus O. Wilke\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the “Software”), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\n", - "last_modified": "2024-01-29T15:00:27-06:00" + "last_modified": "2024-02-01T14:50:45-06:00" }, { "path": "schedule.html", "title": "SDS 375 Schedule Spring 2023", "description": "", "author": [], - "contents": "\n\nContents\nLectures\nHomeworks\nProjects\nReuse\n\nLectures\n1. Jan 16, 2024—Introduction\n\nMaterials:\n\nSlides\nWorksheet (Solutions are available here)\n2. Jan 18, 2024—Aesthetic mappings\n\nMaterials:\n\nSlides\nWorksheet\n3. Jan 23, 2023—Telling a story, Visualizing amounts\n\nMaterials:\n\nSlides: Telling a story\nSlides: Visualizing amounts\nWorksheet\n4. Jan 25, 2023—Coordinate systems and axes\n\nMaterials:\n\nSlides\nWorksheet\n5. Jan 30, 2024—Visualizing distributions 1\n\nMaterials:\n\nSlides\nWorksheet\n6. Feb 1, 2024—Visualizing distributions 2\n\nMaterials:\n\nSlides\nWorksheet\nHomeworks\nAll homeworks are due by 11:00pm on the day they are due. Homeworks need to be submitted as pdf files on Canvas.\nHomework 1 (due Jan 25, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 2 (due Feb 1, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 3 (due Feb 8, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 4 (due Feb 29, 2024)\nHomework 5 (due Mar 7, 2024)\nHomework 6 (due Apr 4, 2024)\nHomework 7 (due Apr 11, 2024)\nProjects\nAll projects are due by 11:00pm on the day they are due. Projects need to be submitted on Canvas. Please carefully read the submission instructions for each project.\nProject 1 (due Feb 15, 2023)\nProject 2 (due Mar 21, 2023)\nProject 3 (due Apr 18, 2023)\nReuse\nText and figures are licensed under Creative Commons Attribution CC BY 4.0. Any computer code (R, HTML, CSS, etc.) in slides and worksheets, including in slide and worksheet sources, is also licensed under MIT. Note that figures in slides may be pulled in from external sources and may be licensed under different terms. For such images, image credits are available in the slide notes, accessible via pressing the letter ‘p’.\n\n\n\n", - "last_modified": "2024-01-29T15:00:28-06:00" + "contents": "\n\nContents\nLectures\nHomeworks\nProjects\nReuse\n\nLectures\n1. Jan 16, 2024—Introduction\n\nMaterials:\n\nSlides\nWorksheet (Solutions are available here)\n2. Jan 18, 2024—Aesthetic mappings\n\nMaterials:\n\nSlides\nWorksheet\n3. Jan 23, 2023—Telling a story, Visualizing amounts\n\nMaterials:\n\nSlides: Telling a story\nSlides: Visualizing amounts\nWorksheet\n4. Jan 25, 2023—Coordinate systems and axes\n\nMaterials:\n\nSlides\nWorksheet\n5. Jan 30, 2024—Visualizing distributions 1\n\nMaterials:\n\nSlides\nWorksheet\n6. Feb 1, 2024—Visualizing distributions 2\n\nMaterials:\n\nSlides\nWorksheet\nHomeworks\nAll homeworks are due by 11:00pm on the day they are due. Homeworks need to be submitted as pdf files on Canvas.\nHomework 1 (due Jan 25, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 2 (due Feb 1, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 3 (due Feb 8, 2024)\n\nMaterials:\n\nR Markdown template\nHTML\nHomework 4 (due Feb 29, 2024)\nHomework 5 (due Mar 7, 2024)\nHomework 6 (due Apr 4, 2024)\nHomework 7 (due Apr 11, 2024)\nProjects\nAll projects are due by 11:00pm on the day they are due. Projects need to be submitted on Canvas. Please carefully read the submission instructions for each project.\nProject 1 (due Feb 15, 2023)\n\nMaterials:\n\nInstructions\nProject Template (Rmd)\nProject Template (HTML)\nGrading rubric\nExample project\nProject 2 (due Mar 21, 2023)\nProject 3 (due Apr 18, 2023)\nReuse\nText and figures are licensed under Creative Commons Attribution CC BY 4.0. Any computer code (R, HTML, CSS, etc.) in slides and worksheets, including in slide and worksheet sources, is also licensed under MIT. Note that figures in slides may be pulled in from external sources and may be licensed under different terms. For such images, image credits are available in the slide notes, accessible via pressing the letter ‘p’.\n\n\n\n", + "last_modified": "2024-02-01T14:50:45-06:00" }, { "path": "syllabus.html", @@ -28,7 +28,7 @@ "description": "", "author": [], "contents": "\n\nContents\nCourse title and instructor\nPurpose and contents of the class\nPrerequisites\nTextbook\nTopics covered\nComputing requirements\nCourse site\nAssignments and grading\nLate assignment policy\nOffice hours\nEmail policy\nSpecial accommodations\nAcademic dishonesty\nSharing of Course Materials is Prohibited\nClass Recordings\nReuse\n\nCourse title and instructor\nTitle: SDS 375 Data Visualization in RSemester: Spring 2024Unique: 56690, TTH 3:30pm–5:00pm, UTC 4.110\nInstructor: Claus O. WilkeEmail: wilke@austin.utexas.eduOffice Hours: Mon. 9am - 10am (open Zoom), Thurs. 10am - 11am (open Zoom), or by appointment\nTeaching Assistant: Alexis HillEmail: alexis.hill@utexas.eduOffice Hours: Wed. 2pm - 3PM (open Zoom), Thurs. 11am - 12pm (open Zoom), or by appointment\nPurpose and contents of the class\nIn this class, students will learn how to visualize data sets and how to reason about and communicate with data visualizations. A substantial component of this class will be dedicated to learning how to program in R. In addition, students will learn how to compile analyses and visualizations into reports, how to make the reports reproducible, and how to post reports on a website or blog.\nPrerequisites\nThe class requires no prior knowledge of programming. However, students are expected to have successfully completed an introductory statistics class taught with R, such as SDS 320E, and they are expected to have some basic familiarity with the statistical language R.\nTextbook\nThis class draws heavily from materials presented in the following book:\nClaus O. Wilke. Fundamentals of Data Visualization. O’Reilly Media, 2019.\nAdditionally, we will also make use of the following books:\nHadley Wickham, Danielle Navarro, and Thomas Lin Pedersen. ggplot2: Elegant Graphics for Data Analysis, 3rd ed. Springer, to appear.\nKieran Healy. Data Visualization: A Practical Introduction. Princeton University Press, 2018.\nAll these books are freely available online and you do not need to purchase a physical copy of either book to succeed in this class.\nTopics covered\n\nClass\nTopic\nCoding concepts covered\n1.\nIntroduction, reproducible\nworkflows\nRStudio setup online, R Markdown\n2.\nAesthetic mappings\nggplot2 quickstart\n3.\nTelling a story\n\n4.\nVisualizing amounts\ngeom_col(), geom_point(),\nposition adjustments\n5.\nCoordinate systems and\naxes\ncoords and position scales\n6.\nVisualizing distributions\n1\nstats, geom_density(),\ngeom_histogram()\n7.\nVisualizing distributions\n2\nviolin plots, sina plots, ridgeline plots\n8.\nColor scales\ncolor and fill scales\n9.\nData wrangling 1\nmutate(), filter(), arrange()\n10.\nData wrangling 2\ngroup_by(), summarize(), count()\n11.\nVisualizing proportions\nbar charts, pie charts\n12.\nGetting to know your data\nhandling missing data, is.na(), case_when()\n13.\nGetting things into the\nright order\nfct_reorder(), fct_lump()\n14.\nFigure design\nggplot themes\n15.\nColor spaces, color vision\ndeficiency\ncolorspace package\n16.\nFunctions and functional\nprogramming\nmap(), nest(), purrr package\n17.\nVisualizing trends\ngeom_smooth()\n18.\nWorking with models\nlm, cor.test, broom package\n19.\nVisualizing uncertainty\nfrequency framing, error bars, ggdist package\n20.\nDimension reduction 1\nPCA\n21.\nDimension reduction 2\nkernel PCA, t-SNE, UMAP\n22.\nClustering 1\nk-means clustering\n23.\nClustering 2\nhierarchical clustering\n24.\nVisualizing geospatial\ndata\ngeom_sf(), coord_sf()\n25.\nRedundant coding, text\nannotations\nggrepel package\n26.\nInteractive plots\nggiraph package\n27.\nOver-plotting\njittering, 2d histograms,\ncontour plots\n28.\nCompound figures\npatchwork package\n\nComputing requirements\nProgramming needs to be learned by doing, and a significant portion of the in-class time will be dedicated to working through simple problems. All programming exercises will be available through a web-based system, so the only system requirement for student computers is a modern web browser.\nCourse site\nAll materials and assignments will be posted on the course webpage at:\nhttps://wilkelab.org/SDS375\nAssignment deadlines are shown on the schedule at: https://wilkelab.org/SDS375/schedule.html\nAssignments will be submitted and grades will be posted on Canvas at:\nhttps://utexas.instructure.com\nParticipation via presence in class and in online discussions will also be tracked on Canvas.\nR compute sessions are available at:\nhttps://edupod.cns.utexas.edu\nNote that edupods will be unavailable due to maintenance approximately two hours per month, usually on a Thursday afternoon between 4pm and 6pm. Specific maintenance times are published in advance here:\nhttps://wikis.utexas.edu/display/RCTFusers\nAssignments and grading\nThe graded components of this class will be homeworks, projects, peer-grading, and participation. Each week either a homework, a project, or a peer-grading is due. Homeworks will be relatively short visualization problems to be solved by the student, usually involving some small amount of programming to achieve a specified goal. They are graded by the TA. Projects are larger and more involved data analysis problems that involve both programming and writing. They are peer-graded by the students. Students will have at least one week to complete each homework and two weeks to complete each project. The submission deadlines for homeworks and projects will be Thursdays at 11pm.\nThere will be seven homeworks and three projects. Both homeworks and projects need to be submitted electronically on Canvas. Homeworks are worth 20 points and projects are worth 100 points. The lowest-scoring homework will be dropped, so that a maximum of 120 points can be obtained from the homeworks.\nProjects are peer-graded, which involves evaluating three projects by other students according to a detailed grading rubric that will be provided. The final grade for each project is the mean of the peer-graded projects. The peer-grading itself will be graded by the TA, who will also oversee and spot-check the assigned peer grades. Experience has shown that peer-grading is often the most instructive component of this class, so don’t take this lightly.\nParticipation is assessed in two ways. First, students will receive 2 points for every lecture they attend. This is tracked via simple quizzes on Canvas. Second, each week students can receive up to 4 points for making substantive contributions to the Canvas online discussion (2 points per contribution). Total participation points are capped at 52 (13 weeks of class times 4 points), so students can compensate for lack of in-person attendance by participating in discussions and vice versa. You do not have to get full points in both in-person attendance and online discussions. No participation is assessed in the first week of class.\n\nAssignment type\nNumber\nPoints per assignment\nTotal points\nHomework\n6 (+1)\n20\n120\nProject\n3\n100\n300\nPeer grading\n3\n16\n48\nParticipation\n26 (+26)\n2\n52\n\nThus, in summary, each project (+ peer grading) contributes 22% to the final grade, the totality of all homeworks contributes another 23% to the final grade, and participation contributes 10%. There are no traditional exams in this class and there is no final.\nThe class will use +/- grading, and the exact grade boundaries will be determined at the end of the semester. However, the following minimum grades will be guaranteed:\n\nPoints achieved\nMinimum guaranteed grade\n468 (90%)\nA-\n416 (80%)\nB-\n364 (70%)\nC-\n260 (50%)\nD-\n\nLate assignment policy\nHomeworks that are submitted past the posted deadline will not be graded and will receive 0 points.\nProject submissions will have a 1-day grace period. Projects submitted during the grace period will have 25 points deducted from the obtained grade. After the grace period, students who have not submitted their project will receive 0 points.\nPeer grades need to be submitted by the posted deadline. Late submissions will result in 0 points for the peer-grading effort.\nIn case of illness or other unforeseen circumstances out of your control, please reach out to Claus Wilke as soon as possible. We will consider your request on a case-by-case basis. If you need a deadline extension for valid reasons, please reach out before the official submission deadline and state how much of an extension you would need. Whether deadline extensions are possible depends on the severity of your situation as well as whether the solutions to the assignment have already been published.\nOffice hours\nBoth the graduate TA and myself will be available at posted times or by appointment. Office hours will be over Zoom. The most effective way to request an appointment for office hours outside of posted times is to suggest several times that work for you. I would suggest to write an email such as the following:\nDear Dr. Wilke,\n\nI would like to request a meeting with you outside of \nregular office hours this week. I am available Thurs.\nbetween 1pm and 2:30pm or Fri. before 11am or after 4pm.\n\nThanks a lot,\n John Doe\nNote that we will not usually make appointments before 9am or after 5pm.\nEmail policy\nWhen emailing about this course, please put “SDS375” into the subject line. Emails to the instructor or TA should be restricted to organizational issues, such as requests for appointments, questions about course organization, etc. For all other issues, post in the discussions on Canvas, ask a question during open Zoom, or make an appointment for a one-on-one session.\nSpecifically, we will not discuss technical issues related to assignments over email. Technical issues are questions concerning how to approach a particular problem, whether a particular solution is correct, or how to use the statistical software R. These questions should be posted as issues on GitHub. Also, we will not discuss grading-related matters over email. If you have a concern about grading, schedule a one-on-one Zoom meeting.\nSpecial accommodations\nStudents with disabilities. Students with disabilities may request appropriate accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, https://diversity.utexas.edu/disability/\nReligious holy days. Students who must miss a class or an assignment to observe a religious holy day will be given an opportunity to complete the missed work within a reasonable time after the absence. According to UT Austin policy, such students must notify me of the pending absence at least fourteen days prior to the date of observance of a religious holy day.\nAcademic dishonesty\nThis course is built upon the idea that student interaction is important and a powerful way to learn. We encourage you to communicate with other students, in particular through the discussion forums on Canvas. However, there are times when you need to demonstrate your own ability to work and solve problems. In particular, your homeworks and projects are independent work, unless explicitly stated otherwise. You are allowed to confer with fellow students about general approaches to solve the problems in the assignments, but you have to do the assignments on your own and describe your work in your own words. Students who violate these expectations can expect to receive a failing grade on the assignment and will be reported to Student Judicial Services. These types of violations are reported to professional schools, should you ever decide to apply one day. Don’t do it—it’s not worth the consequences.\nSharing of Course Materials is Prohibited\nAny materials in this class that are not posted publicly may not be shared online or with anyone outside of the class unless you have my explicit, written permission. This includes but is not limited to lecture hand-outs, videos, assessments (quizzes, exams, papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets. Unauthorized sharing of materials promotes cheating. It is a violation of the University’s Student Honor Code and an act of academic dishonesty. We are well aware of the sites used for sharing materials, and any materials found online that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in sanctions, including failure in the course.\nAny materials posted on the public class website (https://wilkelab.org/SDS375/) are considered public and can be shared under the Creative Commons Attribution CC BY 4.0 license.\nClass Recordings\nIf any class recordings are provided they are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to Student Misconduct proceedings.\nReuse\nText and figures are licensed under Creative Commons Attribution CC BY 4.0. Any computer code (R, HTML, CSS, etc.) in slides and worksheets, including in slide and worksheet sources, is also licensed under MIT. Note that figures in slides may be pulled in from external sources and may be licensed under different terms. For such images, image credits are available in the slide notes, accessible via pressing the letter ‘p’.\n\n\n\n", - "last_modified": "2024-01-29T15:00:28-06:00" + "last_modified": "2024-02-01T14:50:45-06:00" } ], "collections": [] diff --git a/schedule.Rmd b/schedule.Rmd index b0d2330..c8199e5 100644 --- a/schedule.Rmd +++ b/schedule.Rmd @@ -96,6 +96,14 @@ All projects are due by 11:00pm on the day they are due. Projects need to be sub ### Project 1 (due Feb 15, 2023) +

Materials:

+ +- [Instructions](assignments/Project_1_instructions.html) +- [Project Template (Rmd)](assignments/Project_1.Rmd) +- [Project Template (HTML)](assignments/Project_1.html) +- [Grading rubric](assignments/Project_1_rubric.pdf) +- [Example project](assignments/Project_1_example.html) + ### Project 2 (due Mar 21, 2023) ### Project 3 (due Apr 18, 2023)
+ + + + + + + +

This is the dataset you will be working with:

+
olympics <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-07-27/olympics.csv')
+
+triathlon <- olympics %>% 
+  filter(!is.na(height)) %>%             # only keep athletes with known height
+  filter(sport == "Triathlon") %>%       # keep only triathletes
+  mutate(
+    medalist = case_when(                # add column to track medalist vs not
+      is.na(medal) ~ "non-medalist",
+      !is.na(medal) ~ "medalist"         # any medals (Gold, Silver, Bronze) count
+    )
+  )
+

triathlon is a subset of olympics and +contains only the data for triathletes. More information about the +original olympics dataset can be found at https://github.com/rfordatascience/tidytuesday/tree/master/data/2021/2021-07-27/readme.md +and https://www.sports-reference.com/olympics.html.

+

For this project, use triathlon to answer the following +questions about athletes competing in this sport:

+
    +
  1. In how many events total did male and female triathletes compete for +each country?
  2. +
  3. Are there height differences among triathletes between sexes or over +time?
  4. +
  5. Are there height differences among triathletes that have medaled or +not, again also considering athlete sex?
  6. +
+

You should make one plot per question.

+

Hints:

+
    +
  • We recommend you use a bar plot for question 1, a boxplot for +question 2, and a sina plot overlaid on top of violins for question 3. +However, you are free to use any of the plots we have discussed in class +so far.
  • +
  • For question 2, you will have to convert year into a +factor.
  • +
  • For question 3, consider why a boxplot or simple violin plot is not +a good idea and mention this in the approach section.
  • +
  • For all questions, you can use either faceting or color coding or +both. Pick whichever you prefer.
  • +
  • Adjust fig.width and fig.height in the +chunk headers to customize figure sizing and figure aspect ratios.
  • +
+

You can delete these instructions from your project. Please also +delete text such as Your approach here or +# Q1: Your R code here.

+

Introduction: Your introduction here.

+

Approach: Your approach here.

+

Analysis:

+
# Q1: Your R code here
+
# Q2: Your R code here
+
# Q3: Your R code here
+

Discussion: Your discussion of results +here.

+ + + + +