Setup

library(pacman)
p_load(kirkegaard, readr, lavaan, doFuture, sf, rms, broom, lavaanPlot, ggeffects)
options(digits = 2)

#parallel
registerDoFuture()
plan(multiprocess(workers = 7))
## Warning: [ONE-TIME WARNING] Forked processing ('multicore') is disabled
## in future (>= 1.13.0) when running R from RStudio, because it is
## considered unstable. Because of this, plan("multicore") will fall
## back to plan("sequential"), and plan("multiprocess") will fall back to
## plan("multisession") - not plan("multicore") as in the past. For more
## details, how to control forked processing or not, and how to silence this
## warning in future R sessions, see ?future::supportsMulticore
#this should return about 1 sec
system.time(plyr::llply(1:3, function(x) Sys.sleep(1), .parallel = T))
##    user  system elapsed 
##   0.072   0.009   1.536

Data

#prior study
kirk16 = silence(read_csv("data/county_data.csv")[-1, ]) %>% rename(FIPS = X1)
#skip row 1 which is Alaska state

#SEDA
seda_CS = haven::read_dta("data/SEDA_county_long_CS_v21.dta")

#average across years, subjects, datasets
averager = function(x, score = "mn_all", subject = "subject", sample_size = "totgyb_all", county = "countyid", group = "year_grade") {

  #standardize within subject and year and group
  x2 = x %>% plyr::ddply(c(group, subject), function(dd) {
    dd[[score]] %<>% standardize()
    dd
  })
  
  #average subject scores
  x3 = x2 %>% plyr::ddply(c(county, group), function(dd) {
    y = data.frame(
      county = dd[[county]][1],
      group = dd[[group]][1],
      sample_size = dd[[sample_size]][1],
      score = wtd_mean(dd[[score]], dd[[sample_size]])
    )
    
    y
  }, .parallel = T)
  
  #average county scores
  x4 = x3 %>% plyr::ddply("county", function(dd) {
    y = data.frame(
      county = dd$county[1],
      n = sum(dd$sample_size),
      score = wtd_mean(dd$score, dd$sample_size)
    )
    
    y
  }, .parallel = T)
  
  #save other info as attribute
  attr(x4, "indicators") = x3 %>% 
    select(countyid, group, score) %>% 
    spread(key = group, value = score)
  
  # browser()
  
  x4
}

#compute county means by dataset
seda_CS_avg = seda_CS %>% mutate(year_grade = str_glue("{year}_{grade}")) %>% averager()

#indicator correlations, year-grade groups
#heatmap
attr(seda_CS_avg, "indicators") %>% .[-1] %>% GG_heatmap()

#summary values
attr(seda_CS_avg, "indicators") %>% .[-1] %>% 
  wtd.cors() %>% 
  MAT_half() %>% 
  describe()
##    vars   n mean   sd median trimmed  mad  min  max range skew kurtosis se
## X1    1 861 0.77 0.06   0.76    0.76 0.06 0.62 0.92   0.3 0.11    -0.43  0
#no dups  
assert_that(!any(duplicated(kirk16$FIPS)))
## [1] TRUE
assert_that(!any(duplicated(seda_CS_avg$county)))
## [1] TRUE
#merge
d = full_join(kirk16, seda_CS_avg %>% rename(FIPS = county, seda_score = score, seda_n = n) %>% mutate(FIPS = FIPS %>% as.character() %>% as.numeric()))
## Joining, by = "FIPS"
#rename
d$IQ = d$seda_score
d$popsqrt = d$Total.Population %>% sqrt()
d$homogeneity = d$SIRE_homogeneity

#SIRE to 0-1 scale
SIREs = c("White", "Black", "Hispanic", "Asian", "Amerindian", "Other")
for (v in SIREs) d[[v]] %<>% divide_by(100)

#impute 0's for green
# d$green16_frac_miss = is.na(d$green16_frac)
# d$green16_frac[is.na(d$green16_frac) & !is.na(d$dem16_frac)] = 0
# dem advantage
d$dem16_advantage = d$dem16_frac - d$rep16_frac

#Map data
#load shapefile
#https://catalog.data.gov/dataset/tiger-line-shapefile-2017-nation-u-s-current-county-and-equivalent-national-shapefile
county_sf = st_read("data/spatial/tl_2017_us_county.shp")
## Reading layer `tl_2017_us_county' from data source `/media/truecrypt1/Projects/USA president election counties/data/spatial/tl_2017_us_county.shp' using driver `ESRI Shapefile'
## Simple feature collection with 3233 features and 17 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -180 ymin: -15 xmax: 180 ymax: 71
## epsg (SRID):    4269
## proj4string:    +proj=longlat +datum=NAD83 +no_defs
#make FIPS
county_sf$FIPS = (as.character(county_sf$STATEFP) + as.character(county_sf$COUNTYFP)) %>% as.numeric()
county_sf = county_sf %>% filter(FIPS %in% d$FIPS)

#join in data
d2 = left_join(county_sf, d, by = "FIPS")

#area
d2 = d2 %>% mutate(area = d2 %>% st_area() %>% as.numeric(),
                   density_raw = Total.Population / area,
                   density = density_raw %>% log10())

#merge area back to main
d = left_join(d, d2 %>% as.data.frame() %>% select(FIPS, area, density))
## Joining, by = "FIPS"
#variable lists
outcomes = c("dem16_frac", "dem12_frac", "dem08_frac", "rep16_frac", "rep12_frac", "rep08_frac", "green16_frac", "libert16_frac")
preds = c("IQ", "S", "Black", "Hispanic", "Asian", "Amerindian", "Other", "homogeneity", "density", "median_age")

Correlations

#weights
wtd.cors(d[c(preds, outcomes)], weight = d$popsqrt) %>% write_clipboard()
##                  IQ     S Black Hispanic Asian Amerindian Other
## IQ             1.00  0.77 -0.46    -0.25  0.13      -0.23 -0.02
## S              0.77  1.00 -0.52    -0.08  0.32      -0.17  0.12
## Black         -0.46 -0.52  1.00    -0.09  0.01      -0.10 -0.08
## Hispanic      -0.25 -0.08 -0.09     1.00  0.25      -0.03  0.02
## Asian          0.13  0.32  0.01     0.25  1.00      -0.06  0.52
## Amerindian    -0.23 -0.17 -0.10    -0.03 -0.06       1.00  0.18
## Other         -0.02  0.12 -0.08     0.02  0.52       0.18  1.00
## Homogeneity    0.37  0.20 -0.56    -0.49 -0.49      -0.08 -0.28
## Density        0.18  0.23  0.28     0.16  0.49      -0.25  0.10
## Median age     0.17  0.06 -0.23    -0.37 -0.24      -0.11 -0.11
## Dem16 frac    -0.11  0.07  0.45     0.33  0.53      -0.01  0.19
## Dem12 frac    -0.14  0.02  0.39     0.23  0.44       0.03  0.18
## Dem08 frac    -0.10  0.06  0.33     0.20  0.43       0.03  0.18
## Rep16 frac     0.07 -0.14 -0.38    -0.33 -0.53      -0.01 -0.22
## Rep12 frac     0.13 -0.04 -0.37    -0.23 -0.45      -0.03 -0.19
## Rep08 frac     0.09 -0.08 -0.31    -0.20 -0.43      -0.03 -0.18
## Green16 frac   0.09  0.35 -0.25     0.13  0.38       0.16  0.44
## Libert16 frac  0.29  0.46 -0.48     0.05  0.03       0.18  0.19
##               Homogeneity Density Median age Dem16 frac Dem12 frac
## IQ                   0.37    0.18       0.17      -0.11      -0.14
## S                    0.20    0.23       0.06       0.07       0.02
## Black               -0.56    0.28      -0.23       0.45       0.39
## Hispanic            -0.49    0.16      -0.37       0.33       0.23
## Asian               -0.49    0.49      -0.24       0.53       0.44
## Amerindian          -0.08   -0.25      -0.11      -0.01       0.03
## Other               -0.28    0.10      -0.11       0.19       0.18
## Homogeneity          1.00   -0.45       0.46      -0.58      -0.43
## Density             -0.45    1.00      -0.37       0.64       0.54
## Median age           0.46   -0.37       1.00      -0.34      -0.23
## Dem16 frac          -0.58    0.64      -0.34       1.00       0.96
## Dem12 frac          -0.43    0.54      -0.23       0.96       1.00
## Dem08 frac          -0.37    0.52      -0.20       0.93       0.98
## Rep16 frac           0.55   -0.62       0.37      -0.99      -0.94
## Rep12 frac           0.42   -0.53       0.22      -0.95      -1.00
## Rep08 frac           0.34   -0.51       0.19      -0.92      -0.98
## Green16 frac        -0.11    0.17      -0.10       0.45       0.47
## Libert16 frac        0.18   -0.07      -0.11      -0.01       0.00
##               Dem08 frac Rep16 frac Rep12 frac Rep08 frac Green16 frac
## IQ                 -0.10       0.07       0.13       0.09         0.09
## S                   0.06      -0.14      -0.04      -0.08         0.35
## Black               0.33      -0.38      -0.37      -0.31        -0.25
## Hispanic            0.20      -0.33      -0.23      -0.20         0.13
## Asian               0.43      -0.53      -0.45      -0.43         0.38
## Amerindian          0.03      -0.01      -0.03      -0.03         0.16
## Other               0.18      -0.22      -0.19      -0.18         0.44
## Homogeneity        -0.37       0.55       0.42       0.34        -0.11
## Density             0.52      -0.62      -0.53      -0.51         0.17
## Median age         -0.20       0.37       0.22       0.19        -0.10
## Dem16 frac          0.93      -0.99      -0.95      -0.92         0.45
## Dem12 frac          0.98      -0.94      -1.00      -0.98         0.47
## Dem08 frac          1.00      -0.92      -0.99      -1.00         0.49
## Rep16 frac         -0.92       1.00       0.94       0.92        -0.51
## Rep12 frac         -0.99       0.94       1.00       0.98        -0.50
## Rep08 frac         -1.00       0.92       0.98       1.00        -0.51
## Green16 frac        0.49      -0.51      -0.50      -0.51         1.00
## Libert16 frac       0.06      -0.08      -0.03      -0.07         0.47
##               Libert16 frac
## IQ                     0.29
## S                      0.46
## Black                 -0.48
## Hispanic               0.05
## Asian                  0.03
## Amerindian             0.18
## Other                  0.19
## Homogeneity            0.18
## Density               -0.07
## Median age            -0.11
## Dem16 frac            -0.01
## Dem12 frac             0.00
## Dem08 frac             0.06
## Rep16 frac            -0.08
## Rep12 frac            -0.03
## Rep08 frac            -0.07
## Green16 frac           0.47
## Libert16 frac          1.00
#no weights
wtd.cors(d[c(preds, outcomes)])
##                   IQ       S  Black Hispanic  Asian Amerindian  Other
## IQ             1.000  0.7586 -0.506   -0.221  0.127     -0.282 -0.045
## S              0.759  1.0000 -0.566   -0.111  0.233     -0.196  0.069
## Black         -0.506 -0.5663  1.000   -0.107  0.013     -0.100 -0.087
## Hispanic      -0.221 -0.1109 -0.107    1.000  0.139     -0.040 -0.025
## Asian          0.127  0.2331  0.013    0.139  1.000     -0.011  0.424
## Amerindian    -0.282 -0.1960 -0.100   -0.040 -0.011      1.000  0.263
## Other         -0.045  0.0687 -0.087   -0.025  0.424      0.263  1.000
## homogeneity    0.456  0.3673 -0.582   -0.439 -0.345     -0.157 -0.251
## density        0.132  0.0906  0.240   -0.042  0.347     -0.261  0.010
## median_age     0.204  0.1544 -0.223   -0.287 -0.220     -0.197 -0.062
## dem16_frac    -0.208 -0.0887  0.499    0.192  0.423      0.078  0.131
## dem12_frac    -0.210 -0.0974  0.407    0.097  0.331      0.126  0.120
## dem08_frac    -0.154 -0.0480  0.325    0.065  0.319      0.123  0.106
## rep16_frac     0.152  0.0016 -0.415   -0.198 -0.435     -0.098 -0.159
## rep12_frac     0.194  0.0761 -0.379   -0.094 -0.334     -0.125 -0.120
## rep08_frac     0.140  0.0312 -0.299   -0.053 -0.316     -0.124 -0.103
## green16_frac   0.144  0.3277 -0.279    0.027  0.286      0.266  0.397
## libert16_frac  0.350  0.5243 -0.497    0.085  0.093      0.145  0.204
##               homogeneity density median_age dem16_frac dem12_frac
## IQ                  0.456   0.132     0.2044     -0.208     -0.210
## S                   0.367   0.091     0.1544     -0.089     -0.097
## Black              -0.582   0.240    -0.2233      0.499      0.407
## Hispanic           -0.439  -0.042    -0.2873      0.192      0.097
## Asian              -0.345   0.347    -0.2199      0.423      0.331
## Amerindian         -0.157  -0.261    -0.1970      0.078      0.126
## Other              -0.251   0.010    -0.0625      0.131      0.120
## homogeneity         1.000  -0.227     0.4391     -0.458     -0.293
## density            -0.227   1.000    -0.3847      0.488      0.413
## median_age          0.439  -0.385     1.0000     -0.316     -0.213
## dem16_frac         -0.458   0.488    -0.3162      1.000      0.948
## dem12_frac         -0.293   0.413    -0.2128      0.948      1.000
## dem08_frac         -0.202   0.395    -0.1761      0.912      0.980
## rep16_frac          0.416  -0.461     0.3335     -0.984     -0.935
## rep12_frac          0.271  -0.399     0.2026     -0.941     -0.998
## rep08_frac          0.174  -0.375     0.1605     -0.899     -0.974
## green16_frac        0.022   0.083    -0.0391      0.358      0.368
## libert16_frac       0.213  -0.078    -0.0025      0.017      0.074
##               dem08_frac rep16_frac rep12_frac rep08_frac green16_frac
## IQ                -0.154     0.1516      0.194      0.140        0.144
## S                 -0.048     0.0016      0.076      0.031        0.328
## Black              0.325    -0.4146     -0.379     -0.299       -0.279
## Hispanic           0.065    -0.1978     -0.094     -0.053        0.027
## Asian              0.319    -0.4354     -0.334     -0.316        0.286
## Amerindian         0.123    -0.0977     -0.125     -0.124        0.266
## Other              0.106    -0.1588     -0.120     -0.103        0.397
## homogeneity       -0.202     0.4156      0.271      0.174        0.022
## density            0.395    -0.4610     -0.399     -0.375        0.083
## median_age        -0.176     0.3335      0.203      0.161       -0.039
## dem16_frac         0.912    -0.9835     -0.941     -0.899        0.358
## dem12_frac         0.980    -0.9348     -0.998     -0.974        0.368
## dem08_frac         1.000    -0.9085     -0.982     -0.998        0.387
## rep16_frac        -0.908     1.0000      0.934      0.902       -0.427
## rep12_frac        -0.982     0.9345      1.000      0.979       -0.396
## rep08_frac        -0.998     0.9020      0.979      1.000       -0.404
## green16_frac       0.387    -0.4266     -0.396     -0.404        1.000
## libert16_frac      0.130    -0.1303     -0.107     -0.148        0.476
##               libert16_frac
## IQ                   0.3504
## S                    0.5243
## Black               -0.4969
## Hispanic             0.0850
## Asian                0.0934
## Amerindian           0.1446
## Other                0.2040
## homogeneity          0.2130
## density             -0.0782
## median_age          -0.0025
## dem16_frac           0.0175
## dem12_frac           0.0745
## dem08_frac           0.1300
## rep16_frac          -0.1303
## rep12_frac          -0.1067
## rep08_frac          -0.1480
## green16_frac         0.4762
## libert16_frac        1.0000
#pairwise n's
pairwiseCount(d[c(preds, outcomes)])
##                 IQ    S Black Hispanic Asian Amerindian Other homogeneity
## IQ            3087 3081  3087     3087  3087       3087  3087        3087
## S             3081 3127  3127     3127  3127       3127  3127        3127
## Black         3087 3127  3143     3143  3143       3143  3143        3143
## Hispanic      3087 3127  3143     3143  3143       3143  3143        3143
## Asian         3087 3127  3143     3143  3143       3143  3143        3143
## Amerindian    3087 3127  3143     3143  3143       3143  3143        3143
## Other         3087 3127  3143     3143  3143       3143  3143        3143
## homogeneity   3087 3127  3143     3143  3143       3143  3143        3143
## density       3085 3124  3140     3140  3140       3140  3140        3140
## median_age    3087 3127  3143     3143  3143       3143  3143        3143
## dem16_frac    3060 3102  3111     3111  3111       3111  3111        3111
## dem12_frac    3061 3103  3112     3112  3112       3112  3112        3112
## dem08_frac    3061 3103  3112     3112  3112       3112  3112        3112
## rep16_frac    3060 3102  3111     3111  3111       3111  3111        3111
## rep12_frac    3061 3103  3112     3112  3112       3112  3112        3112
## rep08_frac    3061 3103  3112     3112  3112       3112  3112        3112
## green16_frac  2554 2592  2601     2601  2601       2601  2601        2601
## libert16_frac 3060 3102  3111     3111  3111       3111  3111        3111
##               density median_age dem16_frac dem12_frac dem08_frac
## IQ               3085       3087       3060       3061       3061
## S                3124       3127       3102       3103       3103
## Black            3140       3143       3111       3112       3112
## Hispanic         3140       3143       3111       3112       3112
## Asian            3140       3143       3111       3112       3112
## Amerindian       3140       3143       3111       3112       3112
## Other            3140       3143       3111       3112       3112
## homogeneity      3140       3143       3111       3112       3112
## density          3140       3140       3111       3111       3111
## median_age       3140       3143       3111       3112       3112
## dem16_frac       3111       3111       3112       3111       3111
## dem12_frac       3111       3112       3111       3112       3112
## dem08_frac       3111       3112       3111       3112       3112
## rep16_frac       3111       3111       3112       3111       3111
## rep12_frac       3111       3112       3111       3112       3112
## rep08_frac       3111       3112       3111       3112       3112
## green16_frac     2601       2601       2601       2601       2601
## libert16_frac    3111       3111       3112       3111       3111
##               rep16_frac rep12_frac rep08_frac green16_frac libert16_frac
## IQ                  3060       3061       3061         2554          3060
## S                   3102       3103       3103         2592          3102
## Black               3111       3112       3112         2601          3111
## Hispanic            3111       3112       3112         2601          3111
## Asian               3111       3112       3112         2601          3111
## Amerindian          3111       3112       3112         2601          3111
## Other               3111       3112       3112         2601          3111
## homogeneity         3111       3112       3112         2601          3111
## density             3111       3111       3111         2601          3111
## median_age          3111       3112       3112         2601          3111
## dem16_frac          3112       3111       3111         2601          3112
## dem12_frac          3111       3112       3112         2601          3111
## dem08_frac          3111       3112       3112         2601          3111
## rep16_frac          3112       3111       3111         2601          3112
## rep12_frac          3111       3112       3112         2601          3111
## rep08_frac          3111       3112       3112         2601          3111
## green16_frac        2601       2601       2601         2601          2601
## libert16_frac       3112       3111       3111         2601          3112
#basic scatterplots
scatter_input = expand_grid(x = preds, y = outcomes)
for (r in seq_along_rows(scatter_input)) {
  gg = GG_scatter(d, scatter_input$x[r], scatter_input$y[r], weights = "popsqrt")
  GG_save(str_glue("figures/scatter{r}.png"))
}

