From 0da07733213b07554158e6aa41499e12c6fd6d2a Mon Sep 17 00:00:00 2001 From: Elizabeth Humphries Date: Fri, 27 Sep 2024 13:22:22 -0400 Subject: [PATCH 1/8] Updating confusing language in lab --- modules/Statistics/lab/Statistics_Lab_Key.Rmd | 64 ++++++++++++++----- 1 file changed, 48 insertions(+), 16 deletions(-) diff --git a/modules/Statistics/lab/Statistics_Lab_Key.Rmd b/modules/Statistics/lab/Statistics_Lab_Key.Rmd index e3a9488e..7ffc7f9b 100644 --- a/modules/Statistics/lab/Statistics_Lab_Key.Rmd +++ b/modules/Statistics/lab/Statistics_Lab_Key.Rmd @@ -13,22 +13,26 @@ knitr::opts_chunk$set(echo = TRUE) ### 1.1 -Load the libraries needed in this lab. Then, read in the CalEnviroScreen data from `dasehr` package. Assign it to the "ces" variable. You can also find the data at https://daseh.org/data/CalEnviroScreen_data.csv +Load the libraries needed in this lab. Then, read in the CalEnviroScreen data and assign it to the "ces" variable. You can find the data at https://daseh.org/data/CalEnviroScreen_data.csv ```{r message = FALSE} -library(dplyr) -library(dasehr) +library(tidyverse) library(broom) +library(readr) ``` ```{r 1.1response} -ces <- calenviroscreen +ces <- read_csv("https://daseh.org/data/CalEnviroScreen_data.csv") ``` ### 1.2 -Compute the correlation (with `cor`) between the `PM2.5` and `Ozone` variables. (No need to save this in an object. Just display the result to the screen.) Use the `pull()` function to first extract these columns. To use a column name in `pull()` that starts with a number, surround it with backticks. Then, use the `cor` function. +Compute the correlation (with `cor`) between the `PM2.5` and `Ozone` variables. (No need to save this in an object. Just display the result to the screen.) Use the `pull()` function to first extract these columns. Then, use the `cor` function. + +`PM2.5`: Annual mean concentration of fine particulate matter (particulates less than 2.5 microns in diameter). Higher numbers indicate poorer air quality + +`Ozone`: Average daily ozone concentration at ground level. Higher numbers indicate poorer air quality ```{r 1.2response} x <- pull(ces, PM2.5) @@ -39,12 +43,18 @@ cor(x, y) ### 1.3 -Compute the correlation (with `cor`) between the `DieselPM`, `Lead`, `Traffic`, and `Asthma` variables. (No need to save this in an object. Just display the result to the screen.) Use `select()` function to first subset the data frame to keep the four columns only. To use a column name in `select()` that starts with a number, surround it with backticks. Does this change when we use the `use = "complete.obs"` argument? +Compute the correlation (with `cor`) between the `DieselPM`, `Traffic`, and `Asthma` variables. (No need to save this in an object. Just display the result to the screen.) Use `select()` function to first subset the data frame to keep the four columns only. To use a column name in `select()` that starts with a number, surround it with backticks. Does this change when we use the `use = "complete.obs"` argument? + +`DieselPM`: Diesel PM emissions from on-road and non-road sources + +`Traffic`: Measure of traffic density within 150 meters of the census tract boundary + +`Asthma`: Age-adjusted rate of emergency department visits for asthma ```{r 1.3response} ces_sub <- ces %>% - select(DieselPM, Lead, Traffic, Asthma) + select(DieselPM, Traffic, Asthma) cor(ces_sub) cor(ces_sub, use = "complete.obs") @@ -54,6 +64,10 @@ cor(ces_sub, use = "complete.obs") Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) and poverty burden (`Poverty`). Use the `pull()` function to extract these columns. Print the results using the `tidy` function from the `broom` package. +`Lead`: Estimated risk for lead exposure in children living in low-income communities with older housing + +`Poverty`: Percent of population living below two times the federal poverty level + ```{r 1.4response} x <- pull(ces, Lead) y <- pull(ces, Poverty) @@ -67,7 +81,9 @@ tidy(t.test(x, y)) ### P.1 -Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) and housing insecurity (`HousingBurden`). Use the `pull()` function to extract these columns. Print the results using the `tidy` function. How do these results compare to those in question 1.4? +Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) and housing burden (`HousingBurden`). Use the `pull()` function to extract these columns. Print the results using the `tidy` function. How do these results compare to those in question 1.4? + +`HousingBurden`: Percentage of housing-burdened low-income households. Households are considered cost-burdened when they spend more than 30% of their income on rent, mortgage payments, and other housing costs ```{r P.1response} x <- pull(ces, Lead) @@ -82,7 +98,11 @@ tidy(t.test(x, y)) ### 2.1 -Fit a linear regression model with low birthweight percentile ("LowBirthWeightPctl") as the outcome and CES4.0 score ("CES4.0Score") as the predictor. Save the model fit in an object called "lmfit_bw" and display the summary table with `summary()`. +Fit a linear regression model with `LowBirthWeightPctl` as the outcome and `CES4.0Score` as the predictor. Save the model fit in an object called "lmfit_bw" and display the summary table with `summary()`. + +`LowBirthWeight`: Percentage of newborns that are considered to have a low birthweight + +`CES4.0Score`: Score that estimates the environmental health burden of living in a particular census tract. A higher score indicates a greater amount of poor environmental measures for a given area. These measures include things like pollution, exposure to lead, and chance of contaminated groundwater. ``` # General format @@ -90,16 +110,18 @@ glm(y ~ x, data = DATASET_NAME) ``` ```{r 2.1response} -lmfit_bw <- glm(LowBirthWeightPctl ~ CES4.0Score, data = ces) +lmfit_bw <- glm(LowBirthWeight ~ CES4.0Score, data = ces) summary(lmfit_bw) ``` ### 2.2 -Fit a linear regression model with low birthweight percentile ("LowBirthWeightPctl") as the outcome and CES4.0 score ("CES4.0Score") and poverty score ("Poverty") as the predictors. Save the model fit in an object called "lmfit_bw2" and display the summary table. +Fit a linear regression model with `LowBirthWeightPctl` as the outcome and `CES4.0Score` and `Poverty` as the predictors. Save the model fit in an object called "lmfit_bw2" and display the summary table. + +`Poverty`: Percent of population living below two times the federal poverty level ```{r 2.2response} -lmfit_bw2 <- glm(LowBirthWeightPctl ~ CES4.0Score + Poverty, data = ces) +lmfit_bw2 <- glm(LowBirthWeight ~ CES4.0Score + Poverty, data = ces) summary(lmfit_bw2) ``` @@ -108,19 +130,29 @@ summary(lmfit_bw2) ### P.2 -Fit a linear regression model with low birthweight percentile ("LowBirthWeightPctl") as the outcome, CES4.0 score ("CES4.0Score") and poverty score ("Poverty") as the predictors, and interaction between "CES4.0Score" and "Poverty". +Fit a linear regression model with `LowBirthWeight` as the outcome, `CES4.0Score` and `Poverty` as the predictors, and interaction between `CES4.0Score` and `Poverty`. - To include the interaction, use `CES4.0Score * Poverty` in the formula. - Save the model fit in an object called "lmfit_bw3" and display the summary table with `summary()`. ```{r P.2response} -lmfit_bw3 <- glm(LowBirthWeightPctl ~ CES4.0Score + Poverty + CES4.0Score * Poverty, data = ces) +lmfit_bw3 <- glm(LowBirthWeight ~ CES4.0Score + Poverty + CES4.0Score * Poverty, data = ces) summary(lmfit_bw3) ``` ### P.3 -Fit a logistic regression model where the outcome is whether the CES percentile is above the 50th percentile and predictors are the poverty measure ("Poverty") and percentage of white residents ("WhitePerc"), as well as the interaction between "Poverty" and "WhitePerc". Information about the CES4.0 percentile rank is stored in the "CES4.0Percentile" variable. You will need to first create a variable "CESPctlMoreThan50" using the `mutate` and `case_when` commands. +Fit a logistic regression model where the outcome is whether the CES percentile is above the 50th percentile and predictors are `Poverty` and `Education`, as well as the interaction between `Poverty` and `Education`. You will need to first create a variable "CESPctlMoreThan50" using the `mutate` and `case_when` commands. + +Information about the CES4.0 percentile rank is stored in the `CES4.0Percentile` variable. + +`CES4.0Percentile`: How the CES4.0Score for a given census tract ranks compared to all the census tracts in California. A higher score means residents particular census tract experience a greater burden of things like pollution compared to other California residents. + +`CESPctlMoreThan50`: In this question, you dividing all the census tracts into two categories: those with greater burden of pollution, and those with a smaller burden of pollution + +`Poverty`: Percent of population living below two times the federal poverty level + +`Education`: Percent of population over 25 with less than a high school education - Save the model fit in an object called "logfit_ces" and display the summary table with `summary()`. @@ -135,6 +167,6 @@ ces <- ces %>% mutate(CESPctlMoreThan50 = case_when(CES4.0Percentile > 50 ~ 1, CES4.0Percentile < 50 ~ 0)) -logfit_ces <- glm(CESPctlMoreThan50 ~ Poverty + WhitePerc + Poverty * WhitePerc, data = ces, family = binomial(link = "logit")) +logfit_ces <- glm(CESPctlMoreThan50 ~ Poverty + Education + Poverty * Education, data = ces, family = binomial(link = "logit")) summary(logfit_ces) ``` From 2275ac28243c71a3ad9609d7ab5f2d5442bdb200 Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 11:01:51 -0400 Subject: [PATCH 2/8] A few mods for t.test comparison --- modules/Statistics/lab/Statistics_Lab_Key.Rmd | 47 +++++++++++++++---- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/modules/Statistics/lab/Statistics_Lab_Key.Rmd b/modules/Statistics/lab/Statistics_Lab_Key.Rmd index 7ffc7f9b..1f2805b6 100644 --- a/modules/Statistics/lab/Statistics_Lab_Key.Rmd +++ b/modules/Statistics/lab/Statistics_Lab_Key.Rmd @@ -19,7 +19,6 @@ Load the libraries needed in this lab. Then, read in the CalEnviroScreen data an ```{r message = FALSE} library(tidyverse) library(broom) -library(readr) ``` ```{r 1.1response} @@ -62,18 +61,31 @@ cor(ces_sub, use = "complete.obs") ### 1.4 -Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) and poverty burden (`Poverty`). Use the `pull()` function to extract these columns. Print the results using the `tidy` function from the `broom` package. +Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) in Los Angeles census tracts compared to San Diego: -`Lead`: Estimated risk for lead exposure in children living in low-income communities with older housing +* Create a subset of the data for CaliforniaCounty == "Los Angeles" +* Create a subset of the data for CaliforniaCounty == "San Diego" +* `pull` the `Lead` column for both subsets +* Use `t.test` to compare the two pulled vectors +* Print the results using the `tidy` function from the `broom` package -`Poverty`: Percent of population living below two times the federal poverty level +`Lead`: Estimated risk for lead exposure in children living in low-income communities with older housing ```{r 1.4response} -x <- pull(ces, Lead) -y <- pull(ces, Poverty) +losangeles <- ces %>% filter(CaliforniaCounty == "Los Angeles") +sandiego <- ces %>% filter(CaliforniaCounty == "San Diego") + +x <- pull(losangeles, Lead) +y <- pull(sandiego, Lead) t.test(x, y) tidy(t.test(x, y)) + +# Another way to look at it.. +ces %>% + group_by(CaliforniaCounty) %>% + summarize(mean = mean(Lead, na.rm = TRUE)) %>% + filter(CaliforniaCounty %in% c("Los Angeles", "San Diego")) ``` @@ -81,18 +93,35 @@ tidy(t.test(x, y)) ### P.1 -Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) and housing burden (`HousingBurden`). Use the `pull()` function to extract these columns. Print the results using the `tidy` function. How do these results compare to those in question 1.4? +Perform a t-test similar to 1.4, but this time examine differences in `HousingBurden`. `HousingBurden`: Percentage of housing-burdened low-income households. Households are considered cost-burdened when they spend more than 30% of their income on rent, mortgage payments, and other housing costs ```{r P.1response} -x <- pull(ces, Lead) -y <- pull(ces, HousingBurden) +x <- pull(losangeles, HousingBurden) +y <- pull(sandiego, HousingBurden) t.test(x, y) tidy(t.test(x, y)) ``` +### P.2 + +Filter `ces` so it only contains Los Angeles and San Diego. Launch Esquisse or create a ggplot which plots: + +* `Lead` exposure on the x axis +* `HousingBurden` on the y axis +* Colors points (`geom_point()`) by `CaliforniaCounty` + +```{r P.2response} +ces_sub <- + ces %>% + filter(CaliforniaCounty %in% c("Los Angeles", "San Diego")) + +ggplot(ces_sub, aes(x = Lead, y = HousingBurden, color = CaliforniaCounty)) + + geom_point() +``` + # Part 2 From b15d54f8b42e8017097fe7a5b58a77e55b5ce56b Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 11:36:51 -0400 Subject: [PATCH 3/8] Revisions to lab --- modules/Statistics/lab/Statistics_Lab_Key.Rmd | 104 +++++++++--------- 1 file changed, 53 insertions(+), 51 deletions(-) diff --git a/modules/Statistics/lab/Statistics_Lab_Key.Rmd b/modules/Statistics/lab/Statistics_Lab_Key.Rmd index 1f2805b6..a5efd727 100644 --- a/modules/Statistics/lab/Statistics_Lab_Key.Rmd +++ b/modules/Statistics/lab/Statistics_Lab_Key.Rmd @@ -13,7 +13,7 @@ knitr::opts_chunk$set(echo = TRUE) ### 1.1 -Load the libraries needed in this lab. Then, read in the CalEnviroScreen data and assign it to the "ces" variable. You can find the data at https://daseh.org/data/CalEnviroScreen_data.csv +Load the packages needed in this lab. Then, read in the CalEnviroScreen data and assign it to the "ces" variable. You can find the data at https://daseh.org/data/CalEnviroScreen_data.csv ```{r message = FALSE} @@ -27,22 +27,27 @@ ces <- read_csv("https://daseh.org/data/CalEnviroScreen_data.csv") ### 1.2 -Compute the correlation (with `cor`) between the `PM2.5` and `Ozone` variables. (No need to save this in an object. Just display the result to the screen.) Use the `pull()` function to first extract these columns. Then, use the `cor` function. +Compute the correlation (with `cor`) between the `HousingBurden` and `LowBirthWeight` variables. -`PM2.5`: Annual mean concentration of fine particulate matter (particulates less than 2.5 microns in diameter). Higher numbers indicate poorer air quality +* Use `select()` to choose these columns and save as an object. +* Use the `cor` function on this object. +* Add the use = "complete.obs" argument. -`Ozone`: Average daily ozone concentration at ground level. Higher numbers indicate poorer air quality +`HousingBurden`: Percentage of housing-burdened low-income households. Households are considered cost-burdened when they spend more than 30% of their income on rent, mortgage payments, and other housing costs + +`LowBirthWeight`: Percentage of births that are low birth weight. ```{r 1.2response} -x <- pull(ces, PM2.5) -y <- pull(ces, Ozone) +ces_sub <- + ces %>% + select(HousingBurden, LowBirthWeight) -cor(x, y) +cor(ces_sub, use = "complete.obs") ``` ### 1.3 -Compute the correlation (with `cor`) between the `DieselPM`, `Traffic`, and `Asthma` variables. (No need to save this in an object. Just display the result to the screen.) Use `select()` function to first subset the data frame to keep the four columns only. To use a column name in `select()` that starts with a number, surround it with backticks. Does this change when we use the `use = "complete.obs"` argument? +Change your code from 1.2 to add a few more variables: `DieselPM`: Diesel PM emissions from on-road and non-road sources @@ -53,30 +58,27 @@ Compute the correlation (with `cor`) between the `DieselPM`, `Traffic`, and `Ast ```{r 1.3response} ces_sub <- ces %>% - select(DieselPM, Traffic, Asthma) + select(HousingBurden, LowBirthWeight, DieselPM, Traffic, Asthma) -cor(ces_sub) cor(ces_sub, use = "complete.obs") ``` ### 1.4 -Perform a t-test to determine if there is evidence of a difference between lead exposure burden (`Lead`) in Los Angeles census tracts compared to San Diego: +Perform a t-test to determine if there is evidence of a difference between low birth weight percentage (`LowBirthWeight`) in Los Angeles census tracts compared to San Diego: * Create a subset of the data for CaliforniaCounty == "Los Angeles" * Create a subset of the data for CaliforniaCounty == "San Diego" -* `pull` the `Lead` column for both subsets +* `pull` the `LowBirthWeight` column for both subsets * Use `t.test` to compare the two pulled vectors * Print the results using the `tidy` function from the `broom` package -`Lead`: Estimated risk for lead exposure in children living in low-income communities with older housing - ```{r 1.4response} losangeles <- ces %>% filter(CaliforniaCounty == "Los Angeles") sandiego <- ces %>% filter(CaliforniaCounty == "San Diego") -x <- pull(losangeles, Lead) -y <- pull(sandiego, Lead) +x <- pull(losangeles, LowBirthWeight) +y <- pull(sandiego, LowBirthWeight) t.test(x, y) tidy(t.test(x, y)) @@ -84,7 +86,7 @@ tidy(t.test(x, y)) # Another way to look at it.. ces %>% group_by(CaliforniaCounty) %>% - summarize(mean = mean(Lead, na.rm = TRUE)) %>% + summarize(mean = mean(LowBirthWeight, na.rm = TRUE)) %>% filter(CaliforniaCounty %in% c("Los Angeles", "San Diego")) ``` @@ -95,8 +97,6 @@ ces %>% Perform a t-test similar to 1.4, but this time examine differences in `HousingBurden`. -`HousingBurden`: Percentage of housing-burdened low-income households. Households are considered cost-burdened when they spend more than 30% of their income on rent, mortgage payments, and other housing costs - ```{r P.1response} x <- pull(losangeles, HousingBurden) y <- pull(sandiego, HousingBurden) @@ -127,11 +127,11 @@ ggplot(ces_sub, aes(x = Lead, y = HousingBurden, color = CaliforniaCounty)) + ### 2.1 -Fit a linear regression model with `LowBirthWeightPctl` as the outcome and `CES4.0Score` as the predictor. Save the model fit in an object called "lmfit_bw" and display the summary table with `summary()`. +Fit a linear regression model with `LowBirthWeight` as the outcome and `HousingBurden` as the predictor. Save the model fit in an object called "lmfit_bw" and display the summary table with `summary()`. -`LowBirthWeight`: Percentage of newborns that are considered to have a low birthweight +`HousingBurden`: Percentage of housing-burdened low-income households. Households are considered cost-burdened when they spend more than 30% of their income on rent, mortgage payments, and other housing costs -`CES4.0Score`: Score that estimates the environmental health burden of living in a particular census tract. A higher score indicates a greater amount of poor environmental measures for a given area. These measures include things like pollution, exposure to lead, and chance of contaminated groundwater. +`LowBirthWeight`: Percentage of births that are low birth weight. ``` # General format @@ -139,63 +139,65 @@ glm(y ~ x, data = DATASET_NAME) ``` ```{r 2.1response} -lmfit_bw <- glm(LowBirthWeight ~ CES4.0Score, data = ces) +lmfit_bw <- glm(LowBirthWeight ~ HousingBurden, data = ces) summary(lmfit_bw) ``` ### 2.2 -Fit a linear regression model with `LowBirthWeightPctl` as the outcome and `CES4.0Score` and `Poverty` as the predictors. Save the model fit in an object called "lmfit_bw2" and display the summary table. +Take your code from 2.1 and add `Traffic` as another predictor. Save the model fit in an object called "lmfit_bw2" and display the summary table. -`Poverty`: Percent of population living below two times the federal poverty level +`Traffic`: Measure of traffic density within 150 meters of the census tract boundary ```{r 2.2response} -lmfit_bw2 <- glm(LowBirthWeight ~ CES4.0Score + Poverty, data = ces) +lmfit_bw2 <- glm(LowBirthWeight ~ HousingBurden + Traffic, data = ces) summary(lmfit_bw2) ``` # Practice on Your Own! -### P.2 +### P.3 -Fit a linear regression model with `LowBirthWeight` as the outcome, `CES4.0Score` and `Poverty` as the predictors, and interaction between `CES4.0Score` and `Poverty`. +Take your code from 2.2 and add an interaction term. Save the model fit in an object called "lmfit_bw3" and display the summary table. -- To include the interaction, use `CES4.0Score * Poverty` in the formula. +- To include the interaction, use `HousingBurden * Traffic` in the formula. - Save the model fit in an object called "lmfit_bw3" and display the summary table with `summary()`. -```{r P.2response} -lmfit_bw3 <- glm(LowBirthWeight ~ CES4.0Score + Poverty + CES4.0Score * Poverty, data = ces) +```{r P.3response} +lmfit_bw3 <- glm(LowBirthWeight ~ HousingBurden * Traffic, data = ces) summary(lmfit_bw3) ``` -### P.3 +### P.4 + +Let's make `LowBirthWeight` into a binary variable, where over 5% low birth weight is "TRUE". -Fit a logistic regression model where the outcome is whether the CES percentile is above the 50th percentile and predictors are `Poverty` and `Education`, as well as the interaction between `Poverty` and `Education`. You will need to first create a variable "CESPctlMoreThan50" using the `mutate` and `case_when` commands. +The following code creates a column `weight_cat` with TRUE/FALSE values. -Information about the CES4.0 percentile rank is stored in the `CES4.0Percentile` variable. +```{r} +ces_bw <- + ces %>% + mutate(weight_cat = LowBirthWeight > 5) +``` -`CES4.0Percentile`: How the CES4.0Score for a given census tract ranks compared to all the census tracts in California. A higher score means residents particular census tract experience a greater burden of things like pollution compared to other California residents. +Fit a logistic regression model where: -`CESPctlMoreThan50`: In this question, you dividing all the census tracts into two categories: those with greater burden of pollution, and those with a smaller burden of pollution +* The outcome is `weight_cat`. +* `HousingBurden`, `Poverty`, and `Education` are predictors. +* Use `glm` and family = binomial(link = "logit"). +* Save the model fit in an object called "logfit_bw" and display the summary table with `summary()`. `Poverty`: Percent of population living below two times the federal poverty level `Education`: Percent of population over 25 with less than a high school education -- Save the model fit in an object called "logfit_ces" and display the summary table with `summary()`. - -``` -# General format -df <- df %>% mutate(binary_y = case_when(y > 50 ~ 1, y < 50 ~ 0)) -glm(y ~ x, data = DATASET_NAME, family = binomial(link = "logit")) -``` - -```{r P.3response} -ces <- ces %>% - mutate(CESPctlMoreThan50 = - case_when(CES4.0Percentile > 50 ~ 1, CES4.0Percentile < 50 ~ 0)) - -logfit_ces <- glm(CESPctlMoreThan50 ~ Poverty + Education + Poverty * Education, data = ces, family = binomial(link = "logit")) -summary(logfit_ces) +```{r P.4response} +logfit_bw <- + glm( + weight_cat ~ HousingBurden + Poverty + Education, + data = ces_bw, + family = binomial(link = "logit") + ) +summary(logfit_bw) ``` From 58767f3a194afcd7e5b97aa26147a1dfb3b7801a Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 11:38:03 -0400 Subject: [PATCH 4/8] Update Statistics_Lab_Key.Rmd --- modules/Statistics/lab/Statistics_Lab_Key.Rmd | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/Statistics/lab/Statistics_Lab_Key.Rmd b/modules/Statistics/lab/Statistics_Lab_Key.Rmd index a5efd727..a913a429 100644 --- a/modules/Statistics/lab/Statistics_Lab_Key.Rmd +++ b/modules/Statistics/lab/Statistics_Lab_Key.Rmd @@ -49,11 +49,9 @@ cor(ces_sub, use = "complete.obs") Change your code from 1.2 to add a few more variables: -`DieselPM`: Diesel PM emissions from on-road and non-road sources - -`Traffic`: Measure of traffic density within 150 meters of the census tract boundary - -`Asthma`: Age-adjusted rate of emergency department visits for asthma +* `DieselPM`: Diesel PM emissions from on-road and non-road sources. +* `Traffic`: Measure of traffic density within 150 meters of the census tract boundary. +* `Asthma`: Age-adjusted rate of emergency department visits for asthma. ```{r 1.3response} ces_sub <- From 0a0d7d8b9e39dbc6c7c0bbd13ade6b52cbe3c937 Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 11:40:14 -0400 Subject: [PATCH 5/8] Partially resolve #179 --- modules/Statistics/Statistics.Rmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/Statistics/Statistics.Rmd b/modules/Statistics/Statistics.Rmd index 174dd8e4..2ba4bec4 100644 --- a/modules/Statistics/Statistics.Rmd +++ b/modules/Statistics/Statistics.Rmd @@ -719,7 +719,9 @@ Content for similar topics as this course can also be found on Leanpub. 💻 [Lab](https://daseh.org/modules/Statistics/lab/Statistics_Lab.Rmd) -```{r, fig.alt="The End", out.width = "50%", echo = FALSE, fig.align='center'} +📃 [Day 8 Cheatsheet](https://daseh.org/modules/cheatsheets/Day-8.pdf) + +```{r, fig.alt="The End", out.width = "30%", echo = FALSE, fig.align='center'} knitr::include_graphics(here::here("images/the-end-g23b994289_1280.jpg")) ``` From 1ce7c992e70fabb038d3302e15648444340d5f21 Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 12:03:47 -0400 Subject: [PATCH 6/8] Tweaks and resolve rendering issue --- modules/Statistics/Statistics.Rmd | 61 +++++++++++++------------------ 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/modules/Statistics/Statistics.Rmd b/modules/Statistics/Statistics.Rmd index 2ba4bec4..867c1a0f 100644 --- a/modules/Statistics/Statistics.Rmd +++ b/modules/Statistics/Statistics.Rmd @@ -90,9 +90,11 @@ Function `cor()` computes correlation in R. cor(x, y = NULL, use = c("everything", "complete.obs"), method = c("pearson", "kendall", "spearman")) ``` -- provide two numeric vectors of the same length (arguments `x`, `y`), or -- provide a data.frame / tibble with numeric columns only -- by default, Pearson correlation coefficient is computed +
+ +- provide two numeric vectors of the same length (arguments `x`, `y`), or +- provide a data.frame / tibble with numeric columns only +- by default, Pearson correlation coefficient is computed ## Correlation test @@ -111,27 +113,28 @@ cor.test(x, y = NULL, alternative(c("two.sided", "less", "greater")), - less means true correlation coefficient is < 0 (negative relationship) -## Correlation {.small} +## Correlation {.codesmall} Let's look at the dataset of yearly CO2 emissions by country. ```{r cor1, comment="", message = FALSE} -yearly_co2 <- read_csv(file = "https://daseh.org/data/Yearly_CO2_Emissions_1000_tonnes.csv") +yearly_co2 <- + read_csv(file = "https://daseh.org/data/Yearly_CO2_Emissions_1000_tonnes.csv") ``` ## Correlation for two vectors -First, we compute correlation by providing two vectors. +First, we create two vectors. ```{r} # x and y must be numeric vectors -y1980 <- yearly_co2_emissions %>% pull(`1980`) -y1985 <- yearly_co2_emissions %>% pull(`1985`) +y1980 <- yearly_co2 %>% pull(`1980`) +y1985 <- yearly_co2 %>% pull(`1985`) ```
-Like other functions, if there are `NA`s, you get `NA` as the result. But if you specify use only the complete observations, then it will give you correlation using the non-missing data. +Like other functions, if there are `NA`s, you get `NA` as the result. But if you specify `use = "complete.obs"`, then it will give you correlation using the non-missing data. ```{r} cor(y1980, y1985, use = "complete.obs") @@ -156,32 +159,16 @@ glimpse(cor_result) ## Correlation for two vectors with plot{.codesmall} -In plot form... `geom_smooth()` and `annotate()` can help. +In plot form... `geom_smooth()` and `annotate()` can look very nice! ```{r, warning = F} corr_value <- pull(cor_result, estimate) %>% round(digits = 4) cor_label <- paste0("R = ", corr_value) -yearly_co2_emissions %>% +yearly_co2 %>% ggplot(aes(x = `1980`, y = `1985`)) + geom_point(size = 1) + geom_smooth() + annotate("text", x = 2000000, y = 4000000, label = cor_label) ``` - - - - - - - - - - - - - - - - ## Correlation for data frame columns We can compute correlation for all pairs of columns of a data frame / matrix. This is often called, *"computing a correlation matrix"*. @@ -189,13 +176,14 @@ We can compute correlation for all pairs of columns of a data frame / matrix. Th Columns must be all numeric! ```{r} -co2_subset <- yearly_co2_emissions %>% +co2_subset <- yearly_co2 %>% select(c(`1950`, `1980`, `1985`, `2010`)) head(co2_subset) ``` ## Correlation for data frame columns + We can compute correlation for all pairs of columns of a data frame / matrix. This is often called, *"computing a correlation matrix"*. ```{r} @@ -226,12 +214,13 @@ knitr::include_graphics(here::here("images/lyme_and_fried_chicken.png")) ## T-test -The commonly used are: +The commonly used t-tests are: -- **one-sample t-test** -- used to test mean of a variable in one group -- **two-sample t-test** -- used to test difference in means of a variable between two groups (if the "two groups" are data of the *same* individuals collected at 2 time points, we say it is two-sample paired t-test) +- **one-sample t-test** -- used to test mean of a variable in one group +- **two-sample t-test** -- used to test difference in means of a variable between two groups + - if the "two groups" are data of the *same* individuals collected at 2 time points, we say it is two-sample paired t-test) -The `t.test()` function in R is one to address the above. +The `t.test()` function does both. ``` t.test(x, y = NULL, @@ -302,7 +291,7 @@ See [here](https://www.nature.com/articles/nbt1209-1135) for more about multiple ## Some other statistical tests - `wilcox.test()` -- Wilcoxon signed rank test, Wilcoxon rank sum test -- `shapiro.test()` -- Shapiro test +- `shapiro.test()` -- Test normality assumptions - `ks.test()` -- Kolmogorov-Smirnov test - `var.test()`-- Fisher’s F-Test - `chisq.test()` -- Chi-squared test @@ -548,8 +537,10 @@ Maybe we want to use the age group "65+ years" as our reference. We can relevel Relative to the level is not listed. ```{r} -er_temps <- er_temps %>% mutate(age = factor(age, - levels = c("65+ years old", "35-64 years old", "15-34 years old", "5-14 years old", "0-4 years old") +er_temps <- + er_temps %>% + mutate(age = factor(age, + levels = c("65+ years", "35-64 years", "15-34 years", "5-14 years", "0-4 years") )) fit4 <- glm(visits ~ highest_temp + year + age, data = er_temps) From 7c579f4a0eba1ed39fb3cf0d47911e6fd195a5a0 Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 12:42:09 -0400 Subject: [PATCH 7/8] A few more tweaks / gut check --- modules/Statistics/Statistics.Rmd | 72 +++++++++++++--------- modules/Statistics/images/interaction.png | Bin 0 -> 77095 bytes 2 files changed, 44 insertions(+), 28 deletions(-) create mode 100644 modules/Statistics/images/interaction.png diff --git a/modules/Statistics/Statistics.Rmd b/modules/Statistics/Statistics.Rmd index 867c1a0f..5645c4ed 100644 --- a/modules/Statistics/Statistics.Rmd +++ b/modules/Statistics/Statistics.Rmd @@ -112,6 +112,15 @@ cor.test(x, y = NULL, alternative(c("two.sided", "less", "greater")), - greater means true correlation coefficient is > 0 (positive relationship) - less means true correlation coefficient is < 0 (negative relationship) +## GUT CHECK! + +What class of data do you need to calculate a correlation? + +A. Character data + +B. Factor data + +C. Numeric data ## Correlation {.codesmall} @@ -140,7 +149,6 @@ Like other functions, if there are `NA`s, you get `NA` as the result. But if yo cor(y1980, y1985, use = "complete.obs") ``` - ## Correlation coefficient calculation and test ```{r} @@ -440,13 +448,17 @@ For example, if we want to fit a regression model where outcome is `income` and `income ~ years_of_education + age + location`

