This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.

library(dplyr)
library(ggplot2)
data <- read.csv("~/Downloads/DIDA325/2016_2021_US_BIRTHS.csv")
average_births <- data %>%
  group_by(Education.Level.of.Mother) %>%
  summarize(Average_Births = mean(Number.of.Births))

Summary of Births Table

Using the data set, the variables applied are the Education Level, the Number of Births, and the Average age of Mother in years in order to understand the average Education Level of Mothers and the Number of Births associated

summary_births <- data %>%
  select(c(Education.Level.Code, Number.of.Births, Average.Age.of.Mother..years.))
mean1 <- summary_births %>% summarise(across(everything(), mean, na.rm=TRUE))
Warning: There was 1 warning in `summarise()`.
ℹ In argument: `across(everything(), mean, na.rm = TRUE)`.
Caused by warning:
! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
Supply arguments directly to `.fns` through an anonymous function instead.

  # Previously
  across(a:b, mean, na.rm = TRUE)

  # Now
  across(a:b, \(x) mean(x, na.rm = TRUE))
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.
sd1 <- summary_births %>% summarise(across(everything(), sd, na.rm=TRUE))
min1 <- summary_births %>% summarise(across(everything(), min, na.rm=TRUE))
max1 <- summary_births %>% summarise(across(everything(), max, na.rm=TRUE))

table <- rbind(mean1, sd1, min1, max1)

rownames(table) <- c("Mean", "Standard Deviation", "Minimum", "Maximum")

table <- t(table)

options(scipen = 999)

table <- table %>% 
  as.data.frame %>% 
  mutate_if(is.numeric, round, digits=2)

library(kableExtra)

Attaching package: ‘kableExtra’

The following object is masked from ‘package:dplyr’:

    group_rows
table %>%
kbl(caption = "<center><strong>Summary Table of Education, Birth rate, and Average Age of Mothers</strong></center>",
    format = "html") %>%
  kable_classic_2("striped", full_width = F)
Summary Table of Education, Birth rate, and Average Age of Mothers
Mean Standard Deviation Minimum Maximum
Education.Level.Code 3.03 4.73 -9.0 8.0
Number.of.Births 4115.44 6687.04 10.0 59967.0
Average.Age.of.Mother..years. 29.55 2.78 23.1 35.5
births <- data %>%
  select(c(Number.of.Births, Year))

Distribution of the Number of Births

Using the geom_histogram method we analyze the number of births in relation to the Year

library(ggplot2)
ggplot(data, aes(x = Number.of.Births))+
  geom_histogram(fill = "skyblue", color = "white", bins = 6)+
  theme_minimal()+
  labs(title = "Distribution of the Number of Births", bold = T)

Analysis of Education in relation to Number of Births

This table is created to analyze how the number of births changes based on the Education Level Code (years in school). The aim was to understand at what point in a woman’s life was she the most likely to give birth. The select, group_by, and summarise method used to create the table.

library(kableExtra)
education <- data %>% 
  select(Education.Level.of.Mother, Education.Level.Code, Year, Number.of.Births, Average.Age.of.Mother..years.) %>% 
  group_by(Education.Level.of.Mother) %>% 
  summarise(across(Number.of.Births:Average.Age.of.Mother..years., mean, na.rm=T)) %>% 
  mutate_if(is.numeric, round, digits=2)

type <- education
#Set conditional cell specification
type$Number.of.Births = cell_spec(type$Number.of.Births, background = ifelse(type$Number.of.Births > 7000.00, "magenta", "pink"), color = "black", bold = T)
type$Average.Age.of.Mother..years. = cell_spec(type$Average.Age.of.Mother..years., background = ifelse(type$Average.Age.of.Mother..years. >30.00, "skyblue", "lavender"), color = "black", bold = T)
#print table
type %>%
  kbl(caption = "<center><strong>Education and Births </strong></center>",
    format = "html" , escape = F, align = "c") %>%
  kable_classic_2("striped", full_width = F)
Education and Births
Education.Level.of.Mother Number.of.Births Average.Age.of.Mother..years.
8th grade or less 1158.25 29.41
9th through 12th grade with no diploma 3409.12 25.06
Associate degree (AA, AS) 3051.8 29.86
Bachelor's degree (BA, AB, BS) 7603.24 31.23
Doctorate (PhD, EdD) or Professional Degree (MD, DDS, DVM, LLB, JD) 1025.66 33.7
High school graduate or GED completed 9437.77 26.49
Master's degree (MA, MS, MEng, MEd, MSW, MBA) 3531.12 32.78
Some college credit, but not a degree 7230.83 28.07
Unknown or Not Stated 520.71 29.36
NA

Analysis of Education Level vs Number of Births