OLS regressions

Basic regression models.

#single regressions
single_regs = expand_grid(outcome = outcomes,
            pred = preds) %>% 
  as_tibble() %>% 
  plyr::ddply(c("outcome", "pred"), function(x) {
    # browser()
    fit = ols(as.formula(str_glue("{x$outcome} ~ {x$pred}")), data = d, weights = d$popsqrt)
    fit_tidy = fit %>% summary.lm() %>% tidy()
    
    tibble(
      term = fit_tidy$term,
      beta = fit_tidy$estimate,
      se = fit_tidy$std.error,
      p = fit_tidy$p.value,
      r2adj = fit %>% summary.lm() %>% .$adj.r.squared
    )
  }) %>% as_tibble()
single_regs %>% print(n = Inf)
## # A tibble: 160 x 7
##     outcome      pred       term           beta       se         p    r2adj
##     <chr>        <chr>      <chr>         <dbl>    <dbl>     <dbl>    <dbl>
##   1 dem08_frac   Amerindian Intercept   4.64e-1  2.65e-3 0.         3.35e-4
##   2 dem08_frac   Amerindian Amerindian  7.97e-2  5.58e-2 1.53e-  1  3.35e-4
##   3 dem08_frac   Asian      Intercept   4.28e-1  2.69e-3 0.         1.87e-1
##   4 dem08_frac   Asian      Asian       1.56e+0  5.84e-2 3.49e-142  1.87e-1
##   5 dem08_frac   Black      Intercept   4.29e-1  3.06e-3 0.         1.09e-1
##   6 dem08_frac   Black      Black       3.47e-1  1.78e-2 5.46e- 80  1.09e-1
##   7 dem08_frac   density    Intercept   8.90e-1  1.27e-2 0.         2.73e-1
##   8 dem08_frac   density    density     9.92e-2  2.90e-3 2.10e-217  2.73e-1
##   9 dem08_frac   Hispanic   Intercept   4.43e-1  3.13e-3 0.         4.16e-2
##  10 dem08_frac   Hispanic   Hispanic    2.11e-1  1.81e-2 8.18e- 31  4.16e-2
##  11 dem08_frac   homogenei… Intercept   6.43e-1  8.51e-3 0.         1.33e-1
##  12 dem08_frac   homogenei… homogenei… -2.72e-1  1.24e-2 7.64e- 99  1.33e-1
##  13 dem08_frac   IQ         Intercept   4.64e-1  2.56e-3 0.         8.86e-3
##  14 dem08_frac   IQ         IQ         -1.65e-2  3.10e-3 1.08e-  7  8.86e-3
##  15 dem08_frac   median_age Intercept   7.11e-1  2.17e-2 8.48e-203  4.02e-2
##  16 dem08_frac   median_age median_age -6.44e-3  5.62e-4 8.30e- 30  4.02e-2
##  17 dem08_frac   Other      Intercept   4.38e-1  3.64e-3 0.         3.12e-2
##  18 dem08_frac   Other      Other       1.42e+0  1.42e-1 1.98e- 23  3.12e-2
##  19 dem08_frac   S          Intercept   4.66e-1  2.63e-3 0.         3.89e-3
##  20 dem08_frac   S          S           1.03e-2  2.85e-3 2.99e-  4  3.89e-3
##  21 dem12_frac   Amerindian Intercept   4.39e-1  2.85e-3 0.         5.49e-4
##  22 dem12_frac   Amerindian Amerindian  9.86e-2  5.99e-2 9.99e-  2  5.49e-4
##  23 dem12_frac   Asian      Intercept   4.00e-1  2.88e-3 0.         1.97e-1
##  24 dem12_frac   Asian      Asian       1.73e+0  6.23e-2 5.04e-151  1.97e-1
##  25 dem12_frac   Black      Intercept   3.94e-1  3.20e-3 0.         1.55e-1
##  26 dem12_frac   Black      Black       4.46e-1  1.86e-2 1.77e-116  1.55e-1
##  27 dem12_frac   density    Intercept   9.15e-1  1.34e-2 0.         2.94e-1
##  28 dem12_frac   density    density     1.11e-1  3.08e-3 2.57e-237  2.94e-1
##  29 dem12_frac   Hispanic   Intercept   4.13e-1  3.34e-3 0.         5.43e-2
##  30 dem12_frac   Hispanic   Hispanic    2.59e-1  1.93e-2 7.14e- 40  5.43e-2
##  31 dem12_frac   homogenei… Intercept   6.67e-1  8.86e-3 0.         1.87e-1
##  32 dem12_frac   homogenei… homogenei… -3.47e-1  1.30e-2 2.10e-142  1.87e-1
##  33 dem12_frac   IQ         Intercept   4.40e-1  2.74e-3 0.         1.90e-2
##  34 dem12_frac   IQ         IQ         -2.56e-2  3.31e-3 1.21e- 14  1.90e-2
##  35 dem12_frac   median_age Intercept   7.38e-1  2.32e-2 1.01e-192  5.09e-2
##  36 dem12_frac   median_age median_age -7.78e-3  6.01e-4 1.98e- 37  5.09e-2
##  37 dem12_frac   Other      Intercept   4.11e-1  3.91e-3 0.         3.34e-2
##  38 dem12_frac   Other      Other       1.58e+0  1.52e-1 5.79e- 25  3.34e-2
##  39 dem12_frac   S          Intercept   4.41e-1  2.83e-3 0.         2.86e-4
##  40 dem12_frac   S          S           4.22e-3  3.07e-3 1.70e-  1  2.86e-4
##  41 dem16_frac   Amerindian Intercept   3.90e-1  3.15e-3 0.        -1.87e-4
##  42 dem16_frac   Amerindian Amerindian -4.43e-2  6.85e-2 5.17e-  1 -1.87e-4
##  43 dem16_frac   Asian      Intercept   3.37e-1  3.02e-3 0.         2.77e-1
##  44 dem16_frac   Asian      Asian       2.26e+0  6.54e-2 2.03e-221  2.77e-1
##  45 dem16_frac   Black      Intercept   3.32e-1  3.44e-3 0.         2.01e-1
##  46 dem16_frac   Black      Black       5.61e-1  2.00e-2 5.35e-154  2.01e-1
##  47 dem16_frac   density    Intercept   1.01e+0  1.35e-2 0.         4.11e-1
##  48 dem16_frac   density    density     1.45e-1  3.11e-3 0.         4.11e-1
##  49 dem16_frac   Hispanic   Intercept   3.49e-1  3.59e-3 0.         1.07e-1
##  50 dem16_frac   Hispanic   Hispanic    4.01e-1  2.08e-2 9.22e- 79  1.07e-1
##  51 dem16_frac   homogenei… Intercept   7.26e-1  8.86e-3 0.         3.35e-1
##  52 dem16_frac   homogenei… homogenei… -5.13e-1  1.30e-2 2.54e-278  3.35e-1
##  53 dem16_frac   IQ         Intercept   3.89e-1  3.05e-3 0.         1.09e-2
##  54 dem16_frac   IQ         IQ         -2.18e-2  3.69e-3 4.10e-  9  1.09e-2
##  55 dem16_frac   median_age Intercept   8.83e-1  2.48e-2 2.46e-233  1.14e-1
##  56 dem16_frac   median_age median_age -1.29e-2  6.42e-4 3.86e- 84  1.14e-1
##  57 dem16_frac   Other      Intercept   3.56e-1  4.32e-3 0.         3.57e-2
##  58 dem16_frac   Other      Other       1.81e+0  1.68e-1 1.20e- 26  3.57e-2
##  59 dem16_frac   S          Intercept   3.92e-1  3.12e-3 0.         5.18e-3
##  60 dem16_frac   S          S           1.41e-2  3.40e-3 3.55e-  5  5.18e-3
##  61 green16_frac Amerindian Intercept   9.82e-3  1.23e-4 0.         2.44e-2
##  62 green16_frac Amerindian Amerindian  2.48e-2  3.05e-3 6.43e- 16  2.44e-2
##  63 green16_frac Asian      Intercept   8.68e-3  1.30e-4 0.         1.41e-1
##  64 green16_frac Asian      Asian       5.50e-2  2.66e-3 4.88e- 88  1.41e-1
##  65 green16_frac Black      Intercept   1.12e-2  1.45e-4 0.         6.43e-2
##  66 green16_frac Black      Black      -1.21e-2  9.00e-4 1.12e- 39  6.43e-2
##  67 green16_frac density    Intercept   1.58e-2  6.73e-4 9.67e-111  2.80e-2
##  68 green16_frac density    density     1.35e-3  1.55e-4 5.12e- 18  2.80e-2
##  69 green16_frac Hispanic   Intercept   9.46e-3  1.49e-4 0.         1.55e-2
##  70 green16_frac Hispanic   Hispanic    5.27e-3  8.13e-4 1.05e- 10  1.55e-2
##  71 green16_frac homogenei… Intercept   1.23e-2  4.29e-4 3.82e-157  1.10e-2
##  72 green16_frac homogenei… homogenei… -3.39e-3  6.21e-4 5.10e-  8  1.10e-2
##  73 green16_frac IQ         Intercept   9.89e-3  1.20e-4 0.         7.56e-3
##  74 green16_frac IQ         IQ          6.53e-4  1.44e-4 6.37e-  6  7.56e-3
##  75 green16_frac median_age Intercept   1.55e-2  1.03e-3 6.86e- 49  1.03e-2
##  76 green16_frac median_age median_age -1.41e-4  2.66e-5 1.22e-  7  1.03e-2
##  77 green16_frac Other      Intercept   7.33e-3  1.55e-4 0.         1.89e-1
##  78 green16_frac Other      Other       1.51e-1  6.13e-3 1.34e-120  1.89e-1
##  79 green16_frac S          Intercept   1.03e-2  1.15e-4 0.         1.19e-1
##  80 green16_frac S          S           2.36e-3  1.26e-4 1.98e- 73  1.19e-1
##  81 libert16_fr… Amerindian Intercept   3.19e-2  2.59e-4 0.         3.08e-2
##  82 libert16_fr… Amerindian Amerindian  5.61e-2  5.62e-3 3.87e- 23  3.08e-2
##  83 libert16_fr… Asian      Intercept   3.22e-2  2.96e-4 0.         3.94e-4
##  84 libert16_fr… Asian      Asian       9.57e-3  6.42e-3 1.36e-  1  3.94e-4
##  85 libert16_fr… Black      Intercept   3.76e-2  2.82e-4 0.         2.28e-1
##  86 libert16_fr… Black      Black      -4.98e-2  1.64e-3 5.08e-177  2.28e-1
##  87 libert16_fr… density    Intercept   2.64e-2  1.47e-3 5.75e- 69  5.26e-3
##  88 libert16_fr… density    density    -1.41e-3  3.37e-4 3.05e-  5  5.26e-3
##  89 libert16_fr… Hispanic   Intercept   3.19e-2  3.17e-4 0.         2.40e-3
##  90 libert16_fr… Hispanic   Hispanic    5.34e-3  1.83e-3 3.59e-  3  2.40e-3
##  91 libert16_fr… homogenei… Intercept   2.39e-2  8.92e-4 1.41e-142  3.08e-2
##  92 libert16_fr… homogenei… homogenei…  1.30e-2  1.31e-3 3.66e- 23  3.08e-2
##  93 libert16_fr… IQ         Intercept   3.21e-2  2.48e-4 0.         8.31e-2
##  94 libert16_fr… IQ         IQ          5.00e-3  3.00e-4 7.15e- 60  8.31e-2
##  95 libert16_fr… median_age Intercept   4.64e-2  2.18e-3 8.64e- 94  1.29e-2
##  96 libert16_fr… median_age median_age -3.64e-4  5.66e-5 1.36e- 10  1.29e-2
##  97 libert16_fr… Other      Intercept   2.96e-2  3.60e-4 0.         3.74e-2
##  98 libert16_fr… Other      Other       1.55e-1  1.40e-2 8.05e- 28  3.74e-2
##  99 libert16_fr… S          Intercept   3.37e-2  2.32e-4 0.         2.12e-1
## 100 libert16_fr… S          S           7.29e-3  2.52e-4 5.99e-163  2.12e-1
## 101 rep08_frac   Amerindian Intercept   5.21e-1  2.64e-3 0.         3.33e-4
## 102 rep08_frac   Amerindian Amerindian -7.94e-2  5.56e-2 1.54e-  1  3.33e-4
## 103 rep08_frac   Asian      Intercept   5.57e-1  2.69e-3 0.         1.87e-1
## 104 rep08_frac   Asian      Asian      -1.56e+0  5.82e-2 7.56e-142  1.87e-1
## 105 rep08_frac   Black      Intercept   5.54e-1  3.07e-3 0.         9.40e-2
## 106 rep08_frac   Black      Black      -3.22e-1  1.79e-2 5.92e- 69  9.40e-2
## 107 rep08_frac   density    Intercept   1.09e-1  1.28e-2 2.50e- 17  2.56e-1
## 108 rep08_frac   density    density    -9.59e-2  2.93e-3 1.94e-202  2.56e-1
## 109 rep08_frac   Hispanic   Intercept   5.41e-1  3.13e-3 0.         3.85e-2
## 110 rep08_frac   Hispanic   Hispanic   -2.02e-1  1.81e-2 1.43e- 28  3.85e-2
## 111 rep08_frac   homogenei… Intercept   3.53e-1  8.56e-3 2.07e-296  1.18e-1
## 112 rep08_frac   homogenei… homogenei…  2.56e-1  1.25e-2 3.79e- 87  1.18e-1
## 113 rep08_frac   IQ         Intercept   5.21e-1  2.56e-3 0.         7.59e-3
## 114 rep08_frac   IQ         IQ          1.53e-2  3.10e-3 8.24e-  7  7.59e-3
## 115 rep08_frac   median_age Intercept   2.85e-1  2.17e-2 1.64e- 38  3.66e-2
## 116 rep08_frac   median_age median_age  6.13e-3  5.62e-4 2.81e- 27  3.66e-2
## 117 rep08_frac   Other      Intercept   5.47e-1  3.63e-3 0.         3.13e-2
## 118 rep08_frac   Other      Other      -1.42e+0  1.41e-1 1.61e- 23  3.13e-2
## 119 rep08_frac   S          Intercept   5.18e-1  2.62e-3 0.         5.57e-3
## 120 rep08_frac   S          S          -1.22e-2  2.84e-3 1.88e-  5  5.57e-3
## 121 rep12_frac   Amerindian Intercept   5.43e-1  2.85e-3 0.         5.71e-4
## 122 rep12_frac   Amerindian Amerindian -9.99e-2  6.00e-2 9.57e-  2  5.71e-4
## 123 rep12_frac   Asian      Intercept   5.83e-1  2.87e-3 0.         2.01e-1
## 124 rep12_frac   Asian      Asian      -1.74e+0  6.22e-2 6.28e-154  2.01e-1
## 125 rep12_frac   Black      Intercept   5.86e-1  3.24e-3 0.         1.37e-1
## 126 rep12_frac   Black      Black      -4.18e-1  1.88e-2 1.62e-101  1.37e-1
## 127 rep12_frac   density    Intercept   7.74e-2  1.35e-2 1.17e-  8  2.81e-1
## 128 rep12_frac   density    density    -1.08e-1  3.10e-3 1.62e-225  2.81e-1
## 129 rep12_frac   Hispanic   Intercept   5.69e-1  3.35e-3 0.         5.46e-2
## 130 rep12_frac   Hispanic   Hispanic   -2.60e-1  1.93e-2 4.72e- 40  5.46e-2
## 131 rep12_frac   homogenei… Intercept   3.22e-1  8.93e-3 1.62e-238  1.75e-1
## 132 rep12_frac   homogenei… homogenei…  3.36e-1  1.31e-2 2.61e-132  1.75e-1
## 133 rep12_frac   IQ         Intercept   5.43e-1  2.74e-3 0.         1.68e-2
## 134 rep12_frac   IQ         IQ          2.42e-2  3.32e-3 3.64e- 13  1.68e-2
## 135 rep12_frac   median_age Intercept   2.47e-1  2.32e-2 5.31e- 26  4.98e-2
## 136 rep12_frac   median_age median_age  7.70e-3  6.01e-4 1.28e- 36  4.98e-2
## 137 rep12_frac   Other      Intercept   5.72e-1  3.91e-3 0.         3.43e-2
## 138 rep12_frac   Other      Other      -1.61e+0  1.52e-1 1.29e- 25  3.43e-2
## 139 rep12_frac   S          Intercept   5.41e-1  2.83e-3 0.         1.31e-3
## 140 rep12_frac   S          S          -6.92e-3  3.07e-3 2.44e-  2  1.31e-3
## 141 rep16_frac   Amerindian Intercept   5.62e-1  3.19e-3 0.        -2.74e-4
## 142 rep16_frac   Amerindian Amerindian -2.66e-2  6.93e-2 7.01e-  1 -2.74e-4
## 143 rep16_frac   Asian      Intercept   6.15e-1  3.04e-3 0.         2.83e-1
## 144 rep16_frac   Asian      Asian      -2.31e+0  6.59e-2 2.08e-227  2.83e-1
## 145 rep16_frac   Black      Intercept   6.11e-1  3.61e-3 0.         1.43e-1
## 146 rep16_frac   Black      Black      -4.79e-1  2.10e-2 1.22e-106  1.43e-1
## 147 rep16_frac   density    Intercept  -4.90e-2  1.40e-2 4.65e-  4  3.87e-1
## 148 rep16_frac   density    density    -1.42e-1  3.21e-3 0.         3.87e-1
## 149 rep16_frac   Hispanic   Intercept   6.04e-1  3.63e-3 0.         1.09e-1
## 150 rep16_frac   Hispanic   Hispanic   -4.11e-1  2.10e-2 1.78e- 80  1.09e-1
## 151 rep16_frac   homogenei… Intercept   2.39e-1  9.19e-3 9.64e-135  3.01e-1
## 152 rep16_frac   homogenei… homogenei…  4.92e-1  1.34e-2 2.57e-244  3.01e-1
## 153 rep16_frac   IQ         Intercept   5.63e-1  3.10e-3 0.         4.35e-3
## 154 rep16_frac   IQ         IQ          1.42e-2  3.75e-3 1.54e-  4  4.35e-3
## 155 rep16_frac   median_age Intercept   1.29e-2  2.48e-2 6.02e-  1  1.38e-1
## 156 rep16_frac   median_age median_age  1.43e-2  6.41e-4 2.35e-102  1.38e-1
## 157 rep16_frac   Other      Intercept   6.00e-1  4.34e-3 0.         4.72e-2
## 158 rep16_frac   Other      Other      -2.11e+0  1.69e-1 8.74e- 35  4.72e-2
## 159 rep16_frac   S          Intercept   5.57e-1  3.13e-3 0.         1.99e-2
## 160 rep16_frac   S          S          -2.73e-2  3.41e-3 1.84e- 15  1.99e-2
#fit each model
regs = map(outcomes, function(outcome) {
  #make model
  this_model = str_glue("{outcome} ~ {str_c(preds, collapse = ' + ')}")
  
  #fit OLS
  ols(this_model %>% as.formula(), data = d, weights = d$popsqrt)
}) %>% 
  #add names
  set_names(outcomes)

