This is my regression analysis of the percent of college graduates in relation to family income in different TN counties. According to our Pr(>|t|) our results are significantly different statistically because this number is <0.05. our independent variable is family incomes, and the dependent is percent of college graduates. as you can see williamson county is much more widely educated than surrounding counties making it an outlier. the relationship between the two groups is positive because as college grads increase so does income.
if (!require("dplyr"))
install.packages("dplyr")
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
if (!require("tidyverse"))
install.packages("tidyverse")
## Loading required package: tidyverse
## Warning: package 'tidyverse' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ ggplot2 3.4.4 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(ggplot2)
mydata <- read.csv("https://raw.githubusercontent.com/drkblake/Data/main/Educ_Income_2022.csv")
mydata$DV <- mydata$PctCollege
mydata$IV <- mydata$FamIncome
ggplot(mydata, aes(x = DV)) + geom_histogram(color = "black", fill = "#1f78b4")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(mydata, aes(x = IV)) + geom_histogram(color = "black", fill = "#1f78b4")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
options(scipen = 999)
myreg <- lm(DV ~ IV,
data = mydata)
plot(mydata$IV, mydata$DV)
abline(lm(mydata$DV ~ mydata$IV))
summary(myreg)
##
## Call:
## lm(formula = DV ~ IV, data = mydata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.0510 -3.1047 -0.3815 3.1929 15.9863
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -17.59952875 2.52111063 -6.981 0.000000000428 ***
## IV 0.00052124 0.00003511 14.846 < 0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.672 on 93 degrees of freedom
## Multiple R-squared: 0.7032, Adjusted R-squared: 0.7001
## F-statistic: 220.4 on 1 and 93 DF, p-value: < 0.00000000000000022