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=