#full output
regs
## $dem16_frac
## Frequencies of Missing Values Due to Each Variable
##  dem16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    3721.81    R2       0.704    
##  sigma1.3826    d.f.            10    R2 adj   0.703    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.127    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.31860 -0.06281 -0.01325  0.04365  0.46073 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.2100 0.0253  8.31 <0.0001 
##  IQ          -0.0254 0.0036 -7.06 <0.0001 
##  S            0.0736 0.0034 21.49 <0.0001 
##  Black        0.9990 0.0251 39.86 <0.0001 
##  Hispanic     0.6166 0.0198 31.16 <0.0001 
##  Asian        1.1953 0.0669 17.87 <0.0001 
##  Amerindian   0.9596 0.0435 22.07 <0.0001 
##  Other        0.6885 0.1528  4.51 <0.0001 
##  homogeneity  0.3595 0.0192 18.71 <0.0001 
##  density      0.0916 0.0032 29.00 <0.0001 
##  median_age   0.0035 0.0004  7.93 <0.0001 
##  
## 
## $dem12_frac
## Frequencies of Missing Values Due to Each Variable
##  dem12_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2439.81    R2       0.550    
##  sigma1.5355    d.f.            10    R2 adj   0.548    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.104    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.284540 -0.072581 -0.009637  0.059038  0.428418 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.1154 0.0281   4.11 <0.0001 
##  IQ          -0.0397 0.0040  -9.97 <0.0001 
##  S            0.0628 0.0038  16.49 <0.0001 
##  Black        0.9091 0.0278  32.66 <0.0001 
##  Hispanic     0.5394 0.0220  24.54 <0.0001 
##  Asian        1.1171 0.0743  15.04 <0.0001 
##  Amerindian   0.9757 0.0483  20.20 <0.0001 
##  Other        0.9264 0.1697   5.46 <0.0001 
##  homogeneity  0.4719 0.0213  22.11 <0.0001 
##  density      0.0863 0.0035  24.61 <0.0001 
##  median_age   0.0051 0.0005  10.39 <0.0001 
##  
## 
## $dem08_frac
## Frequencies of Missing Values Due to Each Variable
##  dem08_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2094.82    R2       0.496    
##  sigma1.5157    d.f.            10    R2 adj   0.494    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.093    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.286294 -0.071153 -0.006646  0.061337  0.453818 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.1682 0.0277  6.07 <0.0001 
##  IQ          -0.0391 0.0039 -9.94 <0.0001 
##  S            0.0598 0.0038 15.92 <0.0001 
##  Black        0.7949 0.0275 28.93 <0.0001 
##  Hispanic     0.4800 0.0217 22.12 <0.0001 
##  Asian        1.0964 0.0733 14.95 <0.0001 
##  Amerindian   0.9091 0.0477 19.07 <0.0001 
##  Other        0.7330 0.1675  4.38 <0.0001 
##  homogeneity  0.4722 0.0211 22.41 <0.0001 
##  density      0.0824 0.0035 23.81 <0.0001 
##  median_age   0.0045 0.0005  9.32 <0.0001 
##  
## 
## $rep16_frac
## Frequencies of Missing Values Due to Each Variable
##  rep16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    3397.38    R2       0.671    
##  sigma1.4787    d.f.            10    R2 adj   0.670    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.127    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.46271 -0.05027  0.01247  0.06950  0.35105 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.6796 0.0270  25.14 <0.0001 
##  IQ           0.0336 0.0038   8.75 <0.0001 
##  S           -0.0918 0.0037 -25.04 <0.0001 
##  Black       -0.9626 0.0268 -35.91 <0.0001 
##  Hispanic    -0.6116 0.0212 -28.90 <0.0001 
##  Asian       -1.1074 0.0715 -15.48 <0.0001 
##  Amerindian  -0.9936 0.0465 -21.37 <0.0001 
##  Other       -0.9843 0.1634  -6.02 <0.0001 
##  homogeneity -0.3750 0.0206 -18.24 <0.0001 
##  density     -0.0854 0.0034 -25.29 <0.0001 
##  median_age  -0.0011 0.0005  -2.27 0.0235  
##  
## 
## $rep12_frac
## Frequencies of Missing Values Due to Each Variable
##  rep12_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2310.54    R2       0.530    
##  sigma1.5712    d.f.            10    R2 adj   0.529    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.102    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.431948 -0.060544  0.008352  0.074768  0.296771 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.8648 0.0287  30.11 <0.0001 
##  IQ           0.0428 0.0041  10.49 <0.0001 
##  S           -0.0653 0.0039 -16.78 <0.0001 
##  Black       -0.8838 0.0285 -31.03 <0.0001 
##  Hispanic    -0.5321 0.0225 -23.66 <0.0001 
##  Asian       -1.1648 0.0760 -15.32 <0.0001 
##  Amerindian  -0.9644 0.0494 -19.52 <0.0001 
##  Other       -0.8764 0.1736  -5.05 <0.0001 
##  homogeneity -0.4746 0.0218 -21.73 <0.0001 
##  density     -0.0839 0.0036 -23.37 <0.0001 
##  median_age  -0.0049 0.0005  -9.64 <0.0001 
##  
## 
## $rep08_frac
## Frequencies of Missing Values Due to Each Variable
##  rep08_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    1977.25    R2       0.476    
##  sigma1.5425    d.f.            10    R2 adj   0.474    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.091    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.450297 -0.063853  0.005955  0.070711  0.289223 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.8222 0.0282  29.16 <0.0001 
##  IQ           0.0420 0.0040  10.49 <0.0001 
##  S           -0.0613 0.0038 -16.04 <0.0001 
##  Black       -0.7729 0.0280 -27.64 <0.0001 
##  Hispanic    -0.4670 0.0221 -21.15 <0.0001 
##  Asian       -1.1483 0.0746 -15.39 <0.0001 
##  Amerindian  -0.8951 0.0485 -18.45 <0.0001 
##  Other       -0.6796 0.1705  -3.99 <0.0001 
##  homogeneity -0.4789 0.0214 -22.33 <0.0001 
##  density     -0.0798 0.0035 -22.66 <0.0001 
##  median_age  -0.0044 0.0005  -8.84 <0.0001 
##  
## 
## $green16_frac
## Frequencies of Missing Values Due to Each Variable
## green16_frac           IQ            S        Black     Hispanic 
##          546           60           20            4            4 
##        Asian   Amerindian        Other  homogeneity      density 
##            4            4            4            4            7 
##   median_age    (weights) 
##            4            4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    2552    LR chi2    1071.52    R2       0.343    
##  sigma0.0750    d.f.            10    R2 adj   0.340    
##  d.f.   2541    Pr(> chi2)  0.0000    g        0.004    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.022812 -0.003329 -0.001127  0.001464  0.078546 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.0098 0.0015   6.70 <0.0001 
##  IQ          -0.0028 0.0002 -13.07 <0.0001 
##  S            0.0034 0.0002  16.52 <0.0001 
##  Black       -0.0043 0.0015  -2.91 0.0036  
##  Hispanic     0.0043 0.0011   3.88 0.0001  
##  Asian        0.0086 0.0039   2.21 0.0275  
##  Amerindian   0.0269 0.0027   9.83 <0.0001 
##  Other        0.1187 0.0099  12.03 <0.0001 
##  homogeneity  0.0050 0.0011   4.54 <0.0001 
##  density      0.0011 0.0002   6.22 <0.0001 
##  median_age   0.0000 0.0000  -0.18 0.8559  
##  
## 
## $libert16_frac
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ             S         Black      Hispanic 
##            35            60            20             4             4 
##         Asian    Amerindian         Other   homogeneity       density 
##             4             4             4             4             7 
##    median_age     (weights) 
##             4             4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    1703.17    R2       0.427    
##  sigma0.1623    d.f.            10    R2 adj   0.425    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.011    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.057930 -0.007215 -0.001671  0.004903  0.100029 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.0521 0.0030  17.56 <0.0001 
##  IQ          -0.0022 0.0004  -5.13 <0.0001 
##  S            0.0084 0.0004  21.01 <0.0001 
##  Black       -0.0222 0.0029  -7.55 <0.0001 
##  Hispanic     0.0072 0.0023   3.10 0.0020  
##  Asian       -0.0915 0.0079 -11.65 <0.0001 
##  Amerindian   0.0424 0.0051   8.31 <0.0001 
##  Other        0.2428 0.0179  13.54 <0.0001 
##  homogeneity  0.0045 0.0023   1.99 0.0463  
##  density     -0.0011 0.0004  -3.07 0.0022  
##  median_age  -0.0007 0.0001 -13.41 <0.0001 
## 
#table of betas
regs %>% 
  {suppressWarnings(map_df(., function(x) {
    x %>% 
      summary.lm() %>% 
      tidy() %>%
      mutate(
        star = if_else(abs(statistic) > 2.3, true = "*", false = ""),
        beta = str_glue("{format_digits(estimate, 3)} ({format_digits(std.error, 3)}){star}")
        ) %>% 
      filter(term != "Intercept") %>% 
      select(beta) %>% 
      df_t() %>% 
      mutate(r2adj = x %>% summary.lm() %>% .$adj.r.squared) %>% 
      set_colnames(c(preds, "r2adj"))
  }))} %>% 
  write_clipboard()