library(ggplot2)
ggplot(education) + 
  geom_point(aes(x = Education.Level.of.Mother, y = Number.of.Births), color = "blue") + 
  labs(y = "# of Births", x = "Education", 
       title = "Education Level of Mother vs Number of Births") + theme(axis.text.x = element_text(angle = 45, hjust = 1))

Regression Analysis of Year vs Number of Births and Number of Births vs Education Level

library(ggplot2)
library(cowplot)
a <- ggplot(data) +
  geom_point(aes(x = Year, y = Number.of.Births, color = Average.Age.of.Mother..years.))+
  geom_smooth(method = "lm", aes(x = Year, y = Number.of.Births))+
  theme_minimal()+
  labs(title = "Year vs Number of Births")

b <- ggplot(data)+
  geom_point(aes(x = Number.of.Births , y = Education.Level.Code, color = Average.Age.of.Mother..years.))+
  geom_smooth(method = "lm", aes(x = Number.of.Births, y = Education.Level.Code))+
  theme_minimal()+
  labs(title = "Number of Births vs Education Level Code")

plot_grid(a, b, nrow = 1)
`geom_smooth()` using formula = 'y ~ x'`geom_smooth()` using formula = 'y ~ x'

LS0tCnRpdGxlOiAiQW5heWxzaXMgb2YgQmlydGhzIGluIHRoZSBVbml0ZWQgU3RhdGVzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLgoKVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkNtZCtTaGlmdCtFbnRlciouCgpgYGB7cn0KbGlicmFyeShkcGx5cikKbGlicmFyeShnZ3Bsb3QyKQpgYGAKCmBgYHtyfQpkYXRhIDwtIHJlYWQuY3N2KCJ+L0Rvd25sb2Fkcy9ESURBMzI1LzIwMTZfMjAyMV9VU19CSVJUSFMuY3N2IikKYGBgCgpgYGB7cn0KYXZlcmFnZV9iaXJ0aHMgPC0gZGF0YSAlPiUKICBncm91cF9ieShFZHVjYXRpb24uTGV2ZWwub2YuTW90aGVyKSAlPiUKICBzdW1tYXJpemUoQXZlcmFnZV9CaXJ0aHMgPSBtZWFuKE51bWJlci5vZi5CaXJ0aHMpKQpgYGAKCiMjIFN1bW1hcnkgb2YgQmlydGhzIFRhYmxlIAoKVXNpbmcgdGhlIGRhdGEgc2V0LCB0aGUgdmFyaWFibGVzIGFwcGxpZWQgYXJlIHRoZSBFZHVjYXRpb24gTGV2ZWwsIHRoZSBOdW1iZXIgb2YgQmlydGhzLCBhbmQgdGhlIEF2ZXJhZ2UgYWdlIG9mIE1vdGhlciBpbiB5ZWFycyBpbiBvcmRlciB0byB1bmRlcnN0YW5kIHRoZSBhdmVyYWdlIEVkdWNhdGlvbiBMZXZlbCBvZiBNb3RoZXJzIGFuZCB0aGUgTnVtYmVyIG9mIEJpcnRocyBhc3NvY2lhdGVkCgpgYGB7cn0Kc3VtbWFyeV9iaXJ0aHMgPC0gZGF0YSAlPiUKICBzZWxlY3QoYyhFZHVjYXRpb24uTGV2ZWwuQ29kZSwgTnVtYmVyLm9mLkJpcnRocywgQXZlcmFnZS5BZ2Uub2YuTW90aGVyLi55ZWFycy4pKQptZWFuMSA8LSBzdW1tYXJ5X2JpcnRocyAlPiUgc3VtbWFyaXNlKGFjcm9zcyhldmVyeXRoaW5nKCksIG1lYW4sIG5hLnJtPVRSVUUpKQpzZDEgPC0gc3VtbWFyeV9iaXJ0aHMgJT4lIHN1bW1hcmlzZShhY3Jvc3MoZXZlcnl0aGluZygpLCBzZCwgbmEucm09VFJVRSkpCm1pbjEgPC0gc3VtbWFyeV9iaXJ0aHMgJT4lIHN1bW1hcmlzZShhY3Jvc3MoZXZlcnl0aGluZygpLCBtaW4sIG5hLnJtPVRSVUUpKQptYXgxIDwtIHN1bW1hcnlfYmlydGhzICU+JSBzdW1tYXJpc2UoYWNyb3NzKGV2ZXJ5dGhpbmcoKSwgbWF4LCBuYS5ybT1UUlVFKSkKCnRhYmxlIDwtIHJiaW5kKG1lYW4xLCBzZDEsIG1pbjEsIG1heDEpCgpyb3duYW1lcyh0YWJsZSkgPC0gYygiTWVhbiIsICJTdGFuZGFyZCBEZXZpYXRpb24iLCAiTWluaW11bSIsICJNYXhpbXVtIikKCnRhYmxlIDwtIHQodGFibGUpCgpvcHRpb25zKHNjaXBlbiA9IDk5OSkKCnRhYmxlIDwtIHRhYmxlICU+JSAKICBhcy5kYXRhLmZyYW1lICU+JSAKICBtdXRhdGVfaWYoaXMubnVtZXJpYywgcm91bmQsIGRpZ2l0cz0yKQoKbGlicmFyeShrYWJsZUV4dHJhKQoKdGFibGUgJT4lCmtibChjYXB0aW9uID0gIjxjZW50ZXI+PHN0cm9uZz5TdW1tYXJ5IFRhYmxlIG9mIEVkdWNhdGlvbiwgQmlydGggcmF0ZSwgYW5kIEF2ZXJhZ2UgQWdlIG9mIE1vdGhlcnM8L3N0cm9uZz48L2NlbnRlcj4iLAogICAgZm9ybWF0ID0gImh0bWwiKSAlPiUKICBrYWJsZV9jbGFzc2ljXzIoInN0cmlwZWQiLCBmdWxsX3dpZHRoID0gRikKYGBgCgpgYGB7cn0KYmlydGhzIDwtIGRhdGEgJT4lCiAgc2VsZWN0KGMoTnVtYmVyLm9mLkJpcnRocywgWWVhcikpCmBgYAoKIyMgRGlzdHJpYnV0aW9uIG9mIHRoZSBOdW1iZXIgb2YgQmlydGhzIAoKVXNpbmcgdGhlIGdlb21faGlzdG9ncmFtIG1ldGhvZCB3ZSBhbmFseXplIHRoZSBudW1iZXIgb2YgYmlydGhzIGluIHJlbGF0aW9uIHRvIHRoZSBZZWFyCgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSBOdW1iZXIub2YuQmlydGhzKSkrCiAgZ2VvbV9oaXN0b2dyYW0oZmlsbCA9ICJza3libHVlIiwgY29sb3IgPSAid2hpdGUiLCBiaW5zID0gNikrCiAgdGhlbWVfbWluaW1hbCgpKwogIGxhYnModGl0bGUgPSAiRGlzdHJpYnV0aW9uIG9mIHRoZSBOdW1iZXIgb2YgQmlydGhzIiwgYm9sZCA9IFQpCmBgYAoKIyMgQW5hbHlzaXMgb2YgRWR1Y2F0aW9uIGluIHJlbGF0aW9uIHRvIE51bWJlciBvZiBCaXJ0aHMKClRoaXMgdGFibGUgaXMgY3JlYXRlZCB0byBhbmFseXplIGhvdyB0aGUgbnVtYmVyIG9mIGJpcnRocyBjaGFuZ2VzIGJhc2VkIG9uIHRoZSBFZHVjYXRpb24gTGV2ZWwgQ29kZSAoeWVhcnMgaW4gc2Nob29sKS4gVGhlIGFpbSB3YXMgdG8gdW5kZXJzdGFuZCBhdCB3aGF0IHBvaW50IGluIGEgd29tYW4ncyBsaWZlIHdhcyBzaGUgdGhlIG1vc3QgbGlrZWx5IHRvIGdpdmUgYmlydGguIFRoZSBzZWxlY3QsIGdyb3VwX2J5LCBhbmQgc3VtbWFyaXNlIG1ldGhvZCB1c2VkIHRvIGNyZWF0ZSB0aGUgdGFibGUuCgpgYGB7cn0KbGlicmFyeShrYWJsZUV4dHJhKQplZHVjYXRpb24gPC0gZGF0YSAlPiUgCiAgc2VsZWN0KEVkdWNhdGlvbi5MZXZlbC5vZi5Nb3RoZXIsIEVkdWNhdGlvbi5MZXZlbC5Db2RlLCBZZWFyLCBOdW1iZXIub2YuQmlydGhzLCBBdmVyYWdlLkFnZS5vZi5Nb3RoZXIuLnllYXJzLikgJT4lIAogIGdyb3VwX2J5KEVkdWNhdGlvbi5MZXZlbC5vZi5Nb3RoZXIpICU+JSAKICBzdW1tYXJpc2UoYWNyb3NzKE51bWJlci5vZi5CaXJ0aHM6QXZlcmFnZS5BZ2Uub2YuTW90aGVyLi55ZWFycy4sIG1lYW4sIG5hLnJtPVQpKSAlPiUgCiAgbXV0YXRlX2lmKGlzLm51bWVyaWMsIHJvdW5kLCBkaWdpdHM9MikKCnR5cGUgPC0gZWR1Y2F0aW9uCiNTZXQgY29uZGl0aW9uYWwgY2VsbCBzcGVjaWZpY2F0aW9uCnR5cGUkTnVtYmVyLm9mLkJpcnRocyA9IGNlbGxfc3BlYyh0eXBlJE51bWJlci5vZi5CaXJ0aHMsIGJhY2tncm91bmQgPSBpZmVsc2UodHlwZSROdW1iZXIub2YuQmlydGhzID4gNzAwMC4wMCwgIm1hZ2VudGEiLCAicGluayIpLCBjb2xvciA9ICJibGFjayIsIGJvbGQgPSBUKQp0eXBlJEF2ZXJhZ2UuQWdlLm9mLk1vdGhlci4ueWVhcnMuID0gY2VsbF9zcGVjKHR5cGUkQXZlcmFnZS5BZ2Uub2YuTW90aGVyLi55ZWFycy4sIGJhY2tncm91bmQgPSBpZmVsc2UodHlwZSRBdmVyYWdlLkFnZS5vZi5Nb3RoZXIuLnllYXJzLiA+MzAuMDAsICJza3libHVlIiwgImxhdmVuZGVyIiksIGNvbG9yID0gImJsYWNrIiwgYm9sZCA9IFQpCiNwcmludCB0YWJsZQp0eXBlICU+JQogIGtibChjYXB0aW9uID0gIjxjZW50ZXI+PHN0cm9uZz5FZHVjYXRpb24gYW5kIEJpcnRocyA8L3N0cm9uZz48L2NlbnRlcj4iLAogICAgZm9ybWF0ID0gImh0bWwiICwgZXNjYXBlID0gRiwgYWxpZ24gPSAiYyIpICU+JQogIGthYmxlX2NsYXNzaWNfMigic3RyaXBlZCIsIGZ1bGxfd2lkdGggPSBGKQoKYGBgCgojIyBBbmFseXNpcyBvZiBFZHVjYXRpb24gTGV2ZWwgdnMgTnVtYmVyIG9mIEJpcnRocyAKCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCmdncGxvdChlZHVjYXRpb24pICsgCiAgZ2VvbV9wb2ludChhZXMoeCA9IEVkdWNhdGlvbi5MZXZlbC5vZi5Nb3RoZXIsIHkgPSBOdW1iZXIub2YuQmlydGhzKSwgY29sb3IgPSAiYmx1ZSIpICsgCiAgbGFicyh5ID0gIiMgb2YgQmlydGhzIiwgeCA9ICJFZHVjYXRpb24iLCAKICAgICAgIHRpdGxlID0gIkVkdWNhdGlvbiBMZXZlbCBvZiBNb3RoZXIgdnMgTnVtYmVyIG9mIEJpcnRocyIpICsgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxKSkKCmBgYAoKIyMgUmVncmVzc2lvbiBBbmFseXNpcyBvZiBZZWFyIHZzIE51bWJlciBvZiBCaXJ0aHMgYW5kIE51bWJlciBvZiBCaXJ0aHMgdnMgRWR1Y2F0aW9uIExldmVsIAoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShjb3dwbG90KQphIDwtIGdncGxvdChkYXRhKSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IFllYXIsIHkgPSBOdW1iZXIub2YuQmlydGhzLCBjb2xvciA9IEF2ZXJhZ2UuQWdlLm9mLk1vdGhlci4ueWVhcnMuKSkrCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgYWVzKHggPSBZZWFyLCB5ID0gTnVtYmVyLm9mLkJpcnRocykpKwogIHRoZW1lX21pbmltYWwoKSsKICBsYWJzKHRpdGxlID0gIlllYXIgdnMgTnVtYmVyIG9mIEJpcnRocyIpCgpiIDwtIGdncGxvdChkYXRhKSsKICBnZW9tX3BvaW50KGFlcyh4ID0gTnVtYmVyLm9mLkJpcnRocyAsIHkgPSBFZHVjYXRpb24uTGV2ZWwuQ29kZSwgY29sb3IgPSBBdmVyYWdlLkFnZS5vZi5Nb3RoZXIuLnllYXJzLikpKwogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGFlcyh4ID0gTnVtYmVyLm9mLkJpcnRocywgeSA9IEVkdWNhdGlvbi5MZXZlbC5Db2RlKSkrCiAgdGhlbWVfbWluaW1hbCgpKwogIGxhYnModGl0bGUgPSAiTnVtYmVyIG9mIEJpcnRocyB2cyBFZHVjYXRpb24gTGV2ZWwgQ29kZSIpCgpwbG90X2dyaWQoYSwgYiwgbnJvdyA9IDEpCmBgYAo=