-## Linear regression +## Linear regression example Let's look variables that might be able to predict the number of heat-related ER visits in Colorado. We'll use the dataset that has ER visits separated out by age category. -We'll combine this with a new dataset that has some weather information about summer temperatures in Denver, downloaded from [https://www.weather.gov/bou/DenverSummerHeat](https://www.weather.gov/bou/DenverSummerHeat). We will use this as a proxy for temperatures for the state of CO as a whole for this example. +We'll combine this with a new dataset that has some weather information about summer temperatures in Denver, downloaded from [https://www.weather.gov/bou/DenverSummerHeat](https://www.weather.gov/bou/DenverSummerHeat). + +We will use this as a proxy for temperatures for the state of CO as a whole for this example. + +## Linear regression example{.codesmall} ```{r} er <- read_csv(file = "https://daseh.org/data/CO_ER_heat_visits_by_age.csv") @@ -519,7 +531,6 @@ er_temps <- er_temps %>% mutate(age = factor(age)) ``` - ## Linear regression: factors {.smaller} The comparison group that is not listed is treated as intercept. All other estimates are relative to the intercept. @@ -534,7 +545,7 @@ summary(fit3) Maybe we want to use the age group "65+ years" as our reference. We can relevel the factor. -Relative to the level is not listed. +The ages are relative to the level that is not listed. ```{r} er_temps <- @@ -553,13 +564,21 @@ You can view estimates for the comparison group by removing the intercept in the `y ~ x - 1` -*Caveat* is that the p-values change. +*Caveat* is that the p-values change, and interpretation is often confusing. ```{r regress9, comment="", fig.height=4, fig.width=8} fit5 <- glm(visits ~ highest_temp + year + age - 1, data = er_temps) summary(fit5) ``` +## Linear regression: interactions + +```{r, fig.alt="Statistical interaction showing the relationship between cookie yield, temperature, and cooking duration.", out.width = "70%", echo = FALSE, fig.align='center'} +knitr::include_graphics("images/interaction.png") +``` + +[source](https://en.wikipedia.org/wiki/Interaction_(statistics)#/media/File:Interaction_plot_cookie_baking.svg) + ## Linear regression: interactions {.smaller} You can also specify interactions between variables in a formula `y ~ x1 + x2 + x1 * x2`. This allows for not only the intercepts between factors to differ, but also the slopes with regard to the interacting variable. @@ -605,19 +624,15 @@ We will create a new binary variable `high_rate`. We will say a visit rate of mo ```{r} er_temps <- - er_temps %>% - mutate( - high_rate = case_when( - rate > 8 ~ 1, - TRUE ~ 0)) + er_temps %>% mutate(high_rate = rate > 8) + +glimpse(er_temps) ``` ## Logistic regression {.smaller} -Now that we've created the `high_rate` variable (where a 1 indicates that there was a visit rate greater than 8), we can run a logistic regression. - -Let's explore how `highest_temp`, `year`, and `age` might predict `high rate`. +Let's explore how `highest_temp`, `year`, and `age` might predict `high_rate`. ``` # General format @@ -640,39 +655,40 @@ See this [case study](https://www.opencasestudies.org/ocs-bp-vaping-case-study/# Check out [this paper](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2938757/). +Use `oddsratio(x, y)` from the `epitools()` package to calculate odds ratios. ## Odds ratios {.smaller} -Use `oddsratio(x, y)` from the `epitools()` package to calculate odds ratios. - During the years 2012, 2018, 2021, and 2022, there were multiple consecutive days with temperatures above 100 degrees. We will code this as `heatwave`. -In this case, we're calculating the odds ratio for whether a heatwave is associated with having a visit rate greater than 8. - ```{r} library(epitools) er_temps <- er_temps %>% - mutate( - heatwave = case_when( - year == 2012 ~ 1, - year == 2018 ~ 1, - year == 2021 ~ 1, - year == 2022 ~ 1, - TRUE ~ 0)) + mutate(heatwave = year %in% c(2012, 2018, 2021, 2022)) + +glimpse(er_temps) +``` + +## Odds ratios {.smaller} +In this case, we're calculating the odds ratio for whether a heatwave is associated with having a visit rate greater than 8. + +```{r} response <- er_temps %>% pull(high_rate) predictor <- er_temps %>% pull(heatwave) + +oddsratio(predictor, response) ``` ## Odds ratios {.smaller} -Use `oddsratio(x, y)` from the `epitools()` package to calculate odds ratios. +The Odds Ratio is 3.86. -In this case, we're calculating the odds ratio for whether a heatwave is associated with having a visit rate greater than 8. +When the predictor is TRUE (aka it was a heatwave year), the odds of the response (high hospital visitation) are 3.86 times greater than when it is FALSE (not a heatwave year). -```{r} +```{r echo = FALSE} oddsratio(predictor, response) ``` diff --git a/modules/Statistics/images/interaction.png b/modules/Statistics/images/interaction.png new file mode 100644 index 0000000000000000000000000000000000000000..de924b5178bbcbf7a3cdf00955c07e1982bd061b GIT binary patch literal 77095 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 literal 0 HcmV?d00001 From 45fcc5eb07574c88e3fb81e0e87d61de9ef75efa Mon Sep 17 00:00:00 2001 From: avahoffman Date: Wed, 9 Oct 2024 12:44:58 -0400 Subject: [PATCH 8/8] Mention standardization - note for next time --- modules/Statistics/Statistics.Rmd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/Statistics/Statistics.Rmd b/modules/Statistics/Statistics.Rmd index 5645c4ed..358f12de 100644 --- a/modules/Statistics/Statistics.Rmd +++ b/modules/Statistics/Statistics.Rmd @@ -396,6 +396,8 @@ We typically provide two arguments: - `formula` -- model formula written using names of columns in our data - `data` -- our data frame + + ## Linear regression fit in R: model formula Model formula