##                IQ               S           Black        Hispanic
## 1 -0.025 (0.004)*  0.074 (0.003)*  0.999 (0.025)*  0.617 (0.020)*
## 2 -0.040 (0.004)*  0.063 (0.004)*  0.909 (0.028)*  0.539 (0.022)*
## 3 -0.039 (0.004)*  0.060 (0.004)*  0.795 (0.027)*  0.480 (0.022)*
## 4  0.034 (0.004)* -0.092 (0.004)* -0.963 (0.027)* -0.612 (0.021)*
## 5  0.043 (0.004)* -0.065 (0.004)* -0.884 (0.028)* -0.532 (0.022)*
## 6  0.042 (0.004)* -0.061 (0.004)* -0.773 (0.028)* -0.467 (0.022)*
## 7 -0.003 (0.000)*  0.003 (0.000)* -0.004 (0.001)*  0.004 (0.001)*
## 8 -0.002 (0.000)*  0.008 (0.000)* -0.022 (0.003)*  0.007 (0.002)*
##             Asian      Amerindian           Other     Homogeneity
## 1  1.195 (0.067)*  0.960 (0.043)*  0.688 (0.153)*  0.360 (0.019)*
## 2  1.117 (0.074)*  0.976 (0.048)*  0.926 (0.170)*  0.472 (0.021)*
## 3  1.096 (0.073)*  0.909 (0.048)*  0.733 (0.167)*  0.472 (0.021)*
## 4 -1.107 (0.072)* -0.994 (0.047)* -0.984 (0.163)* -0.375 (0.021)*
## 5 -1.165 (0.076)* -0.964 (0.049)* -0.876 (0.174)* -0.475 (0.022)*
## 6 -1.148 (0.075)* -0.895 (0.049)* -0.680 (0.170)* -0.479 (0.021)*
## 7   0.009 (0.004)  0.027 (0.003)*  0.119 (0.010)*  0.005 (0.001)*
## 8 -0.091 (0.008)*  0.042 (0.005)*  0.243 (0.018)*   0.004 (0.002)
##           Density      Median age R2adj
## 1  0.092 (0.003)*  0.004 (0.000)*  0.70
## 2  0.086 (0.004)*  0.005 (0.000)*  0.55
## 3  0.082 (0.003)*  0.005 (0.000)*  0.49
## 4 -0.085 (0.003)*  -0.001 (0.000)  0.67
## 5 -0.084 (0.004)* -0.005 (0.001)*  0.53
## 6 -0.080 (0.004)* -0.004 (0.000)*  0.47
## 7  0.001 (0.000)*   0.000 (0.000)  0.34
## 8 -0.001 (0.000)* -0.001 (0.000)*  0.43

Unit weights

#single regressions
single_regs_nowt = expand_grid(outcome = outcomes,
            pred = preds) %>% 
  as_tibble() %>% 
  plyr::ddply(c("outcome", "pred"), function(x) {
    # browser()
    fit = ols(as.formula(str_glue("{x$outcome} ~ {x$pred}")), data = d)
    fit_tidy = fit %>% summary.lm() %>% tidy()
    
    tibble(
      term = fit_tidy$term,
      beta = fit_tidy$estimate,
      se = fit_tidy$std.error,
      p = fit_tidy$p.value,
      r2adj = fit %>% summary.lm() %>% .$adj.r.squared
    )
  }) %>% as_tibble()
