Examining the relationship between county demogrpahic factors and voting outcomes

## Warning: package 'ggplot2' was built under R version 4.0.4
## Warning: package 'tidyr' was built under R version 4.0.4
## Warning: package 'forcats' was built under R version 4.0.4
## Warning: package 'psych' was built under R version 4.0.3

Summary of our data

myData <- read_csv("votes.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   state_abbr = col_character(),
##   county_name = col_character(),
##   area_name = col_character(),
##   state_abbreviation = col_character()
## )
## See spec(...) for full column specifications.
str(myData) 
## tibble [3,112 x 82] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ X1                 : num [1:3112] 30 31 32 33 34 35 36 37 38 39 ...
##  $ X                  : num [1:3112] 29 30 31 32 33 34 35 36 37 38 ...
##  $ combined_fips      : num [1:3112] 1001 1003 1005 1007 1009 ...
##  $ votes_dem_2016     : num [1:3112] 5908 18409 4848 1874 2150 ...
##  $ votes_gop_2016     : num [1:3112] 18110 72780 5431 6733 22808 ...
##  $ total_votes_2016   : num [1:3112] 24661 94090 10390 8748 25384 ...
##  $ Clinton            : num [1:3112] 0.2396 0.1957 0.4666 0.2142 0.0847 ...
##  $ Trump              : num [1:3112] 0.734 0.774 0.523 0.77 0.899 ...
##  $ diff_2016          : num [1:3112] 12202 54371 583 4859 20658 ...
##  $ per_point_diff_2016: num [1:3112] -0.4948 -0.5779 -0.0561 -0.5554 -0.8138 ...
##  $ state_abbr         : chr [1:3112] "AL" "AL" "AL" "AL" ...
##  $ county_name        : chr [1:3112] "Autauga County" "Baldwin County" "Barbour County" "Bibb County" ...
##  $ FIPS               : num [1:3112] 1001 1003 1005 1007 1009 ...
##  $ total_votes_2012   : num [1:3112] 23909 84988 11459 8391 23980 ...
##  $ votes_dem_2012     : num [1:3112] 6354 18329 5873 2200 2961 ...
##  $ votes_gop_2012     : num [1:3112] 17366 65772 5539 6131 20741 ...
##  $ county_fips        : num [1:3112] 1001 1003 1005 1007 1009 ...
##  $ state_fips         : num [1:3112] 1 1 1 1 1 1 1 1 1 1 ...
##  $ Obama              : num [1:3112] 0.266 0.216 0.513 0.262 0.123 ...
##  $ Romney             : num [1:3112] 0.726 0.774 0.483 0.731 0.865 ...
##  $ diff_2012          : num [1:3112] 11012 47443 334 3931 17780 ...
##  $ per_point_diff_2012: num [1:3112] -0.4606 -0.5582 0.0291 -0.4685 -0.7415 ...
##  $ fips               : num [1:3112] 1001 1003 1005 1007 1009 ...
##  $ area_name          : chr [1:3112] "Autauga County" "Baldwin County" "Barbour County" "Bibb County" ...
##  $ state_abbreviation : chr [1:3112] "AL" "AL" "AL" "AL" ...
##  $ population2014     : num [1:3112] 55395 200111 26887 22506 57719 ...
##  $ population2010     : num [1:3112] 54571 182265 27457 22919 57322 ...
##  $ population_change  : num [1:3112] 1.5 9.8 -2.1 -1.8 0.7 -1.4 -3.1 -2.3 -0.3 0.2 ...
##  $ POP010210          : num [1:3112] 54571 182265 27457 22915 57322 ...
##  $ AGE135214          : num [1:3112] 6 5.6 5.7 5.3 6.1 6.3 6.1 5.7 5.9 4.8 ...
##  $ AGE295214          : num [1:3112] 25.2 22.2 21.2 21 23.6 21.4 23.6 22.2 21.4 20.4 ...
##  $ age65plus          : num [1:3112] 13.8 18.7 16.5 14.8 17 14.9 18 16 18.3 20.9 ...
##  $ SEX255214          : num [1:3112] 51.4 51.2 46.6 45.9 50.5 45.3 53.6 51.8 52.3 50.2 ...
##  $ White              : num [1:3112] 0.779 0.871 0.502 0.763 0.96 0.269 0.539 0.758 0.583 0.93 ...
##  $ Black              : num [1:3112] 0.187 0.096 0.476 0.221 0.018 0.701 0.44 0.211 0.395 0.046 ...
##  $ RHI325214          : num [1:3112] 0.5 0.7 0.6 0.4 0.6 0.8 0.4 0.5 0.3 0.5 ...
##  $ RHI425214          : num [1:3112] 1.1 0.9 0.5 0.2 0.3 0.3 0.9 0.9 0.8 0.3 ...
##  $ RHI525214          : num [1:3112] 0.1 0.1 0.2 0.1 0.1 0.7 0 0.1 0.1 0 ...
##  $ RHI625214          : num [1:3112] 1.8 1.6 0.9 0.9 1.2 1.1 0.8 1.7 1.1 1.6 ...
##  $ Hispanic           : num [1:3112] 0.027 0.046 0.045 0.021 0.087 0.075 0.012 0.035 0.02 0.015 ...
##  $ RHI825214          : num [1:3112] 75.6 83 46.6 74.5 87.8 22.1 53.1 72.9 56.8 91.6 ...
##  $ POP715213          : num [1:3112] 85 82.1 84.8 86.6 88.7 84.7 94.6 83.6 85.8 90.6 ...
##  $ POP645213          : num [1:3112] 1.6 3.6 2.9 1.2 4.3 5.4 0.8 2.4 1.1 0.7 ...
##  $ NonEnglish         : num [1:3112] 3.5 5.5 5 2.1 7.3 5.2 1.7 4.5 1.3 1.1 ...
##  $ Edu_highschool     : num [1:3112] 85.6 89.1 73.7 77.5 77 67.8 76.3 78.6 75.1 78.3 ...
##  $ Edu_batchelors     : num [1:3112] 20.9 27.7 13.4 12.1 12.1 12.5 14 16.1 11.8 12.8 ...
##  $ VET605213          : num [1:3112] 5922 19346 2120 1327 4540 ...
##  $ LFE305213          : num [1:3112] 26.2 25.9 24.6 27.6 33.9 26.9 24 22.5 24.6 26.9 ...
##  $ HSG010214          : num [1:3112] 22751 107374 11799 8978 23826 ...
##  $ HSG445213          : num [1:3112] 76.8 72.6 67.7 79 81 74.3 70.3 68.7 67.9 76.1 ...
##  $ HSG096213          : num [1:3112] 8.3 24.4 10.6 7.3 4.5 8.7 13.3 13.8 11.1 4.6 ...
##  $ HSG495213          : num [1:3112] 136200 168600 89200 90500 117100 ...
##  $ HSD410213          : num [1:3112] 20071 73283 9200 7091 21108 ...
##  $ HSD310213          : num [1:3112] 2.71 2.52 2.66 3.03 2.7 2.73 2.47 2.54 2.46 2.2 ...
##  $ Income             : num [1:3112] 24571 26766 16829 17427 20730 ...
##  $ INC110213          : num [1:3112] 53682 50221 32911 36447 44145 ...
##  $ Poverty            : num [1:3112] 12.1 13.9 26.7 18.1 15.8 21.6 28.4 21.9 24.1 21.2 ...
##  $ BZA010213          : num [1:3112] 817 4871 464 275 660 ...
##  $ BZA110213          : num [1:3112] 10120 54988 6611 3145 6798 ...
##  $ BZA115213          : num [1:3112] 2.1 3.7 -5.6 7.5 3.4 0 2.7 0.6 -0.2 5.5 ...
##  $ NES010213          : num [1:3112] 2947 16508 1546 1126 3563 ...
##  $ SBO001207          : num [1:3112] 4067 19035 1667 1385 4458 ...
##  $ SBO315207          : num [1:3112] 15.2 2.7 0 14.9 0 0 0 7.2 0 0 ...
##  $ SBO115207          : num [1:3112] 0 0.4 0 0 0 0 0 0 0 0 ...
##  $ SBO215207          : num [1:3112] 1.3 1 0 0 0 0 3.3 1.6 0 0 ...
##  $ SBO515207          : num [1:3112] 0 0 0 0 0 0 0 0 0 0 ...
##  $ SBO415207          : num [1:3112] 0.7 1.3 0 0 0 0 0 0.5 0 0 ...
##  $ SBO015207          : num [1:3112] 31.7 27.3 27 0 23.2 38.8 0 24.7 29.3 14.5 ...
##  $ MAN450207          : num [1:3112] 0 1410273 0 0 341544 ...
##  $ WTN220207          : num [1:3112] 0 0 0 0 0 ...
##  $ RTN130207          : num [1:3112] 598175 2966489 188337 124707 319700 ...
##  $ RTN131207          : num [1:3112] 12003 17166 6334 5804 5622 ...
##  $ AFN120207          : num [1:3112] 88157 436955 0 10757 20941 ...
##  $ BPS030214          : num [1:3112] 131 1384 8 19 3 ...
##  $ LND110210          : num [1:3112] 594 1590 885 623 645 ...
##  $ Density            : num [1:3112] 91.8 114.6 31 36.8 88.9 ...
##  $ Clinton_Obama      : num [1:3112] -0.0262 -0.02 -0.0459 -0.048 -0.0388 ...
##  $ Trump_Romney       : num [1:3112] 0.008021 -0.000383 0.039339 0.038998 0.03359 ...
##  $ Trump_Prediction   : num [1:3112] 0.621 0.587 0.518 0.692 0.79 ...
##  $ Clinton_Prediction : num [1:3112] 0.34 0.36 0.475 0.286 0.177 ...
##  $ Trump_Deviation    : num [1:3112] -0.1135 -0.18677 -0.00488 -0.07743 -0.10887 ...
##  $ Clinton_Deviation  : num [1:3112] 0.10092 0.16385 0.00809 0.07181 0.09279 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   X1 = col_double(),
##   ..   X = col_double(),
##   ..   combined_fips = col_double(),
##   ..   votes_dem_2016 = col_double(),
##   ..   votes_gop_2016 = col_double(),
##   ..   total_votes_2016 = col_double(),
##   ..   Clinton = col_double(),
##   ..   Trump = col_double(),
##   ..   diff_2016 = col_double(),
##   ..   per_point_diff_2016 = col_double(),
##   ..   state_abbr = col_character(),
##   ..   county_name = col_character(),
##   ..   FIPS = col_double(),
##   ..   total_votes_2012 = col_double(),
##   ..   votes_dem_2012 = col_double(),
##   ..   votes_gop_2012 = col_double(),
##   ..   county_fips = col_double(),
##   ..   state_fips = col_double(),
##   ..   Obama = col_double(),
##   ..   Romney = col_double(),
##   ..   diff_2012 = col_double(),
##   ..   per_point_diff_2012 = col_double(),
##   ..   fips = col_double(),
##   ..   area_name = col_character(),
##   ..   state_abbreviation = col_character(),
##   ..   population2014 = col_double(),
##   ..   population2010 = col_double(),
##   ..   population_change = col_double(),
##   ..   POP010210 = col_double(),
##   ..   AGE135214 = col_double(),
##   ..   AGE295214 = col_double(),
##   ..   age65plus = col_double(),
##   ..   SEX255214 = col_double(),
##   ..   White = col_double(),
##   ..   Black = col_double(),
##   ..   RHI325214 = col_double(),
##   ..   RHI425214 = col_double(),
##   ..   RHI525214 = col_double(),
##   ..   RHI625214 = col_double(),
##   ..   Hispanic = col_double(),
##   ..   RHI825214 = col_double(),
##   ..   POP715213 = col_double(),
##   ..   POP645213 = col_double(),
##   ..   NonEnglish = col_double(),
##   ..   Edu_highschool = col_double(),
##   ..   Edu_batchelors = col_double(),
##   ..   VET605213 = col_double(),
##   ..   LFE305213 = col_double(),
##   ..   HSG010214 = col_double(),
##   ..   HSG445213 = col_double(),
##   ..   HSG096213 = col_double(),
##   ..   HSG495213 = col_double(),
##   ..   HSD410213 = col_double(),
##   ..   HSD310213 = col_double(),
##   ..   Income = col_double(),
##   ..   INC110213 = col_double(),
##   ..   Poverty = col_double(),
##   ..   BZA010213 = col_double(),
##   ..   BZA110213 = col_double(),
##   ..   BZA115213 = col_double(),
##   ..   NES010213 = col_double(),
##   ..   SBO001207 = col_double(),
##   ..   SBO315207 = col_double(),
##   ..   SBO115207 = col_double(),
##   ..   SBO215207 = col_double(),
##   ..   SBO515207 = col_double(),
##   ..   SBO415207 = col_double(),
##   ..   SBO015207 = col_double(),
##   ..   MAN450207 = col_double(),
##   ..   WTN220207 = col_double(),
##   ..   RTN130207 = col_double(),
##   ..   RTN131207 = col_double(),
##   ..   AFN120207 = col_double(),
##   ..   BPS030214 = col_double(),
##   ..   LND110210 = col_double(),
##   ..   Density = col_double(),
##   ..   Clinton_Obama = col_double(),
##   ..   Trump_Romney = col_double(),
##   ..   Trump_Prediction = col_double(),
##   ..   Clinton_Prediction = col_double(),
##   ..   Trump_Deviation = col_double(),
##   ..   Clinton_Deviation = col_double()
##   .. )

Cleaning our data

str(relevant_1)
## tibble [3,112 x 18] (S3: tbl_df/tbl/data.frame)
##  $ DemPercentRepPercent: num [1:3112] -0.4948 -0.5779 -0.0561 -0.5554 -0.8138 ...
##  $ State               : chr [1:3112] "AL" "AL" "AL" "AL" ...
##  $ County              : chr [1:3112] "Autauga County" "Baldwin County" "Barbour County" "Bibb County" ...
##  $ PopulationChange    : num [1:3112] 1.5 9.8 -2.1 -1.8 0.7 -1.4 -3.1 -2.3 -0.3 0.2 ...
##  $ PercentAgeUnder5    : num [1:3112] 6 5.6 5.7 5.3 6.1 6.3 6.1 5.7 5.9 4.8 ...
##  $ PercentAgeUnder18   : num [1:3112] 25.2 22.2 21.2 21 23.6 21.4 23.6 22.2 21.4 20.4 ...
##  $ PercentAgeOver65    : num [1:3112] 13.8 18.7 16.5 14.8 17 14.9 18 16 18.3 20.9 ...
##  $ MedianHouseIncome   : num [1:3112] 53682 50221 32911 36447 44145 ...
##  $ NumberFirms         : num [1:3112] 4067 19035 1667 1385 4458 ...
##  $ PercentBlackFirms   : num [1:3112] 15.2 2.7 0 14.9 0 0 0 7.2 0 0 ...
##  $ PercentNAFirms      : num [1:3112] 0 0.4 0 0 0 0 0 0 0 0 ...
##  $ PercentAsianFirms   : num [1:3112] 1.3 1 0 0 0 0 3.3 1.6 0 0 ...
##  $ PercentHawaiianFirms: num [1:3112] 0 0 0 0 0 0 0 0 0 0 ...
##  $ PercentHispanicFirms: num [1:3112] 0.7 1.3 0 0 0 0 0 0.5 0 0 ...
##  $ PercentWomenFirms   : num [1:3112] 31.7 27.3 27 0 23.2 38.8 0 24.7 29.3 14.5 ...
##  $ Density             : num [1:3112] 91.8 114.6 31 36.8 88.9 ...
##  $ PercentHSGrad       : num [1:3112] 85.6 89.1 73.7 77.5 77 67.8 76.3 78.6 75.1 78.3 ...
##  $ PercentCollegeGrad  : num [1:3112] 20.9 27.7 13.4 12.1 12.1 12.5 14 16.1 11.8 12.8 ...

Percent Over 65

Percent of Women Firms

Percent of Median House Income

Percent of College Graduate

Hypothesis Test

Null Hypothesis = None of our independent variables contributes significantly to our model

Alternative Hypothesis = At least one of our independent variables contributes significantly to our model

We are going to run a multi-linear regression…

summary(MultiRegression)
## 
## Call:
## lm(formula = DemPercentRepPercent ~ PopulationChange + PercentAgeUnder5 + 
##     PercentAgeUnder18 + PercentAgeOver65 + MedianHouseIncome + 
##     PercentBlackFirms + PercentNAFirms + PercentAsianFirms + 
##     PercentHispanicFirms + PercentWomenFirms + Density + PercentHSGrad + 
##     PercentCollegeGrad, data = relevant_1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.76022 -0.13809 -0.01807  0.12032  1.11070 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           2.878e-01  7.229e-02   3.980 7.04e-05 ***
## PopulationChange     -1.229e-02  1.092e-03 -11.258  < 2e-16 ***
## PercentAgeUnder5      3.294e-02  6.662e-03   4.945 8.03e-07 ***
## PercentAgeUnder18    -2.616e-02  2.420e-03 -10.808  < 2e-16 ***
## PercentAgeOver65     -1.372e-02  1.233e-03 -11.133  < 2e-16 ***
## MedianHouseIncome    -2.826e-06  5.269e-07  -5.363 8.80e-08 ***
## PercentBlackFirms     1.354e-02  5.754e-04  23.527  < 2e-16 ***
## PercentNAFirms        1.518e-02  1.328e-03  11.433  < 2e-16 ***
## PercentAsianFirms     1.411e-02  1.737e-03   8.124 6.43e-16 ***
## PercentHispanicFirms  1.086e-02  6.517e-04  16.662  < 2e-16 ***
## PercentWomenFirms     2.284e-03  3.156e-04   7.236 5.80e-13 ***
## Density               3.426e-06  2.307e-06   1.485    0.138    
## PercentHSGrad        -3.215e-03  7.970e-04  -4.034 5.62e-05 ***
## PercentCollegeGrad    1.652e-02  7.242e-04  22.807  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.204 on 3098 degrees of freedom
## Multiple R-squared:  0.5654, Adjusted R-squared:  0.5636 
## F-statistic:   310 on 13 and 3098 DF,  p-value: < 2.2e-16

This is our more condensed model

summary(CondensedModel)
## 
## Call:
## lm(formula = DemPercentRepPercent ~ PercentAgeUnder18 + PercentAgeOver65 + 
##     PercentBlackFirms + PercentNAFirms + PercentHispanicFirms + 
##     PercentCollegeGrad, data = relevant_1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.67772 -0.14518 -0.02404  0.12196  1.21274 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           0.2102684  0.0543131   3.871  0.00011 ***
## PercentAgeUnder18    -0.0241880  0.0015322 -15.787  < 2e-16 ***
## PercentAgeOver65     -0.0162217  0.0011926 -13.602  < 2e-16 ***
## PercentBlackFirms     0.0168902  0.0005766  29.291  < 2e-16 ***
## PercentNAFirms        0.0170474  0.0013857  12.302  < 2e-16 ***
## PercentHispanicFirms  0.0130834  0.0006403  20.432  < 2e-16 ***
## PercentCollegeGrad    0.0117063  0.0004757  24.611  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2163 on 3105 degrees of freedom
## Multiple R-squared:  0.5104, Adjusted R-squared:  0.5095 
## F-statistic: 539.5 on 6 and 3105 DF,  p-value: < 2.2e-16

Extra Findings

## Warning: Missing column names filled in: 'X1' [1]

Let’s set the sizes of the training and validation data sets.

 trainSize <- round(nrow(relevant_p) * 0.7)
 testSize <- nrow(relevant_p) - trainSize

Let’s partition the data

set.seed(1)
 training_indices <- sample(seq_len(nrow(relevant_p)),
   size=trainSize)
 trainSet <- relevant_p[training_indices, ]
 testSet <- relevant_p[-training_indices, ]

This looks like a good model.

model2 <- lm(DemPercentRepPercent ~ PopulationChange + PercentAgeUnder5 + PercentAgeUnder18 + PercentAgeOver65 + MedianHouseIncome + PercentBlackFirms + PercentNAFirms + PercentAsianFirms + PercentHispanicFirms + PercentWomenFirms + Density + PercentHSGrad + PercentCollegeGrad, data=trainSet)

summary(model2)
## 
## Call:
## lm(formula = DemPercentRepPercent ~ PopulationChange + PercentAgeUnder5 + 
##     PercentAgeUnder18 + PercentAgeOver65 + MedianHouseIncome + 
##     PercentBlackFirms + PercentNAFirms + PercentAsianFirms + 
##     PercentHispanicFirms + PercentWomenFirms + Density + PercentHSGrad + 
##     PercentCollegeGrad, data = trainSet)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.76595 -0.13878 -0.01657  0.12156  1.06828 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           2.861e-01  8.654e-02   3.306 0.000962 ***
## PopulationChange     -1.200e-02  1.281e-03  -9.367  < 2e-16 ***
## PercentAgeUnder5      3.349e-02  7.848e-03   4.267 2.06e-05 ***
## PercentAgeUnder18    -2.514e-02  2.877e-03  -8.736  < 2e-16 ***
## PercentAgeOver65     -1.341e-02  1.491e-03  -8.995  < 2e-16 ***
## MedianHouseIncome    -2.941e-06  6.327e-07  -4.648 3.56e-06 ***
## PercentBlackFirms     1.323e-02  6.983e-04  18.953  < 2e-16 ***
## PercentNAFirms        1.365e-02  1.650e-03   8.274 2.24e-16 ***
## PercentAsianFirms     1.236e-02  2.099e-03   5.891 4.45e-09 ***
## PercentHispanicFirms  1.078e-02  7.811e-04  13.802  < 2e-16 ***
## PercentWomenFirms     2.398e-03  3.759e-04   6.379 2.17e-10 ***
## Density               9.196e-06  3.790e-06   2.426 0.015338 *  
## PercentHSGrad        -3.612e-03  9.556e-04  -3.780 0.000161 ***
## PercentCollegeGrad    1.700e-02  8.561e-04  19.858  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2035 on 2164 degrees of freedom
## Multiple R-squared:  0.5682, Adjusted R-squared:  0.5656 
## F-statistic:   219 on 13 and 2164 DF,  p-value: < 2.2e-16

Let’s make predictions

predictions <- predict(model2, testSet) 

Train RMSE

sqrt(mean((trainSet$DemPercentRepPercent - predict(model2, trainSet)) ^ 2))
## [1] 0.2028

Test RMSE

sqrt(mean((testSet$DemPercentRepPercent - predict(model2, testSet)) ^ 2))
## [1] 0.2063212

Model for a hypothetical county we would expect to vote more Democrat

predict(model2, newdata = data.frame(
  PopulationChange = -8,
  PercentAgeUnder5 = 8,
  PercentAgeUnder18 = 15,
  PercentAgeOver65 = 10,
  MedianHouseIncome = 35000,
  PercentBlackFirms = 15,
  PercentNAFirms = 3,
  PercentAsianFirms = 10,
  PercentHispanicFirms = 15,
  PercentWomenFirms = 40,
  Density = 4000,
  PercentHSGrad = 80,
  PercentCollegeGrad = 35
  
  
))
##         1 
## 0.9994977

Model for a hypothetical county we would expect to vote more Republican

predict(model2, newdata = data.frame(
  PopulationChange = 8,
  PercentAgeUnder5 = 2,
  PercentAgeUnder18 = 25,
  PercentAgeOver65 = 30,
  MedianHouseIncome = 100000,
  PercentBlackFirms = 0,
  PercentNAFirms = 0,
  PercentAsianFirms = 0,
  PercentHispanicFirms = 0,
  PercentWomenFirms = 0,
  Density = 1,
  PercentHSGrad = 50,
  PercentCollegeGrad = 15
  
  
))
##          1 
## -0.9932248