The objectives of this problem set is to orient you to a number of
activities in R and to conduct a thoughtful exercise in
appreciating the importance of data visualization. For each question
enter your code or text response in the code chunk that
completes/answers the activity or question requested. To submit this
homework you will create the document in Rstudio, using the knitr
package (button included in Rstudio) and then submit the document to
your Rpubs account. Once uploaded you
will submit the link to that document on Canvas. Please make sure that
this link is hyper linked and that I can see the visualization and the
code required to create it. Each question is worth 5 points.
anscombe data that is part of the
library(datasets) in R. And assign that data
to a new object called data.library(datasets)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.2
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 1.0.1
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.3 ✔ forcats 0.5.2
## Warning: package 'purrr' was built under R version 4.2.2
## Warning: package 'dplyr' was built under R version 4.2.2
## Warning: package 'forcats' was built under R version 4.2.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(reshape)
## Warning: package 'reshape' was built under R version 4.2.2
##
## Attaching package: 'reshape'
##
## The following object is masked from 'package:dplyr':
##
## rename
##
## The following objects are masked from 'package:tidyr':
##
## expand, smiths
#install.packages("gridExtra")
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.2.2
##
## Attaching package: 'gridExtra'
##
## The following object is masked from 'package:dplyr':
##
## combine
data = datasets::anscombe
head(data)
## x1 x2 x3 x4 y1 y2 y3 y4
## 1 10 10 10 8 8.04 9.14 7.46 6.58
## 2 8 8 8 8 6.95 8.14 6.77 5.76
## 3 13 13 13 8 7.58 8.74 12.74 7.71
## 4 9 9 9 8 8.81 8.77 7.11 8.84
## 5 11 11 11 8 8.33 9.26 7.81 8.47
## 6 14 14 14 8 9.96 8.10 8.84 7.04
summary(data)
## x1 x2 x3 x4 y1
## Min. : 4.0 Min. : 4.0 Min. : 4.0 Min. : 8 Min. : 4.260
## 1st Qu.: 6.5 1st Qu.: 6.5 1st Qu.: 6.5 1st Qu.: 8 1st Qu.: 6.315
## Median : 9.0 Median : 9.0 Median : 9.0 Median : 8 Median : 7.580
## Mean : 9.0 Mean : 9.0 Mean : 9.0 Mean : 9 Mean : 7.501
## 3rd Qu.:11.5 3rd Qu.:11.5 3rd Qu.:11.5 3rd Qu.: 8 3rd Qu.: 8.570
## Max. :14.0 Max. :14.0 Max. :14.0 Max. :19 Max. :10.840
## y2 y3 y4
## Min. :3.100 Min. : 5.39 Min. : 5.250
## 1st Qu.:6.695 1st Qu.: 6.25 1st Qu.: 6.170
## Median :8.140 Median : 7.11 Median : 7.040
## Mean :7.501 Mean : 7.50 Mean : 7.501
## 3rd Qu.:8.950 3rd Qu.: 7.98 3rd Qu.: 8.190
## Max. :9.260 Max. :12.74 Max. :12.500
dplyr package!)library(dplyr)
sapply(data, mean)
## x1 x2 x3 x4 y1 y2 y3 y4
## 9.000000 9.000000 9.000000 9.000000 7.500909 7.500909 7.500000 7.500909
sapply(data, var)
## x1 x2 x3 x4 y1 y2 y3 y4
## 11.000000 11.000000 11.000000 11.000000 4.127269 4.127629 4.122620 4.123249
cor(data[,1:4],data[,5:8])
## y1 y2 y3 y4
## x1 0.8164205 0.8162365 0.8162867 -0.3140467
## x2 0.8164205 0.8162365 0.8162867 -0.3140467
## x3 0.8164205 0.8162365 0.8162867 -0.3140467
## x4 -0.5290927 -0.7184365 -0.3446610 0.8165214
plot1 = ggplot(data, aes(x=x1, y=y1)) +
geom_point() +
labs(title="X/Y Pair 1")
plot2 = ggplot(data, aes(x=x2, y=y2)) +
geom_point() +
labs(title="X/Y Pair 2")
plot3 = ggplot(data, aes(x=x3, y=y3)) +
geom_point() +
labs(title="X/Y Pair 3")
plot4 = ggplot(data, aes(x=x4, y=y4)) +
geom_point() +
labs(title="X/Y Pair 4")
grid.arrange(plot1, plot2, plot3, plot4, nrow = 2, ncol = 2)
plot1blue = ggplot(data, aes(x=x1, y=y1)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 1")
plot2blue = ggplot(data, aes(x=x2, y=y2)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 2")
plot3blue = ggplot(data, aes(x=x3, y=y3)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 3")
plot4blue = ggplot(data, aes(x=x4, y=y4)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 4")
grid.arrange(plot1blue, plot2blue, plot3blue, plot4blue, nrow = 2, ncol = 2)
lm()
function.lm1 = lm(data$x1~data$y1)
lm2 = lm(data$x2~data$y2)
lm3 = lm(data$x3~data$y3)
lm4 = lm(data$x4~data$y4)
plot1blue = ggplot(data, aes(x=x1, y=y1)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 1")+
geom_smooth(method="lm",color = "green", se=FALSE)
plot2blue = ggplot(data, aes(x=x2, y=y2)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 2")+
geom_smooth(method="lm",color = "green", se=FALSE)
plot3blue = ggplot(data, aes(x=x3, y=y3)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 3")+
geom_smooth(method="lm",color = "green", se=FALSE)
plot4blue = ggplot(data, aes(x=x4, y=y4)) +
geom_point(color = "blue") +
labs(title="X/Y Pair 4")+
geom_smooth(method="lm",color = "green", se=FALSE)
grid.arrange(plot1blue, plot2blue, plot3blue, plot4blue, nrow = 2, ncol = 2)
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
anova(lm1)
Analysis of Variance Table
Response: data\(x1 Df Sum Sq Mean Sq F
value Pr(>F) data\)y1 1 73.32 73.320 17.99 0.00217 **
Residuals 9 36.68 4.076
— Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05
‘.’ 0.1 ’ ’ 1
anova(lm2)
Analysis of Variance Table
Response: data\(x2 Df Sum Sq Mean Sq F
value Pr(>F) data\)y2 1 73.287 73.287 17.966 0.002179 **
Residuals 9 36.713 4.079
— Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05
‘.’ 0.1 ’ ’ 1
anova(lm3)
Analysis of Variance Table
Response: data\(x3 Df Sum Sq Mean Sq F
value Pr(>F) data\)y3 1 73.296 73.296 17.972 0.002176 **
Residuals 9 36.704 4.078
— Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05
‘.’ 0.1 ’ ’ 1
anova(lm4)
Analysis of Variance Table
Response: data\(x4 Df Sum Sq Mean Sq F
value Pr(>F) data\)y4 1 73.338 73.338 18.003 0.002165 **
Residuals 9 36.662 4.074
— Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05
‘.’ 0.1 ’ ’ 1
From the data & Anscombre we ran above, what we can identify is that all of the four data sets/models that we ran are very similar. If you look at the linear regression in question 6, we can notice that all four of the data sets have similar fits. Additionally, this is confirmed when we ran specific statistics such as standard deviation and mean, with all foru data sets having similar points as can be seen in question 2, with just slight variation between data sets.Thus from the above we can see the importance of data visualization when trying to understand data and analyze data.