single_regs_nowt %>% print(n = Inf)
## # A tibble: 160 x 7
##     outcome     pred      term            beta        se         p    r2adj
##     <chr>       <chr>     <chr>          <dbl>     <dbl>     <dbl>    <dbl>
##   1 dem08_frac  Amerindi… Intercept    4.11e-1 0.00254   0.         1.49e-2
##   2 dem08_frac  Amerindi… Amerindi…    2.71e-1 0.0391    4.93e- 12  1.49e-2
##   3 dem08_frac  Asian     Intercept    3.94e-1 0.00261   0.         1.02e-1
##   4 dem08_frac  Asian     Asian        1.98e+0 0.105     1.09e- 74  1.02e-1
##   5 dem08_frac  Black     Intercept    3.88e-1 0.00276   0.         1.05e-1
##   6 dem08_frac  Black     Black        3.12e-1 0.0163    2.35e- 77  1.05e-1
##   7 dem08_frac  density   Intercept    7.72e-1 0.0151    0.         1.56e-1
##   8 dem08_frac  density   density      7.45e-2 0.00311   1.21e-116  1.56e-1
##   9 dem08_frac  Hispanic  Intercept    4.10e-1 0.00291   0.         3.93e-3
##  10 dem08_frac  Hispanic  Hispanic     6.95e-2 0.0191    2.74e-  4  3.93e-3
##  11 dem08_frac  homogene… Intercept    5.25e-1 0.00982   0.         4.06e-2
##  12 dem08_frac  homogene… homogene…   -1.52e-1 0.0132    4.13e- 30  4.06e-2
##  13 dem08_frac  IQ        Intercept    4.17e-1 0.00244   0.         2.35e-2
##  14 dem08_frac  IQ        IQ          -2.54e-2 0.00294   8.84e- 18  2.35e-2
##  15 dem08_frac  median_a… Intercept    6.16e-1 0.0202    2.88e-178  3.07e-2
##  16 dem08_frac  median_a… median_a…   -5.02e-3 0.000504  4.32e- 23  3.07e-2
##  17 dem08_frac  Other     Intercept    4.00e-1 0.00358   0.         1.09e-2
##  18 dem08_frac  Other     Other        9.86e-1 0.166     3.00e-  9  1.09e-2
##  19 dem08_frac  S         Intercept    4.14e-1 0.00265   0.         1.98e-3
##  20 dem08_frac  S         S           -7.10e-3 0.00265   7.46e-  3  1.98e-3
##  21 dem12_frac  Amerindi… Intercept    3.80e-1 0.00271   0.         1.55e-2
##  22 dem12_frac  Amerindi… Amerindi…    2.94e-1 0.0416    1.98e- 12  1.55e-2
##  23 dem12_frac  Asian     Intercept    3.62e-1 0.00277   0.         1.09e-1
##  24 dem12_frac  Asian     Asian        2.18e+0 0.112     2.19e- 80  1.09e-1
##  25 dem12_frac  Black     Intercept    3.48e-1 0.00284   0.         1.65e-1
##  26 dem12_frac  Black     Black        4.17e-1 0.0168    2.04e-124  1.65e-1
##  27 dem12_frac  density   Intercept    7.83e-1 0.0159    0.         1.70e-1
##  28 dem12_frac  density   density      8.31e-2 0.00328   1.44e-128  1.70e-1
##  29 dem12_frac  Hispanic  Intercept    3.76e-1 0.00309   0.         9.00e-3
##  30 dem12_frac  Hispanic  Hispanic     1.10e-1 0.0203    6.81e-  8  9.00e-3
##  31 dem12_frac  homogene… Intercept    5.54e-1 0.0102    0.         8.54e-2
##  32 dem12_frac  homogene… homogene…   -2.35e-1 0.0138    1.54e- 62  8.54e-2
##  33 dem12_frac  IQ        Intercept    3.86e-1 0.00258   0.         4.38e-2
##  34 dem12_frac  IQ        IQ          -3.69e-2 0.00311   7.15e- 32  4.38e-2
##  35 dem12_frac  median_a… Intercept    6.43e-1 0.0214    4.03e-174  4.50e-2
##  36 dem12_frac  median_a… median_a…   -6.48e-3 0.000533  3.35e- 33  4.50e-2
##  37 dem12_frac  Other     Intercept    3.66e-1 0.00381   0.         1.40e-2
##  38 dem12_frac  Other     Other        1.19e+0 0.176     2.13e- 11  1.40e-2
##  39 dem12_frac  S         Intercept    3.80e-1 0.00281   0.         9.18e-3
##  40 dem12_frac  S         S           -1.54e-2 0.00282   5.37e-  8  9.18e-3
##  41 dem16_frac  Amerindi… Intercept    3.14e-1 0.00282   0.         5.69e-3
##  42 dem16_frac  Amerindi… Amerindi…    1.94e-1 0.0448    1.50e-  5  5.69e-3
##  43 dem16_frac  Asian     Intercept    2.86e-1 0.00276   0.         1.79e-1
##  44 dem16_frac  Asian     Asian        2.89e+0 0.111     1.91e-135  1.79e-1
##  45 dem16_frac  Black     Intercept    2.70e-1 0.00279   0.         2.49e-1
##  46 dem16_frac  Black     Black        5.30e-1 0.0165    8.52e-196  2.49e-1
##  47 dem16_frac  density   Intercept    8.04e-1 0.0158    0.         2.38e-1
##  48 dem16_frac  density   density      1.02e-1 0.00327   1.45e-185  2.38e-1
##  49 dem16_frac  Hispanic  Intercept    2.99e-1 0.00316   0.         3.65e-2
##  50 dem16_frac  Hispanic  Hispanic     2.26e-1 0.0207    3.37e- 27  3.65e-2
##  51 dem16_frac  homogene… Intercept    5.91e-1 0.00985   0.         2.09e-1
##  52 dem16_frac  homogene… homogene…   -3.81e-1 0.0133    6.52e-161  2.09e-1
##  53 dem16_frac  IQ        Intercept    3.18e-1 0.00268   0.         4.30e-2
##  54 dem16_frac  IQ        IQ          -3.80e-2 0.00323   2.87e- 31  4.30e-2
##  55 dem16_frac  median_a… Intercept    7.15e-1 0.0216    3.12e-206  9.97e-2
##  56 dem16_frac  median_a… median_a…   -9.99e-3 0.000537  3.48e- 73  9.97e-2
##  57 dem16_frac  Other     Intercept    2.96e-1 0.00395   0.         1.70e-2
##  58 dem16_frac  Other     Other        1.35e+0 0.183     1.86e- 13  1.70e-2
##  59 dem16_frac  S         Intercept    3.12e-1 0.00292   0.         7.54e-3
##  60 dem16_frac  S         S           -1.45e-2 0.00293   7.56e-  7  7.54e-3
##  61 green16_fr… Amerindi… Intercept    8.36e-3 0.000126  0.         7.04e-2
##  62 green16_fr… Amerindi… Amerindi…    3.43e-2 0.00244   2.23e- 43  7.04e-2
##  63 green16_fr… Asian     Intercept    7.89e-3 0.000134  0.         8.16e-2
##  64 green16_fr… Asian     Asian        7.72e-2 0.00507   2.82e- 50  8.16e-2
##  65 green16_fr… Black     Intercept    9.79e-3 0.000141  0.         7.74e-2
##  66 green16_fr… Black     Black       -1.32e-2 0.000891  1.23e- 47  7.74e-2
##  67 green16_fr… density   Intercept    1.22e-2 0.000827  1.82e- 47  6.48e-3
##  68 green16_fr… density   density      7.21e-4 0.000170  2.34e-  5  6.48e-3
##  69 green16_fr… Hispanic  Intercept    8.64e-3 0.000149  0.         3.36e-4
##  70 green16_fr… Hispanic  Hispanic     1.24e-3 0.000909  1.71e-  1  3.36e-4
##  71 green16_fr… homogene… Intercept    8.17e-3 0.000526  4.47e- 52  1.14e-4
##  72 green16_fr… homogene… homogene…    7.94e-4 0.000698  2.55e-  1  1.14e-4
##  73 green16_fr… IQ        Intercept    8.68e-3 0.000124  0.         2.04e-2
##  74 green16_fr… IQ        IQ           1.10e-3 0.000150  2.49e- 13  2.04e-2
##  75 green16_fr… median_a… Intercept    1.08e-2 0.00105   1.80e- 24  1.14e-3
##  76 green16_fr… median_a… median_a…   -5.18e-5 0.0000260 4.64e-  2  1.14e-3
##  77 green16_fr… Other     Intercept    5.95e-3 0.000172  8.39e-215  1.57e-1
##  78 green16_fr… Other     Other        1.89e-1 0.00858   6.38e- 99  1.57e-1
##  79 green16_fr… S         Intercept    9.40e-3 0.000126  0.         1.07e-1
##  80 green16_fr… S         S            2.27e-3 0.000129  6.16e- 66  1.07e-1
##  81 libert16_f… Amerindi… Intercept    3.11e-2 0.000278  0.         2.06e-2
##  82 libert16_f… Amerindi… Amerindi…    3.59e-2 0.00441   5.30e- 16  2.06e-2
##  83 libert16_f… Asian     Intercept    3.10e-2 0.000300  0.         8.40e-3
##  84 libert16_f… Asian     Asian        6.32e-2 0.0121    1.83e-  7  8.40e-3
##  85 libert16_f… Black     Intercept    3.62e-2 0.000277  0.         2.47e-1
##  86 libert16_f… Black     Black       -5.23e-2 0.00164   1.06e-193  2.47e-1
##  87 libert16_f… density   Intercept    2.39e-2 0.00179   1.83e- 39  5.79e-3
##  88 libert16_f… density   density     -1.62e-3 0.000370  1.28e-  5  5.79e-3
##  89 libert16_f… Hispanic  Intercept    3.08e-2 0.000318  0.         6.90e-3
##  90 libert16_f… Hispanic  Hispanic     9.92e-3 0.00209   2.06e-  6  6.90e-3
##  91 libert16_f… homogene… Intercept    1.90e-2 0.00107   4.78e- 67  4.50e-2
##  92 libert16_f… homogene… homogene…    1.75e-2 0.00144   3.11e- 33  4.50e-2
##  93 libert16_f… IQ        Intercept    3.14e-2 0.000257  0.         1.23e-1
##  94 libert16_f… IQ        IQ           6.40e-3 0.000310  4.12e- 89  1.23e-1
##  95 libert16_f… median_a… Intercept    3.19e-2 0.00226   3.70e- 44 -3.15e-4
##  96 libert16_f… median_a… median_a…   -7.96e-6 0.0000561 8.87e-  1 -3.15e-4
##  97 libert16_f… Other     Intercept    2.84e-2 0.000386  0.         4.13e-2
##  98 libert16_f… Other     Other        2.07e-1 0.0179    1.43e- 30  4.13e-2
##  99 libert16_f… S         Intercept    3.45e-2 0.000246  0.         2.75e-1
## 100 libert16_f… S         S            8.48e-3 0.000247  1.06e-218  2.75e-1
## 101 rep08_frac  Amerindi… Intercept    5.72e-1 0.00254   0.         1.51e-2
## 102 rep08_frac  Amerindi… Amerindi…   -2.72e-1 0.0390    3.81e- 12  1.51e-2
## 103 rep08_frac  Asian     Intercept    5.89e-1 0.00261   0.         9.98e-2
## 104 rep08_frac  Asian     Asian       -1.95e+0 0.105     2.92e- 73  9.98e-2
## 105 rep08_frac  Black     Intercept    5.93e-1 0.00278   0.         8.88e-2
## 106 rep08_frac  Black     Black       -2.86e-1 0.0164    4.46e- 65  8.88e-2
## 107 rep08_frac  density   Intercept    2.30e-1 0.0152    5.64e- 50  1.41e-1
## 108 rep08_frac  density   density     -7.07e-2 0.00313   1.02e-104  1.41e-1
## 109 rep08_frac  Hispanic  Intercept    5.72e-1 0.00291   0.         2.49e-3
## 110 rep08_frac  Hispanic  Hispanic    -5.65e-2 0.0191    3.08e-  3  2.49e-3
## 111 rep08_frac  homogene… Intercept    4.74e-1 0.00986   0.         2.98e-2
## 112 rep08_frac  homogene… homogene…    1.30e-1 0.0133    1.72e- 22  2.98e-2
## 113 rep08_frac  IQ        Intercept    5.67e-1 0.00245   0.         1.94e-2
## 114 rep08_frac  IQ        IQ           2.31e-2 0.00295   5.77e- 15  1.94e-2
## 115 rep08_frac  median_a… Intercept    3.86e-1 0.0203    1.93e- 76  2.54e-2
## 116 rep08_frac  median_a… median_a…    4.57e-3 0.000504  2.09e- 19  2.54e-2
## 117 rep08_frac  Other     Intercept    5.83e-1 0.00358   0.         1.04e-2
## 118 rep08_frac  Other     Other       -9.59e-1 0.165     7.53e-  9  1.04e-2
## 119 rep08_frac  S         Intercept    5.69e-1 0.00265   0.         6.51e-4
## 120 rep08_frac  S         S            4.61e-3 0.00265   8.23e-  2  6.51e-4
## 121 rep12_frac  Amerindi… Intercept    6.01e-1 0.00271   0.         1.52e-2
## 122 rep12_frac  Amerindi… Amerindi…   -2.92e-1 0.0416    3.06e- 12  1.52e-2
## 123 rep12_frac  Asian     Intercept    6.20e-1 0.00277   0.         1.11e-1
## 124 rep12_frac  Asian     Asian       -2.20e+0 0.112     9.31e- 82  1.11e-1
## 125 rep12_frac  Black     Intercept    6.31e-1 0.00288   0.         1.43e-1
## 126 rep12_frac  Black     Black       -3.88e-1 0.0170    7.53e-107  1.43e-1
## 127 rep12_frac  density   Intercept    2.12e-1 0.0160    4.60e- 39  1.59e-1
## 128 rep12_frac  density   density     -8.02e-2 0.00331   2.55e-119  1.59e-1
## 129 rep12_frac  Hispanic  Intercept    6.05e-1 0.00309   0.         8.59e-3
## 130 rep12_frac  Hispanic  Hispanic    -1.07e-1 0.0203    1.32e-  7  8.59e-3
## 131 rep12_frac  homogene… Intercept    4.40e-1 0.0103    1.04e-314  7.33e-2
## 132 rep12_frac  homogene… homogene…    2.18e-1 0.0139    1.35e- 53  7.33e-2
## 133 rep12_frac  IQ        Intercept    5.95e-1 0.00259   0.         3.74e-2
## 134 rep12_frac  IQ        IQ           3.41e-2 0.00312   2.25e- 27  3.74e-2
## 135 rep12_frac  median_a… Intercept    3.51e-1 0.0215    1.41e- 57  4.07e-2
## 136 rep12_frac  median_a… median_a…    6.16e-3 0.000534  3.48e- 30  4.07e-2
## 137 rep12_frac  Other     Intercept    6.15e-1 0.00381   0.         1.40e-2
## 138 rep12_frac  Other     Other       -1.19e+0 0.176     2.17e- 11  1.40e-2
## 139 rep12_frac  S         Intercept    6.00e-1 0.00282   0.         5.47e-3
## 140 rep12_frac  S         S            1.20e-2 0.00282   2.20e-  5  5.47e-3
## 141 rep16_frac  Amerindi… Intercept    6.40e-1 0.00287   0.         9.23e-3
## 142 rep16_frac  Amerindi… Amerindi…   -2.50e-1 0.0456    4.76e-  8  9.23e-3
## 143 rep16_frac  Asian     Intercept    6.68e-1 0.00279   0.         1.89e-1
## 144 rep16_frac  Asian     Asian       -3.03e+0 0.112     4.35e-144  1.89e-1
## 145 rep16_frac  Black     Intercept    6.76e-1 0.00299   0.         1.72e-1
## 146 rep16_frac  Black     Black       -4.48e-1 0.0177    1.59e-129  1.72e-1
## 147 rep16_frac  density   Intercept    1.66e-1 0.0164    8.39e- 24  2.12e-1
## 148 rep16_frac  density   density     -9.81e-2 0.00339   1.66e-163  2.12e-1
## 149 rep16_frac  Hispanic  Intercept    6.55e-1 0.00322   0.         3.88e-2
## 150 rep16_frac  Hispanic  Hispanic    -2.37e-1 0.0211    8.42e- 29  3.88e-2
## 151 rep16_frac  homogene… Intercept    3.83e-1 0.0103    9.30e-252  1.72e-1
## 152 rep16_frac  homogene… homogene…    3.52e-1 0.0138    3.55e-130  1.72e-1
## 153 rep16_frac  IQ        Intercept    6.35e-1 0.00276   0.         2.27e-2
## 154 rep16_frac  IQ        IQ           2.82e-2 0.00333   3.43e- 17  2.27e-2
## 155 rep16_frac  median_a… Intercept    2.08e-1 0.0219    4.29e- 21  1.11e-1
## 156 rep16_frac  median_a… median_a…    1.07e-2 0.000544  1.03e- 81  1.11e-1
## 157 rep16_frac  Other     Intercept    6.62e-1 0.00401   0.         2.49e-2
## 158 rep16_frac  Other     Other       -1.66e+0 0.185     5.15e- 19  2.49e-2
## 159 rep16_frac  S         Intercept    6.36e-1 0.00299   0.        -3.20e-4
## 160 rep16_frac  S         S            2.64e-4 0.00300   9.30e-  1 -3.20e-4
#fit each model
regs_nowt = map(outcomes, function(outcome) {
  #make model 
  this_model = str_glue("{outcome} ~ {str_c(preds, collapse = ' + ')}")
  
  #fit OLS
  ols(this_model %>% as.formula(), data = d)
}) %>% 
  #add names
  set_names(outcomes)

#full output
regs_nowt
## $dem16_frac
## Frequencies of Missing Values Due to Each Variable
##  dem16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    3372.09    R2       0.668    
##  sigma0.0873    d.f.            10    R2 adj   0.667    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.127    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.603068 -0.057566 -0.009821  0.043576  0.457820 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.0399 0.0238  1.68 0.0940  
##  IQ          -0.0128 0.0032 -3.97 <0.0001 
##  S            0.0614 0.0029 20.91 <0.0001 
##  Black        1.1130 0.0233 47.74 <0.0001 
##  Hispanic     0.7155 0.0201 35.68 <0.0001 
##  Asian        1.8007 0.1022 17.62 <0.0001 
##  Amerindian   1.0238 0.0332 30.88 <0.0001 
##  Other        1.1463 0.1647  6.96 <0.0001 
##  homogeneity  0.4621 0.0184 25.10 <0.0001 
##  density      0.0817 0.0030 27.63 <0.0001 
##  median_age   0.0037 0.0004  9.04 <0.0001 
##  
## 
## $dem12_frac
## Frequencies of Missing Values Due to Each Variable
##  dem12_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2238.68    R2       0.519    
##  sigma0.1011    d.f.            10    R2 adj   0.518    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.105    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.494996 -0.068600 -0.006851  0.061470  0.423143 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept   -0.0108 0.0276 -0.39 0.6962  
##  IQ          -0.0270 0.0037 -7.24 <0.0001 
##  S            0.0549 0.0034 16.13 <0.0001 
##  Black        1.0235 0.0270 37.90 <0.0001 
##  Hispanic     0.6516 0.0232 28.04 <0.0001 
##  Asian        1.5566 0.1184 13.15 <0.0001 
##  Amerindian   1.0677 0.0384 27.80 <0.0001 
##  Other        1.3326 0.1908  6.99 <0.0001 
##  homogeneity  0.5729 0.0213 26.86 <0.0001 
##  density      0.0815 0.0034 23.81 <0.0001 
##  median_age   0.0050 0.0005 10.35 <0.0001 
##  
## 
## $dem08_frac
## Frequencies of Missing Values Due to Each Variable
##  dem08_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    1883.80    R2       0.460    
##  sigma0.1005    d.f.            10    R2 adj   0.458    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.093    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.44680 -0.06862 -0.00490  0.06350  0.44818 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.0276 0.0274  1.00 0.3152  
##  IQ          -0.0256 0.0037 -6.92 <0.0001 
##  S            0.0501 0.0034 14.83 <0.0001 
##  Black        0.9000 0.0268 33.53 <0.0001 
##  Hispanic     0.5912 0.0231 25.60 <0.0001 
##  Asian        1.5849 0.1177 13.47 <0.0001 
##  Amerindian   1.0188 0.0382 26.69 <0.0001 
##  Other        1.0174 0.1896  5.37 <0.0001 
##  homogeneity  0.5775 0.0212 27.24 <0.0001 
##  density      0.0772 0.0034 22.69 <0.0001 
##  median_age   0.0047 0.0005  9.78 <0.0001 
##  
## 
## $rep16_frac
## Frequencies of Missing Values Due to Each Variable
##  rep16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2942.19    R2       0.618    
##  sigma0.0955    d.f.            10    R2 adj   0.617    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.125    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.45694 -0.05133  0.00848  0.06381  0.65534 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.8914 0.0261  34.19 <0.0001 
##  IQ           0.0170 0.0035   4.84 <0.0001 
##  S           -0.0778 0.0032 -24.23 <0.0001 
##  Black       -1.0957 0.0255 -42.97 <0.0001 
##  Hispanic    -0.7234 0.0219 -32.98 <0.0001 
##  Asian       -1.7903 0.1118 -16.02 <0.0001 
##  Amerindian  -1.0630 0.0363 -29.32 <0.0001 
##  Other       -1.4358 0.1801  -7.97 <0.0001 
##  homogeneity -0.4842 0.0201 -24.05 <0.0001 
##  density     -0.0735 0.0032 -22.72 <0.0001 
##  median_age  -0.0019 0.0005  -4.12 <0.0001 
##  
## 
## $rep12_frac
## Frequencies of Missing Values Due to Each Variable
##  rep12_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    2089.57    R2       0.495    
##  sigma0.1037    d.f.            10    R2 adj   0.493    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.103    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.425729 -0.063484  0.005646  0.070101  0.522200 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    1.0019 0.0283  35.39 <0.0001 
##  IQ           0.0284 0.0038   7.44 <0.0001 
##  S           -0.0565 0.0035 -16.19 <0.0001 
##  Black       -1.0011 0.0277 -36.15 <0.0001 
##  Hispanic    -0.6441 0.0238 -27.04 <0.0001 
##  Asian       -1.6423 0.1214 -13.53 <0.0001 
##  Amerindian  -1.0600 0.0394 -26.92 <0.0001 
##  Other       -1.2822 0.1956  -6.56 <0.0001 
##  homogeneity -0.5781 0.0219 -26.43 <0.0001 
##  density     -0.0787 0.0035 -22.40 <0.0001 
##  median_age  -0.0048 0.0005  -9.85 <0.0001 
##  
## 
## $rep08_frac
## Frequencies of Missing Values Due to Each Variable
##  rep08_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age 
##           4           4           4           7           4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    1756.88    R2       0.437    
##  sigma0.1025    d.f.            10    R2 adj   0.435    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.091    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.443098 -0.065920  0.003441  0.069500  0.464983 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.9711 0.0280  34.69 <0.0001 
##  IQ           0.0272 0.0038   7.19 <0.0001 
##  S           -0.0507 0.0034 -14.72 <0.0001 
##  Black       -0.8786 0.0274 -32.09 <0.0001 
##  Hispanic    -0.5739 0.0236 -24.36 <0.0001 
##  Asian       -1.6727 0.1200 -13.94 <0.0001 
##  Amerindian  -1.0105 0.0389 -25.95 <0.0001 
##  Other       -0.9523 0.1934  -4.92 <0.0001 
##  homogeneity -0.5854 0.0216 -27.07 <0.0001 
##  density     -0.0734 0.0035 -21.14 <0.0001 
##  median_age  -0.0045 0.0005  -9.31 <0.0001 
##  
## 
## $green16_frac
## Frequencies of Missing Values Due to Each Variable
## green16_frac           IQ            S        Black     Hispanic 
##          546           60           20            4            4 
##        Asian   Amerindian        Other  homogeneity      density 
##            4            4            4            4            7 
##   median_age 
##            4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    2552    LR chi2    1011.98    R2       0.327    
##  sigma0.0052    d.f.            10    R2 adj   0.325    
##  d.f.   2541    Pr(> chi2)  0.0000    g        0.004    
##  
##  Residuals
##  
##         Min         1Q     Median         3Q        Max 
##  -0.0431558 -0.0029389 -0.0008577  0.0016070  0.0755493 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.0020 0.0015  1.27 0.2045  
##  IQ          -0.0014 0.0002 -6.58 <0.0001 
##  S            0.0026 0.0002 13.97 <0.0001 
##  Black        0.0005 0.0015  0.35 0.7293  
##  Hispanic     0.0073 0.0012  5.88 <0.0001 
##  Asian        0.0122 0.0066  1.84 0.0657  
##  Amerindian   0.0347 0.0024 14.61 <0.0001 
##  Other        0.2078 0.0138 15.08 <0.0001 
##  homogeneity  0.0078 0.0012  6.66 <0.0001 
##  density      0.0008 0.0002  3.97 <0.0001 
##  median_age   0.0000 0.0000  1.19 0.2345  
##  
## 
## $libert16_frac
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ             S         Black      Hispanic 
##            35            60            20             4             4 
##         Asian    Amerindian         Other   homogeneity       density 
##             4             4             4             4             7 
##    median_age 
##             4 
## 
## Linear Regression Model
##  
##  ols(formula = this_model %>% as.formula(), data = d)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    1702.18    R2       0.427    
##  sigma0.0115    d.f.            10    R2 adj   0.425    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.011    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.047952 -0.006833 -0.001459  0.005089  0.092866 
##  
##  
##              Coef    S.E.   t     Pr(>|t|)
##  Intercept    0.0260 0.0031  8.30 <0.0001 
##  IQ          -0.0009 0.0004 -2.15 0.0320  
##  S            0.0087 0.0004 22.57 <0.0001 
##  Black       -0.0073 0.0031 -2.37 0.0180  
##  Hispanic     0.0226 0.0026  8.56 <0.0001 
##  Asian       -0.0573 0.0134 -4.27 <0.0001 
##  Amerindian   0.0404 0.0044  9.26 <0.0001 
##  Other        0.2819 0.0216 13.02 <0.0001 
##  homogeneity  0.0136 0.0024  5.63 <0.0001 
##  density     -0.0012 0.0004 -3.02 0.0026  
##  median_age  -0.0003 0.0001 -5.64 <0.0001 
## 
#table of betas
regs_nowt %>% 
  {suppressWarnings(map_df(., function(x) {
    x %>% 
      summary.lm() %>% 
      tidy() %>%
      mutate(
        star = if_else(abs(statistic) > 2.3, true = "*", false = ""),
        beta = str_glue("{format_digits(estimate, 3)} ({format_digits(std.error, 3)}){star}")
        ) %>% 
      filter(term != "Intercept") %>% 
      select(beta) %>% 
      df_t() %>% 
      mutate(r2adj = x %>% summary.lm() %>% .$adj.r.squared) %>% 
      set_colnames(c(preds, "r2adj"))
  }))} %>% 
  write_clipboard()
##                IQ               S           Black        Hispanic
## 1 -0.013 (0.003)*  0.061 (0.003)*  1.113 (0.023)*  0.716 (0.020)*
## 2 -0.027 (0.004)*  0.055 (0.003)*  1.024 (0.027)*  0.652 (0.023)*
## 3 -0.026 (0.004)*  0.050 (0.003)*  0.900 (0.027)*  0.591 (0.023)*
## 4  0.017 (0.004)* -0.078 (0.003)* -1.096 (0.025)* -0.723 (0.022)*
## 5  0.028 (0.004)* -0.056 (0.003)* -1.001 (0.028)* -0.644 (0.024)*
## 6  0.027 (0.004)* -0.051 (0.003)* -0.879 (0.027)* -0.574 (0.024)*
## 7 -0.001 (0.000)*  0.003 (0.000)*   0.001 (0.002)  0.007 (0.001)*
## 8  -0.001 (0.000)  0.009 (0.000)* -0.007 (0.003)*  0.023 (0.003)*
##             Asian      Amerindian           Other     Homogeneity
## 1  1.801 (0.102)*  1.024 (0.033)*  1.146 (0.165)*  0.462 (0.018)*
## 2  1.557 (0.118)*  1.068 (0.038)*  1.333 (0.191)*  0.573 (0.021)*
## 3  1.585 (0.118)*  1.019 (0.038)*  1.017 (0.190)*  0.577 (0.021)*
## 4 -1.790 (0.112)* -1.063 (0.036)* -1.436 (0.180)* -0.484 (0.020)*
## 5 -1.642 (0.121)* -1.060 (0.039)* -1.282 (0.196)* -0.578 (0.022)*
## 6 -1.673 (0.120)* -1.010 (0.039)* -0.952 (0.193)* -0.585 (0.022)*
## 7   0.012 (0.007)  0.035 (0.002)*  0.208 (0.014)*  0.008 (0.001)*
## 8 -0.057 (0.013)*  0.040 (0.004)*  0.282 (0.022)*  0.014 (0.002)*
##           Density      Median age R2adj
## 1  0.082 (0.003)*  0.004 (0.000)*  0.67
## 2  0.082 (0.003)*  0.005 (0.000)*  0.52
## 3  0.077 (0.003)*  0.005 (0.000)*  0.46
## 4 -0.073 (0.003)* -0.002 (0.000)*  0.62
## 5 -0.079 (0.004)* -0.005 (0.000)*  0.49
## 6 -0.073 (0.003)* -0.005 (0.000)*  0.44
## 7  0.001 (0.000)*   0.000 (0.000)  0.32
## 8 -0.001 (0.000)*  0.000 (0.000)*  0.42

Extra models for reviewers

Which covariates cause the change in beta of IQ?

#libertarian models
ols(libert16_frac ~ IQ, data = d, weights = d$popsqrt)
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ     (weights) 
##            35            60             4 
## 
## Linear Regression Model
##  
##  ols(formula = libert16_frac ~ IQ, data = d, weights = d$popsqrt)
##  
##  
##                 Model Likelihood     Discrimination    
##                    Ratio Test           Indexes        
##  Obs    3060    LR chi2    266.55    R2       0.083    
##  sigma0.2049    d.f.            1    R2 adj   0.083    
##  d.f.   3058    Pr(> chi2) 0.0000    g        0.005    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.031809 -0.011159 -0.002825  0.007651  0.104017 
##  
##  
##            Coef   S.E.   t      Pr(>|t|)
##  Intercept 0.0321 0.0002 129.62 <0.0001 
##  IQ        0.0050 0.0003  16.68 <0.0001 
## 
ols(libert16_frac ~ IQ + S, data = d, weights = d$popsqrt)
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ             S     (weights) 
##            35            60            20             4 
## 
## Linear Regression Model
##  
##  ols(formula = libert16_frac ~ IQ + S, data = d, weights = d$popsqrt)
##  
##  
##                 Model Likelihood     Discrimination    
##                    Ratio Test           Indexes        
##  Obs    3058    LR chi2    775.16    R2       0.224    
##  sigma0.1887    d.f.            2    R2 adj   0.223    
##  d.f.   3055    Pr(> chi2) 0.0000    g        0.008    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.033136 -0.008075 -0.001865  0.006350  0.107837 
##  
##  
##            Coef    S.E.   t      Pr(>|t|)
##  Intercept  0.0345 0.0003 138.02 <0.0001 
##  IQ        -0.0029 0.0004  -6.74 <0.0001 
##  S          0.0093 0.0004  23.51 <0.0001 
## 
ols(libert16_frac ~ IQ + density, data = d, weights = d$popsqrt)
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ       density     (weights) 
##            35            60             7             4 
## 
## Linear Regression Model
##  
##  ols(formula = libert16_frac ~ IQ + density, data = d, weights = d$popsqrt)
##  
##  
##                 Model Likelihood     Discrimination    
##                    Ratio Test           Indexes        
##  Obs    3060    LR chi2    297.68    R2       0.093    
##  sigma0.2039    d.f.            2    R2 adj   0.092    
##  d.f.   3057    Pr(> chi2) 0.0000    g        0.005    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.036561 -0.011940 -0.003674  0.006873  0.100717 
##  
##  
##            Coef    S.E.   t     Pr(>|t|)
##  Intercept  0.0239 0.0015 16.17 <0.0001 
##  IQ         0.0053 0.0003 17.49 <0.0001 
##  density   -0.0019 0.0003 -5.59 <0.0001 
## 
ols(libert16_frac ~ IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity, data = d, weights = d$popsqrt)
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ         Black      Hispanic         Asian 
##            35            60             4             4             4 
##    Amerindian         Other   homogeneity     (weights) 
##             4             4             4             4 
## 
## Linear Regression Model
##  
##  ols(formula = libert16_frac ~ IQ + Black + Hispanic + Asian + 
##      Amerindian + Other + homogeneity, data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3060    LR chi2    1105.99    R2       0.303    
##  sigma0.1789    d.f.             7    R2 adj   0.302    
##  d.f.   3052    Pr(> chi2)  0.0000    g        0.008    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.057314 -0.009433 -0.002301  0.005649  0.097757 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.0353 0.0022  15.79 <0.0001 
##  IQ           0.0035 0.0003  10.10 <0.0001 
##  Black       -0.0391 0.0030 -13.13 <0.0001 
##  Hispanic     0.0084 0.0025   3.40 0.0007  
##  Asian       -0.0534 0.0081  -6.60 <0.0001 
##  Amerindian   0.0375 0.0055   6.87 <0.0001 
##  Other        0.2437 0.0197  12.37 <0.0001 
##  homogeneity -0.0052 0.0024  -2.15 0.0315  
## 
ols(libert16_frac ~ IQ + median_age, data = d, weights = d$popsqrt)
## Frequencies of Missing Values Due to Each Variable
## libert16_frac            IQ    median_age     (weights) 
##            35            60             4             4 
## 
## Linear Regression Model
##  
##  ols(formula = libert16_frac ~ IQ + median_age, data = d, weights = d$popsqrt)
##  
##  
##                 Model Likelihood     Discrimination    
##                    Ratio Test           Indexes        
##  Obs    3060    LR chi2    372.22    R2       0.115    
##  sigma0.2015    d.f.            2    R2 adj   0.114    
##  d.f.   3057    Pr(> chi2) 0.0000    g        0.005    
##  
##  Residuals
##  
##        Min        1Q    Median        3Q       Max 
##  -0.033359 -0.010007 -0.002060  0.008298  0.106056 
##  
##  
##             Coef    S.E.   t      Pr(>|t|)
##  Intercept   0.0537 0.0021  25.57 <0.0001 
##  IQ          0.0055 0.0003  18.43 <0.0001 
##  median_age -0.0006 0.0001 -10.36 <0.0001 
## 
#nonlinearity
(rep16_linear = ols(rep16_frac ~ IQ + S + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density + median_age, data = d, weights = d$popsqrt))
## Frequencies of Missing Values Due to Each Variable
##  rep16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = rep16_frac ~ IQ + S + Black + Hispanic + Asian + 
##      Amerindian + Other + homogeneity + density + median_age, 
##      data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    3397.38    R2       0.671    
##  sigma1.4787    d.f.            10    R2 adj   0.670    
##  d.f.   3047    Pr(> chi2)  0.0000    g        0.127    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.46271 -0.05027  0.01247  0.06950  0.35105 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.6796 0.0270  25.14 <0.0001 
##  IQ           0.0336 0.0038   8.75 <0.0001 
##  S           -0.0918 0.0037 -25.04 <0.0001 
##  Black       -0.9626 0.0268 -35.91 <0.0001 
##  Hispanic    -0.6116 0.0212 -28.90 <0.0001 
##  Asian       -1.1074 0.0715 -15.48 <0.0001 
##  Amerindian  -0.9936 0.0465 -21.37 <0.0001 
##  Other       -0.9843 0.1634  -6.02 <0.0001 
##  homogeneity -0.3750 0.0206 -18.24 <0.0001 
##  density     -0.0854 0.0034 -25.29 <0.0001 
##  median_age  -0.0011 0.0005  -2.27 0.0235  
## 
rep16_linear %>% ggpredict(terms = "IQ") %>% plot()
## Warning in colnames(datlist)[ncol(datlist)] <- w: number of items to
## replace is not a multiple of replacement length

(rep16_nonlinear = ols(rep16_frac ~ rcs(IQ) + S + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density + median_age, data = d, weights = d$popsqrt))
## Frequencies of Missing Values Due to Each Variable
##  rep16_frac          IQ           S       Black    Hispanic       Asian 
##          35          60          20           4           4           4 
##  Amerindian       Other homogeneity     density  median_age   (weights) 
##           4           4           4           7           4           4 
## 
## Linear Regression Model
##  
##  ols(formula = rep16_frac ~ rcs(IQ) + S + Black + Hispanic + Asian + 
##      Amerindian + Other + homogeneity + density + median_age, 
##      data = d, weights = d$popsqrt)
##  
##  
##                  Model Likelihood     Discrimination    
##                     Ratio Test           Indexes        
##  Obs    3058    LR chi2    3422.00    R2       0.673    
##  sigma1.4735    d.f.            13    R2 adj   0.672    
##  d.f.   3044    Pr(> chi2)  0.0000    g        0.129    
##  
##  Residuals
##  
##       Min       1Q   Median       3Q      Max 
##  -0.45911 -0.05065  0.01258  0.06909  0.34322 
##  
##  
##              Coef    S.E.   t      Pr(>|t|)
##  Intercept    0.6797 0.0285  23.86 <0.0001 
##  IQ           0.0738 0.0106   6.98 <0.0001 
##  IQ'         -0.0762 0.0342  -2.23 0.0259  
##  IQ''         0.1602 0.2638   0.61 0.5436  
##  IQ'''        0.1441 0.5165   0.28 0.7802  
##  S           -0.0884 0.0037 -23.73 <0.0001 
##  Black       -0.8958 0.0301 -29.73 <0.0001 
##  Hispanic    -0.5862 0.0218 -26.87 <0.0001 
##  Asian       -1.0368 0.0730 -14.20 <0.0001 
##  Amerindian  -0.9123 0.0494 -18.46 <0.0001 
##  Other       -1.0407 0.1634  -6.37 <0.0001 
##  homogeneity -0.3383 0.0218 -15.53 <0.0001 
##  density     -0.0873 0.0034 -25.71 <0.0001 
##  median_age  -0.0012 0.0005  -2.47 0.0137  
## 
rep16_nonlinear %>% ggpredict(terms = "IQ") %>% plot()
## Warning in colnames(datlist)[ncol(datlist)] <- w: number of items to
## replace is not a multiple of replacement length

#likelihood ratio test
lrtest(rep16_linear, rep16_nonlinear)
## 
## Model 1: rep16_frac ~ IQ + S + Black + Hispanic + Asian + Amerindian + 
##     Other + homogeneity + density + median_age
## Model 2: rep16_frac ~ rcs(IQ) + S + Black + Hispanic + Asian + Amerindian + 
##     Other + homogeneity + density + median_age
## 
## L.R. Chisq       d.f.          P 
##    2.5e+01    3.0e+00    1.8e-05

Path models

We can also fit 3 path models so as to specify a more realistic causal structure. These weren’t very interesting, so we left them in supplement (we report them to avoid reporting bias).

fit_metrics = c("cfi", "rmsea")

#2016
# path_str = "IQ ~ Black + Hispanic + Asian + Amerindian + Other
# S ~ IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity
# dem16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
# rep16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
# green16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
# libert16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density"
path_str = "IQ ~ Black + Hispanic + Asian + Amerindian + Other
S ~ IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity
dem16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
rep16_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density"

sem16 = lavaan::sem(path_str, data = d, mimic = "EQS", missing = "pairwise")
## Warning in lav_data_full(data = data, group = group, cluster = cluster, :
## lavaan WARNING: some observed variances are (at least) a factor 1000 times
## larger than others; use varTable(fit) to investigate
## Warning in lav_data_full(data = data, group = group, cluster = cluster, : lavaan WARNING: some cases are empty and will be ignored:
##   3145 3146 3147
sem16 %>% parameterestimates()
##            lhs op         rhs    est    se      z pvalue ci.lower ci.upper
## 1           IQ  ~       Black -3.421 0.076 -44.80  0.000   -3.570   -3.271
## 2           IQ  ~    Hispanic -2.123 0.085 -24.86  0.000   -2.290   -1.955
## 3           IQ  ~       Asian  7.164 0.503  14.23  0.000    6.177    8.150
## 4           IQ  ~  Amerindian -3.618 0.153 -23.62  0.000   -3.919   -3.318
## 5           IQ  ~       Other -4.205 0.663  -6.34  0.000   -5.504   -2.906
## 6            S  ~          IQ  0.599 0.016  36.78  0.000    0.567    0.630
## 7            S  ~       Black -2.615 0.128 -20.43  0.000   -2.866   -2.364
## 8            S  ~    Hispanic -0.876 0.114  -7.68  0.000   -1.099   -0.652
## 9            S  ~       Asian  6.201 0.498  12.45  0.000    5.225    7.177
## 10           S  ~  Amerindian -1.269 0.160  -7.91  0.000   -1.584   -0.955
## 11           S  ~       Other -1.938 0.640  -3.03  0.002   -3.192   -0.683
## 12           S  ~ homogeneity -0.676 0.107  -6.33  0.000   -0.886   -0.467
## 13  dem16_frac  ~           S  0.061 0.003  20.92  0.000    0.056    0.067
## 14  dem16_frac  ~          IQ -0.009 0.003  -2.71  0.007   -0.015   -0.002
## 15  dem16_frac  ~       Black  1.059 0.022  47.15  0.000    1.015    1.103
## 16  dem16_frac  ~    Hispanic  0.649 0.019  33.72  0.000    0.611    0.687
## 17  dem16_frac  ~       Asian  1.411 0.088  16.02  0.000    1.238    1.583
## 18  dem16_frac  ~  Amerindian  0.802 0.028  29.16  0.000    0.748    0.856
## 19  dem16_frac  ~       Other  0.839 0.107   7.87  0.000    0.630    1.048
## 20  dem16_frac  ~ homogeneity  0.408 0.018  22.75  0.000    0.373    0.444
## 21  dem16_frac  ~     density  0.073 0.002  29.37  0.000    0.068    0.078
## 22  rep16_frac  ~           S -0.077 0.003 -24.19  0.000   -0.083   -0.071
## 23  rep16_frac  ~          IQ  0.013 0.003   3.68  0.000    0.006    0.020
## 24  rep16_frac  ~       Black -1.037 0.024 -42.59  0.000   -1.085   -0.989
## 25  rep16_frac  ~    Hispanic -0.671 0.021 -32.18  0.000   -0.712   -0.631
## 26  rep16_frac  ~       Asian -1.398 0.095 -14.64  0.000   -1.585   -1.211
## 27  rep16_frac  ~  Amerindian -0.854 0.030 -28.65  0.000   -0.913   -0.796
## 28  rep16_frac  ~       Other -0.946 0.116  -8.19  0.000   -1.173   -0.720
## 29  rep16_frac  ~ homogeneity -0.417 0.019 -21.43  0.000   -0.455   -0.379
## 30  rep16_frac  ~     density -0.072 0.003 -26.48  0.000   -0.077   -0.066
## 31          IQ ~~          IQ  0.368 0.009  39.64  0.000    0.350    0.386
## 32           S ~~           S  0.306 0.008  39.64  0.000    0.291    0.321
## 33  dem16_frac ~~  dem16_frac  0.008 0.000  39.64  0.000    0.008    0.009
## 34  rep16_frac ~~  rep16_frac  0.010 0.000  39.64  0.000    0.009    0.010
## 35  dem16_frac ~~  rep16_frac -0.009 0.000 -39.08  0.000   -0.009   -0.008
## 36       Black ~~       Black  0.021 0.001  39.64  0.000    0.020    0.022
## 37       Black ~~    Hispanic -0.002 0.000  -5.95  0.000   -0.003   -0.001
## 38       Black ~~       Asian  0.000 0.000   0.73  0.466    0.000    0.000
## 39       Black ~~  Amerindian -0.001 0.000  -5.60  0.000   -0.001   -0.001
## 40       Black ~~       Other  0.000 0.000  -4.86  0.000    0.000    0.000
## 41       Black ~~ homogeneity -0.015 0.001 -28.18  0.000   -0.017   -0.014
## 42       Black ~~     density  0.026 0.002  13.06  0.000    0.022    0.030
## 43    Hispanic ~~    Hispanic  0.017 0.000  39.64  0.000    0.016    0.018
## 44    Hispanic ~~       Asian  0.000 0.000   7.71  0.000    0.000    0.001
## 45    Hispanic ~~  Amerindian  0.000 0.000  -2.24  0.025   -0.001    0.000
## 46    Hispanic ~~       Other  0.000 0.000  -1.41  0.160    0.000    0.000
## 47    Hispanic ~~ homogeneity -0.011 0.000 -22.53  0.000   -0.011   -0.010
## 48    Hispanic ~~     density -0.004 0.002  -2.35  0.019   -0.008   -0.001
## 49       Asian ~~       Asian  0.001 0.000  39.64  0.000    0.001    0.001
## 50       Asian ~~  Amerindian  0.000 0.000  -0.64  0.522    0.000    0.000
## 51       Asian ~~       Other  0.000 0.000  21.88  0.000    0.000    0.000
## 52       Asian ~~ homogeneity -0.002 0.000 -18.30  0.000   -0.002   -0.001
## 53       Asian ~~     density  0.006 0.000  18.37  0.000    0.006    0.007
## 54  Amerindian ~~  Amerindian  0.005 0.000  39.64  0.000    0.005    0.006
## 55  Amerindian ~~       Other  0.000 0.000  14.23  0.000    0.000    0.000
## 56  Amerindian ~~ homogeneity -0.002 0.000  -8.70  0.000   -0.003   -0.002
## 57  Amerindian ~~     density -0.014 0.001 -13.55  0.000   -0.016   -0.012
## 58       Other ~~       Other  0.000 0.000  39.64  0.000    0.000    0.000
## 59       Other ~~ homogeneity -0.001 0.000 -13.67  0.000   -0.001   -0.001
## 60       Other ~~     density  0.000 0.000   0.56  0.573    0.000    0.001
## 61 homogeneity ~~ homogeneity  0.034 0.001  39.64  0.000    0.033    0.036
## 62 homogeneity ~~     density -0.032 0.003 -12.40  0.000   -0.037   -0.027
## 63     density ~~     density  0.570 0.014  39.64  0.000    0.542    0.598
lavaanPlot(model = sem16, coefs = T)
GG_save("figures/path2016.png")

#2012
path_str = "IQ ~ Black + Hispanic + Asian + Amerindian + Other
S ~ IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity
dem12_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
rep12_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density"

sem12 = sem(path_str, data = d, mimic = "EQS", missing = "pairwise") 
## Warning in lav_data_full(data = data, group = group, cluster = cluster, :
## lavaan WARNING: some observed variances are (at least) a factor 1000 times
## larger than others; use varTable(fit) to investigate
## Warning in lav_data_full(data = data, group = group, cluster = cluster, : lavaan WARNING: some cases are empty and will be ignored:
##   2383 3145 3146 3147
## Warning in lav_model_vcov(lavmodel = lavmodel2, lavsamplestats = lavsamplestats, : lavaan WARNING:
##     The variance-covariance matrix of the estimated parameters (vcov)
##     does not appear to be positive definite! The smallest eigenvalue
##     (= 3.090750e-13) is close to zero. This may be a symptom that the
##     model is not identified.
sem12 %>% parameterestimates()
##            lhs op         rhs    est    se      z pvalue ci.lower ci.upper
## 1           IQ  ~       Black -3.421 0.076 -44.79  0.000   -3.570   -3.271
## 2           IQ  ~    Hispanic -2.123 0.085 -24.86  0.000   -2.290   -1.955
## 3           IQ  ~       Asian  7.164 0.503  14.23  0.000    6.177    8.150
## 4           IQ  ~  Amerindian -3.618 0.153 -23.62  0.000   -3.919   -3.318
## 5           IQ  ~       Other -4.205 0.663  -6.34  0.000   -5.505   -2.906
## 6            S  ~          IQ  0.599 0.016  36.78  0.000    0.567    0.630
## 7            S  ~       Black -2.615 0.128 -20.43  0.000   -2.866   -2.364
## 8            S  ~    Hispanic -0.876 0.114  -7.68  0.000   -1.099   -0.652
## 9            S  ~       Asian  6.201 0.498  12.45  0.000    5.224    7.177
## 10           S  ~  Amerindian -1.269 0.160  -7.91  0.000   -1.584   -0.955
## 11           S  ~       Other -1.938 0.640  -3.03  0.002   -3.192   -0.683
## 12           S  ~ homogeneity -0.676 0.107  -6.33  0.000   -0.886   -0.467
## 13  dem12_frac  ~           S  0.052 0.003  15.28  0.000    0.045    0.058
## 14  dem12_frac  ~          IQ -0.021 0.004  -5.81  0.000   -0.029   -0.014
## 15  dem12_frac  ~       Black  0.957 0.026  37.00  0.000    0.906    1.007
## 16  dem12_frac  ~    Hispanic  0.570 0.022  25.71  0.000    0.526    0.613
## 17  dem12_frac  ~       Asian  1.296 0.101  12.78  0.000    1.097    1.495
## 18  dem12_frac  ~  Amerindian  0.823 0.032  25.98  0.000    0.761    0.885
## 19  dem12_frac  ~       Other  0.993 0.123   8.10  0.000    0.753    1.234
## 20  dem12_frac  ~ homogeneity  0.525 0.021  25.39  0.000    0.484    0.565
## 21  dem12_frac  ~     density  0.071 0.003  24.64  0.000    0.065    0.076
## 22  rep12_frac  ~           S -0.053 0.003 -15.43  0.000   -0.060   -0.047
## 23  rep12_frac  ~          IQ  0.023 0.004   6.06  0.000    0.015    0.030
## 24  rep12_frac  ~       Black -0.935 0.026 -35.30  0.000   -0.986   -0.883
## 25  rep12_frac  ~    Hispanic -0.564 0.023 -24.88  0.000   -0.609   -0.520
## 26  rep12_frac  ~       Asian -1.354 0.104 -13.04  0.000   -1.557   -1.150
## 27  rep12_frac  ~  Amerindian -0.815 0.032 -25.12  0.000   -0.878   -0.751
## 28  rep12_frac  ~       Other -0.959 0.126  -7.64  0.000   -1.206   -0.713
## 29  rep12_frac  ~ homogeneity -0.529 0.021 -25.00  0.000   -0.571   -0.488
## 30  rep12_frac  ~     density -0.069 0.003 -23.28  0.000   -0.074   -0.063
## 31          IQ ~~          IQ  0.368 0.009  39.64  0.000    0.350    0.386
## 32           S ~~           S  0.306 0.008  39.64  0.000    0.291    0.321
## 33  dem12_frac ~~  dem12_frac  0.011 0.000  39.64  0.000    0.010    0.012
## 34  rep12_frac ~~  rep12_frac  0.012 0.000  39.64  0.000    0.011    0.012
## 35  dem12_frac ~~  rep12_frac -0.011 0.000 -39.59  0.000   -0.012   -0.011
## 36       Black ~~       Black  0.021 0.001  39.64  0.000    0.020    0.022
## 37       Black ~~    Hispanic -0.002 0.000  -5.95  0.000   -0.003   -0.001
## 38       Black ~~       Asian  0.000 0.000   0.73  0.466    0.000    0.000
## 39       Black ~~  Amerindian -0.001 0.000  -5.60  0.000   -0.001   -0.001
## 40       Black ~~       Other  0.000 0.000  -4.86  0.000    0.000    0.000
## 41       Black ~~ homogeneity -0.015 0.001 -28.18  0.000   -0.017   -0.014
## 42       Black ~~     density  0.026 0.002  13.06  0.000    0.022    0.030
## 43    Hispanic ~~    Hispanic  0.017 0.000  39.64  0.000    0.016    0.018
## 44    Hispanic ~~       Asian  0.000 0.000   7.71  0.000    0.000    0.001
## 45    Hispanic ~~  Amerindian  0.000 0.000  -2.23  0.025   -0.001    0.000
## 46    Hispanic ~~       Other  0.000 0.000  -1.41  0.160    0.000    0.000
## 47    Hispanic ~~ homogeneity -0.011 0.000 -22.53  0.000   -0.011   -0.010
## 48    Hispanic ~~     density -0.004 0.002  -2.35  0.019   -0.008   -0.001
## 49       Asian ~~       Asian  0.001 0.000  39.64  0.000    0.001    0.001
## 50       Asian ~~  Amerindian  0.000 0.000  -0.64  0.522    0.000    0.000
## 51       Asian ~~       Other  0.000 0.000  21.88  0.000    0.000    0.000
## 52       Asian ~~ homogeneity -0.002 0.000 -18.30  0.000   -0.002   -0.001
## 53       Asian ~~     density  0.006 0.000  18.36  0.000    0.006    0.007
## 54  Amerindian ~~  Amerindian  0.005 0.000  39.64  0.000    0.005    0.006
## 55  Amerindian ~~       Other  0.000 0.000  14.23  0.000    0.000    0.000
## 56  Amerindian ~~ homogeneity -0.002 0.000  -8.70  0.000   -0.003   -0.002
## 57  Amerindian ~~     density -0.014 0.001 -13.55  0.000   -0.016   -0.012
## 58       Other ~~       Other  0.000 0.000  39.64  0.000    0.000    0.000
## 59       Other ~~ homogeneity -0.001 0.000 -13.67  0.000   -0.001   -0.001
## 60       Other ~~     density  0.000 0.000   0.56  0.573    0.000    0.001
## 61 homogeneity ~~ homogeneity  0.034 0.001  39.64  0.000    0.033    0.036
## 62 homogeneity ~~     density -0.032 0.003 -12.40  0.000   -0.037   -0.027
## 63     density ~~     density  0.570 0.014  39.64  0.000    0.542    0.598
lavaanPlot(model = sem12, coefs = T)
#2008
path_str = "IQ ~ Black + Hispanic + Asian + Amerindian + Other
S ~ IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity
dem08_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density
rep08_frac ~ S + IQ + Black + Hispanic + Asian + Amerindian + Other + homogeneity + density"

sem08 = sem(path_str, data = d, mimic = "EQS", missing = "pairwise")
## Warning in lav_data_full(data = data, group = group, cluster = cluster, :
## lavaan WARNING: some observed variances are (at least) a factor 1000 times
## larger than others; use varTable(fit) to investigate
## Warning in lav_data_full(data = data, group = group, cluster = cluster, : lavaan WARNING: some cases are empty and will be ignored:
##   2383 3145 3146 3147
## Warning in lav_model_vcov(lavmodel = lavmodel2, lavsamplestats = lavsamplestats, : lavaan WARNING:
##     The variance-covariance matrix of the estimated parameters (vcov)
##     does not appear to be positive definite! The smallest eigenvalue
##     (= 2.068942e-13) is close to zero. This may be a symptom that the
##     model is not identified.
sem08 %>% parameterestimates()
##            lhs op         rhs    est    se      z pvalue ci.lower ci.upper
## 1           IQ  ~       Black -3.421 0.076 -44.79  0.000   -3.570   -3.271
## 2           IQ  ~    Hispanic -2.123 0.085 -24.86  0.000   -2.290   -1.955
## 3           IQ  ~       Asian  7.164 0.503  14.23  0.000    6.177    8.150
## 4           IQ  ~  Amerindian -3.618 0.153 -23.62  0.000   -3.919   -3.318
## 5           IQ  ~       Other -4.205 0.663  -6.34  0.000   -5.505   -2.906
## 6            S  ~          IQ  0.599 0.016  36.78  0.000    0.567    0.630
## 7            S  ~       Black -2.615 0.128 -20.43  0.000   -2.866   -2.364
## 8            S  ~    Hispanic -0.876 0.114  -7.68  0.000   -1.099   -0.652
## 9            S  ~       Asian  6.201 0.498  12.45  0.000    5.224    7.177
## 10           S  ~  Amerindian -1.269 0.160  -7.91  0.000   -1.584   -0.955
## 11           S  ~       Other -1.938 0.640  -3.03  0.002   -3.192   -0.683
## 12           S  ~ homogeneity -0.676 0.107  -6.33  0.000   -0.886   -0.467
## 13  dem08_frac  ~           S  0.047 0.003  14.00  0.000    0.040    0.054
## 14  dem08_frac  ~          IQ -0.020 0.004  -5.44  0.000   -0.027   -0.013
## 15  dem08_frac  ~       Black  0.842 0.026  32.87  0.000    0.792    0.893
## 16  dem08_frac  ~    Hispanic  0.519 0.022  23.61  0.000    0.476    0.562
## 17  dem08_frac  ~       Asian  1.311 0.101  13.04  0.000    1.114    1.508
## 18  dem08_frac  ~  Amerindian  0.777 0.031  24.75  0.000    0.716    0.839
## 19  dem08_frac  ~       Other  0.870 0.122   7.15  0.000    0.632    1.108
## 20  dem08_frac  ~ homogeneity  0.536 0.020  26.18  0.000    0.496    0.576
## 21  dem08_frac  ~     density  0.067 0.003  23.59  0.000    0.062    0.073
## 22  rep08_frac  ~           S -0.048 0.003 -13.94  0.000   -0.054   -0.041
## 23  rep08_frac  ~          IQ  0.021 0.004   5.74  0.000    0.014    0.029
## 24  rep08_frac  ~       Black -0.822 0.026 -31.47  0.000   -0.873   -0.771
## 25  rep08_frac  ~    Hispanic -0.504 0.022 -22.50  0.000   -0.548   -0.460
## 26  rep08_frac  ~       Asian -1.372 0.102 -13.39  0.000   -1.573   -1.171
## 27  rep08_frac  ~  Amerindian -0.768 0.032 -24.01  0.000   -0.831   -0.705
## 28  rep08_frac  ~       Other -0.830 0.124  -6.70  0.000   -1.073   -0.587
## 29  rep08_frac  ~ homogeneity -0.544 0.021 -26.07  0.000   -0.585   -0.503
## 30  rep08_frac  ~     density -0.064 0.003 -22.10  0.000   -0.070   -0.058
## 31          IQ ~~          IQ  0.368 0.009  39.64  0.000    0.350    0.386
## 32           S ~~           S  0.306 0.008  39.64  0.000    0.291    0.321
## 33  dem08_frac ~~  dem08_frac  0.011 0.000  39.64  0.000    0.010    0.011
## 34  rep08_frac ~~  rep08_frac  0.011 0.000  39.64  0.000    0.011    0.012
## 35  dem08_frac ~~  rep08_frac -0.011 0.000 -39.60  0.000   -0.012   -0.010
## 36       Black ~~       Black  0.021 0.001  39.64  0.000    0.020    0.022
## 37       Black ~~    Hispanic -0.002 0.000  -5.95  0.000   -0.003   -0.001
## 38       Black ~~       Asian  0.000 0.000   0.73  0.466    0.000    0.000
## 39       Black ~~  Amerindian -0.001 0.000  -5.60  0.000   -0.001   -0.001
## 40       Black ~~       Other  0.000 0.000  -4.86  0.000    0.000    0.000
## 41       Black ~~ homogeneity -0.015 0.001 -28.18  0.000   -0.017   -0.014
## 42       Black ~~     density  0.026 0.002  13.06  0.000    0.022    0.030
## 43    Hispanic ~~    Hispanic  0.017 0.000  39.64  0.000    0.016    0.018
## 44    Hispanic ~~       Asian  0.000 0.000   7.71  0.000    0.000    0.001
## 45    Hispanic ~~  Amerindian  0.000 0.000  -2.23  0.025   -0.001    0.000
## 46    Hispanic ~~       Other  0.000 0.000  -1.41  0.160    0.000    0.000
## 47    Hispanic ~~ homogeneity -0.011 0.000 -22.53  0.000   -0.011   -0.010
## 48    Hispanic ~~     density -0.004 0.002  -2.35  0.019   -0.008   -0.001
## 49       Asian ~~       Asian  0.001 0.000  39.64  0.000    0.001    0.001
## 50       Asian ~~  Amerindian  0.000 0.000  -0.64  0.522    0.000    0.000
## 51       Asian ~~       Other  0.000 0.000  21.88  0.000    0.000    0.000
## 52       Asian ~~ homogeneity -0.002 0.000 -18.30  0.000   -0.002   -0.001
## 53       Asian ~~     density  0.006 0.000  18.36  0.000    0.006    0.007
## 54  Amerindian ~~  Amerindian  0.005 0.000  39.64  0.000    0.005    0.006
## 55  Amerindian ~~       Other  0.000 0.000  14.23  0.000    0.000    0.000
## 56  Amerindian ~~ homogeneity -0.002 0.000  -8.70  0.000   -0.003   -0.002
## 57  Amerindian ~~     density -0.014 0.001 -13.55  0.000   -0.016   -0.012
## 58       Other ~~       Other  0.000 0.000  39.64  0.000    0.000    0.000
## 59       Other ~~ homogeneity -0.001 0.000 -13.67  0.000   -0.001   -0.001
## 60       Other ~~     density  0.000 0.000   0.56  0.573    0.000    0.001
## 61 homogeneity ~~ homogeneity  0.034 0.001  39.64  0.000    0.033    0.036
## 62 homogeneity ~~     density -0.032 0.003 -12.40  0.000   -0.037   -0.027
## 63     density ~~     density  0.570 0.014  39.64  0.000    0.542    0.598
lavaanPlot(model = sem08, coefs = T)

Maps

#IQ
d2 %>% 
  filter(!State %in% c("Alaska", "Hawaii")) %>% 
  ggplot() +
  geom_sf(aes(fill = IQ), lwd = 0) +
  scale_fill_gradient("Intelligence", low = "red", high = "green") +
  theme_classic()

GG_save("figures/IQ_map.png")

#Democrat
d2 %>% 
  filter(!State %in% c("Alaska", "Hawaii")) %>% 
  ggplot() +
  geom_sf(aes(fill = dem16_advantage), lwd = 0) +
  scale_fill_gradient("Democrat advantage 2016", low = "red", high = "blue") +
  theme_classic()

GG_save("figures/dem2016_map.png")

Meta

#versions
write_sessioninfo()
## R version 3.6.1 (2019-07-05)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Linux Mint 19.1
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] parallel  stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] ggeffects_0.12.0   lavaanPlot_0.5.1   broom_0.5.2       
##  [4] rms_5.1-3.1        SparseM_1.77       sf_0.7-7          
##  [7] doFuture_0.8.1     iterators_1.0.12   foreach_1.4.7     
## [10] future_1.14.0      globals_0.12.4     lavaan_0.6-5      
## [13] kirkegaard_2018.05 metafor_2.1-0      Matrix_1.2-17     
## [16] psych_1.8.12       magrittr_1.5       assertthat_0.2.1  
## [19] weights_1.0        mice_3.6.0         gdata_2.18.0      
## [22] Hmisc_4.2-0        Formula_1.2-3      survival_2.44-1.1 
## [25] lattice_0.20-38    forcats_0.4.0      stringr_1.4.0     
## [28] dplyr_0.8.3        purrr_0.3.2        readr_1.3.1       
## [31] tidyr_1.0.0        tibble_2.1.3       ggplot2_3.2.1     
## [34] tidyverse_1.2.1    pacman_0.5.1      
## 
## loaded via a namespace (and not attached):
##   [1] readxl_1.3.1        backports_1.1.4     lwgeom_0.1-7       
##   [4] plyr_1.8.4          igraph_1.2.4.1      lazyeval_0.2.2     
##   [7] splines_3.6.1       listenv_0.7.0       TH.data_1.0-10     
##  [10] digest_0.6.21       htmltools_0.3.6     viridis_0.5.1      
##  [13] fansi_0.4.0         checkmate_1.9.4     cluster_2.1.0      
##  [16] modelr_0.1.5        sandwich_2.5-1      colorspace_1.4-1   
##  [19] rvest_0.3.4         haven_2.1.1         pan_1.6            
##  [22] xfun_0.9            crayon_1.3.4        jsonlite_1.6       
##  [25] lme4_1.1-21         zeallot_0.1.0       brew_1.0-6         
##  [28] zoo_1.8-6           glue_1.3.1          gtable_0.3.0       
##  [31] MatrixModels_0.4-1  sjmisc_2.8.1        Rook_1.1-1         
##  [34] jomo_2.6-9          scales_1.0.0        mvtnorm_1.0-11     
##  [37] DBI_1.0.0           Rcpp_1.0.2          viridisLite_0.3.0  
##  [40] htmlTable_1.13.2    units_0.6-3         foreign_0.8-72     
##  [43] stats4_3.6.1        htmlwidgets_1.3     httr_1.4.1         
##  [46] DiagrammeR_1.0.1    RColorBrewer_1.1-2  ellipsis_0.3.0     
##  [49] acepack_1.4.1       pkgconfig_2.0.3     XML_3.98-1.20      
##  [52] nnet_7.3-12         utf8_1.1.4          labeling_0.3       
##  [55] tidyselect_0.2.5    rlang_0.4.0         multilevel_2.6     
##  [58] munsell_0.5.0       cellranger_1.1.0    tools_3.6.1        
##  [61] visNetwork_2.0.7    downloader_0.4      cli_1.1.0          
##  [64] generics_0.0.2      sjlabelled_1.1.0    evaluate_0.14      
##  [67] yaml_2.2.0          knitr_1.25          mitml_0.3-7        
##  [70] nlme_3.1-141        quantreg_5.51       xml2_1.2.2         
##  [73] psychometric_2.2    compiler_3.6.1      rstudioapi_0.10    
##  [76] rgexf_0.15.3        e1071_1.7-2         pbivnorm_0.6.0     
##  [79] stringi_1.4.3       classInt_0.4-1      nloptr_1.2.1       
##  [82] vctrs_0.2.0         pillar_1.4.2        lifecycle_0.1.0    
##  [85] data.table_1.12.2   insight_0.4.1       R6_2.4.0           
##  [88] latticeExtra_0.6-28 KernSmooth_2.23-15  gridExtra_2.3      
##  [91] codetools_0.2-16    polspline_1.1.15    boot_1.3-23        
##  [94] MASS_7.3-51.4       gtools_3.8.1        withr_2.1.2        
##  [97] mnormt_1.5-5        multcomp_1.4-10     hms_0.5.1          
## [100] influenceR_0.1.0    grid_3.6.1          rpart_4.1-15       
## [103] class_7.3-15        minqa_1.2.4         rmarkdown_1.15     
## [106] lubridate_1.7.4     base64enc_0.1-3
#write data
d %>% write_rds("data/data_out.rds", compress = "xz")
d %>% write_csv("data/data_out.csv", na = "")