library(pacman)
p_load(tidyverse, scales, fixest, here)
life_df <- readr::read_csv(here::here("pset.csv"))
## Rows: 3106 Columns: 18
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): county_name, state_abb
## dbl (16): county_code, income_quartile, life_exp, pct_uninsured, poverty_rat...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
nrow(life_df)
## [1] 3106
ncol(life_df)
## [1] 18
complete.cases(life_df)
##    [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [15] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [29] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [43] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [57] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [71] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [85] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##   [99] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [113] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [127] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [141] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [155] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [169] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [183] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [197] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [211] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [225] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [239] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [253] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [267] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [281] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [295] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [309] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [323] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [337] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [351] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [365] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [379] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [393] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [407] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [421] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [435] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [449] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [463] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [477] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [491] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [505] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [519] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [533] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [547] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [561] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [575] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [589] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [603] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [617] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [631] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [645] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [659] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [673] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [687] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [701] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [715] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [729] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [743] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [757] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [771] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [785] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [799] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [813] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [827] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [841] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [855] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [869] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [883] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [897] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [911] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [925] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [939] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [953] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [967] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [981] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##  [995] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1009] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1023] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1037] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1051] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1065] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1079] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1093] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1107] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1121] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1135] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1149] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1163] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1177] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1191] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1205] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1219] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1233] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1247] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1261] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1275] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1289] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1303] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1317] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1331] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1345] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1359] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1373] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1387] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1401] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1415] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1429] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1443] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1457] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1471] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1485] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1499] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1513] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1527] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1541] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1555] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1569] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1583] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1597] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1611] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1625] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1639] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1653] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1667] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1681] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1695] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1709] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1723] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1737] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1751] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1765] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1779] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1793] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1807] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1821] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1835] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1849] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1863] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1877] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1891] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1905] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1919] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1933] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1947] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1961] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1975] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1989] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2003] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2017] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2031] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2045] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2059] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2073] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2087] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2101] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2115] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2129] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2143] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2157] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2171] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2185] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2199] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2213] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2227] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2241] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2255] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2269] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2283] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2297] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2311] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2325] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2339] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2353] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2367] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2381] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2395] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2409] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2423] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2437] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2451] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2465] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2479] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2493] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2507] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2521] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2535] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2549] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2563] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2577] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2591] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2605] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2619] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2633] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2647] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2661] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2675] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2689] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2703] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2717] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2731] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2745] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2759] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2773] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2787] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2801] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2815] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2829] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2843] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2857] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2871] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2885] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2899] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2913] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2927] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2941] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2955] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2969] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2983] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [2997] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3011] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3025] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3039] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3053] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3067] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3081] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [3095] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
sum(complete.cases(life_df))
## [1] 3106
library(dplyr)
#number of distinct counties
n_distinct(life_df$county_name)
## [1] 1051
#number of states
n_distinct(life_df$state_abb)
## [1] 50
life_df %>%
  count(income_quartile)
## # A tibble: 2 × 2
##   income_quartile     n
##             <dbl> <int>
## 1               1  1553
## 2               4  1553
colSums(is.na(life_df))
##       county_name       county_code         state_abb   income_quartile 
##                 0                 0                 0                 0 
##          life_exp     pct_uninsured      poverty_rate     pct_religious 
##                 0                 0                 0                 0 
##         pct_black      pct_hispanic unemployment_rate     median_hh_inc 
##                 0                 0                 0                 0 
##          is_urban               pop       pop_density         pct_smoke 
##                 0                 0                 0                 0 
##         pct_obese      pct_exercise 
##                 0                 0
  1. There 3106 rows and 18 columns with all observations being complete. In the data their are 1051 counties and 50 distinct states. Look through our data the set includes the bottom income quartile which 1553 observations and the top income quartile which is also 1553 obervations with the second and third having no observations. finally there are no missing values.
library(dplyr)

life_df <- life_df %>%
  mutate(high_income = ifelse(income_quartile == 4, 1, 0))
  1. The code makes it where their should be a count of 1553

You can also embed plots, for example:

#make table
Table_S <- life_df %>%
  group_by(income_quartile) %>%
  summarise(
    mean_life_exp = mean(life_exp, na.rm = TRUE),
    sd_life_ep = sd(life_exp, na.rm = TRUE),
    M_smoke = mean(pct_smoke, na.rm = TRUE),
    sd_smoke = sd(pct_smoke, na.rm = TRUE),
    m_obese = mean(pct_obese, na.rm = TRUE),
    sd_obese = sd(pct_obese, na.rm = TRUE),
    m_exercise = mean(pct_exercise, na.rm = TRUE),
    sd_EXER = sd(pct_exercise, na.rm = TRUE)
  )
  
print(Table_S, width = Inf)
## # A tibble: 2 × 9
##   income_quartile mean_life_exp sd_life_ep M_smoke sd_smoke m_obese sd_obese
##             <dbl>         <dbl>      <dbl>   <dbl>    <dbl>   <dbl>    <dbl>
## 1               1          78.9       1.45   0.281   0.0796   0.308   0.0891
## 2               4          86.0       1.37   0.130   0.0791   0.233   0.0979
##   m_exercise sd_EXER
##        <dbl>   <dbl>
## 1      0.597  0.0943
## 2      0.851  0.0885
  1. Based on the summary table the mean life expectancy for the fourth quartile is 7 years higher then that of the first quartile where as the standard deviation is lower. Looking at smoking and oberstity the average is higher in the first quartile. These means that obsersity, smoking, and exercise correlate with life expectancy and that income and life expectancy have a positive relationship.

#make graph
library(ggplot2)
ggplot(life_df, aes(x = factor(income_quartile), y = life_exp)) + geom_boxplot(fill = "skyblue") +
  facet_wrap(~ is_urban) +
  labs(
    title = "Life Expectancy based on by Income Quartile and Urban Status",
    x = "income quartile",
    y = "Life Expectancy"
  ) + 
  theme_minimal()

#density graph
ggplot(life_df, aes(x = pct_smoke, color = 
  factor(income_quartile))) +
  geom_density(linewidth = 1) + 
  labs(
    title = "Distribution of Smoking Rates by Income",
    x = "Smoking Rate based on pct_smoke",
    y = "Density",
    color = "Income Quartile"
  ) + 
  theme_minimal()

#Creating scatter plot
ggplot(life_df, aes(x = pct_smoke, y = life_exp, color = 
      factor(income_quartile))) + 
      geom_point(alpha = 0.6) +
      geom_smooth(method = "lm", se = FALSE) + 
        labs(
          title = "Life Expectancy vs Smoking Rate by Income", 
          x = "Smoking Rate ",
          y = "life expectancy Rate", 
          color = "Income Quartile"
        ) +
        theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

  1. For the figures of 5 through 7 we can see certain association between life expecancy and income, smoking rates and income, and finally life expectancy and smokeing. Here on figure 5 we can see that on the box plot individuals in the highest quartile live 7 years higher then that in the lowest quartile meaning people with higher income have higher life expectancy. Comparing urban and nonurban area it still holds true as the disbution of both box plots is very similar with lower life expectancy in both quartiles. In figure 6. we can see that the lower quartile has a higher smoking rate compared to the higher quartile with a majority of the distribution being closer to the 0.25 Smoking compared to the higher income quartile having a density that has a lower smoking rate. Finally in figure 8. based on the graph that their seems to be a negative correlation for smoking and life expectancy for both quartiles with the higher quartile still having a higher life expectancy. We can see as smoking rate increases then the life expectancy decrease.

  2. Based on scatterplot it can suggest omitted variable bias because of how the income is not being considered both income quartile having a shifted line of best fit with the higher quartile having a higher life expectancy. So this means that income can be a ommitted variable in the regression model.

  3. The ommitted bias would be negative because of how based on variable bias since income has a positive effect on life expectancy and has a negative correlation with smoking it is going to cause a negative bias causing the distribution to be downward sloping.

# Regression 1 for smoking and life expectancy
reg1 <- lm(life_exp ~ pct_smoke, data = life_df)

# Regression 2 with income
reg2 <- lm(life_exp ~ pct_smoke + high_income, data = life_df)
summary(reg1)
## 
## Call:
## lm(formula = life_exp ~ pct_smoke, data = life_df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.3375  -1.8554   0.0572   1.8864  22.8873 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  87.5119     0.1027  852.10   <2e-16 ***
## pct_smoke   -24.8084     0.4416  -56.18   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.693 on 3104 degrees of freedom
## Multiple R-squared:  0.5042, Adjusted R-squared:  0.504 
## F-statistic:  3156 on 1 and 3104 DF,  p-value: < 2.2e-16
summary(reg2)
## 
## Call:
## lm(formula = life_exp ~ pct_smoke + high_income, data = life_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.7061 -0.8560 -0.0083  0.8398  7.1148 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 80.16414    0.09311  860.96   <2e-16 ***
## pct_smoke   -4.62324    0.30810  -15.01   <2e-16 ***
## high_income  6.41060    0.06743   95.07   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.362 on 3103 degrees of freedom
## Multiple R-squared:  0.8733, Adjusted R-squared:  0.8732 
## F-statistic: 1.069e+04 on 2 and 3103 DF,  p-value: < 2.2e-16
  1. Based on the two regression their does seem to be a change in the beta 1 value with the value changing from -24.81 to -4.62 which meets to our prediction of a downward bias meaning if we consider income then the magnitude for smoking rate becomes smaller. intrepretations for both models indicate for regression one a 0.10 increase in the smoking rate will lead to a -24.84 decrease in life expectancy on average holding all other variables constant. In regression 2. as a 0.10 unit of smoking rate increases then the life expectancy decreases by -4.62 years on age holding all other values constant.
reg_3 <- lm(life_exp ~ pct_smoke + high_income + is_urban, data = life_df)

# View results
summary(reg_3)
## 
## Call:
## lm(formula = life_exp ~ pct_smoke + high_income + is_urban, data = life_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.6631 -0.8526 -0.0113  0.8360  7.1579 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 80.12132    0.10508 762.485   <2e-16 ***
## pct_smoke   -4.62364    0.30811 -15.006   <2e-16 ***
## high_income  6.41054    0.06743  95.069   <2e-16 ***
## is_urban     0.05368    0.06105   0.879    0.379    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.362 on 3102 degrees of freedom
## Multiple R-squared:  0.8733, Adjusted R-squared:  0.8732 
## F-statistic:  7128 on 3 and 3102 DF,  p-value: < 2.2e-16
  1. Based on the regression it seems that is_urban doesn’t really create bias compared to the high_income value so it shows that not all ommitted variables create bias since whether or not the data is urban or nonurban didn’t really effect smoking. It shows that bias must meet up to having correlation with the independent value and have an effect on dependent variable.
plot(life_df$pct_smoke, resid(reg_3),
     xlab = "Smoking Rate (pct_smoke)",
     ylab = "Residuals",
     main = "Residuals vs Smoking Rate")

abline(h = 0, col = "red")

  1. Based on the regression there does seem to be a mild hetreoskadistic relationship in the graph since the disribution doesn’t seem to be uniform value in the distrbution with a few outliers in the data. This doesn’t meet up to the ols estimator assumptions since variance isn’t constant throughout the entire distribution causing them
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
model_reg <- lm(life_exp ~ pct_smoke + high_income + is_urban, data = life_df)
gqtest(model_reg, order.by = ~ pct_smoke, data = life_df, fraction = 1/3)
## 
##  Goldfeld-Quandt test
## 
## data:  model_reg
## GQ = 0.86567, df1 = 1032, df2 = 1031, p-value = 0.9897
## alternative hypothesis: variance increases from segment 1 to 2
  1. The GQ value is 0.8567 and the p-value is 0.9897. Based on the p-value we fail to reject the null hypothesis so we come to the conclusion that the distribution is not heteroskadistic.
life_df$u_hat_sq <- resid(reg_3)^2
white_test <- lm(u_hat_sq ~ pct_smoke + I(pct_smoke^2) +
                  high_income + is_urban +
                  pct_smoke:high_income +
                  pct_smoke:is_urban +
                  high_income:is_urban,
                data = life_df)
n_row <- nrow(life_df)
R2_val <- summary(white_test)$r.squared

white_stat <- n_row * R2_val
white_stat
## [1] 127.5524
p_value <- 1 - pchisq(white_stat, df = 7)
p_value
## [1] 0
  1. since the p-value is less then 0.05 and the test statistic is greater then our critical value then we reject the null hypothesis.

  2. The GQ and the white statistic don’t have to agree because of how both tests detect heteroskadisticity. Speciifcally the GQ test is going to test changes in variance based on changing specific variables order. Whereas the white statistic test finds a more general form heteroskadistcity. This overall can lead them to disagree on if the distribution is heteroskadisticty with the two tests above showing an instance on the two tests disagreeing.

reggression_mod <- lm(life_exp ~ pct_smoke + high_income + is_urban +
              pct_smoke:high_income,
            data = life_df)

summary(reggression_mod)
## 
## Call:
## lm(formula = life_exp ~ pct_smoke + high_income + is_urban + 
##     pct_smoke:high_income, data = life_df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.6589 -0.8503 -0.0139  0.8373  6.7040 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           80.54369    0.13772 584.830  < 2e-16 ***
## pct_smoke             -6.06857    0.43350 -13.999  < 2e-16 ***
## high_income            5.81515    0.14288  40.700  < 2e-16 ***
## is_urban               0.03257    0.06101   0.534    0.593    
## pct_smoke:high_income  2.90776    0.61579   4.722 2.44e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.357 on 3101 degrees of freedom
## Multiple R-squared:  0.8742, Adjusted R-squared:  0.8741 
## F-statistic:  5388 on 4 and 3101 DF,  p-value: < 2.2e-16
  1. Based on the regression model the coefficent on the interaction in terms of high income is 2.90776 which means in the model for a person who smokes and has high income we would consider their estimate to -6.06857 + 2.90776 compared to the regular value of -6.06857 which represents how people in the higher income will have less of a harmful effect in higher income counties compared to people in low income counties.
val_20 <- coef(reggression_mod)

low_income_slope  <- val_20["pct_smoke"]
high_income_slope <- val_20["pct_smoke"] + val_20["pct_smoke:high_income"]
0.10 * low_income_slope
##  pct_smoke 
## -0.6068569
0.10 * high_income_slope
##  pct_smoke 
## -0.3160812

Based on the values for lower income people a 10 percentage point increase will lead to 0.6069569 year decrease in life expectancy on average holding all other variables constant. However, for higher income individuals a 10 percentage point increase will lead to a 0.31608 year decrease in life expectancey on average holding all other variables constant.

reg_robust <- feols(life_exp ~ pct_smoke + high_income + is_urban +
                        pct_smoke:high_income,
                      data = life_df,
                      vcov = "het")

summary(reg_robust)
## OLS estimation, Dep. Var.: life_exp
## Observations: 3,106
## Standard-errors: Heteroskedasticity-robust 
##                        Estimate Std. Error    t value   Pr(>|t|)    
## (Intercept)           80.543689   0.168386 478.326386  < 2.2e-16 ***
## pct_smoke             -6.068569   0.513658 -11.814411  < 2.2e-16 ***
## high_income            5.815147   0.174733  33.280255  < 2.2e-16 ***
## is_urban               0.032568   0.067935   0.479393 0.63169255    
## pct_smoke:high_income  2.907757   0.749352   3.880360 0.00010647 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 1.35591   Adj. R2: 0.874058
  1. Taking the p value of pct_smoke:high_income then we see a small p value of 0.0000010647 remains statistically significant meaning that our conclusions do change after we had to take into the consideration about heteroskadisticity in the regression.

library(fixest)
reg_4_wls <- feols(life_exp ~ pct_smoke + high_income + is_urban +
                     pct_smoke:high_income,
                   data = life_df,
                   weights = ~pop,
                   vcov = "het")
reg_ww <- feols(life_exp ~ pct_smoke + high_income + is_urban +
                 pct_smoke:high_income,
               data = life_df)
etable(reg_ww, reg_4_wls, vcov = "hetero")
##                                     reg_ww          reg_4_wls
## Dependent Var.:                   life_exp           life_exp
##                                                              
## Constant                 80.54*** (0.1684)  84.79*** (0.6088)
## pct_smoke               -6.069*** (0.5137)  -20.70*** (2.046)
## high_income              5.815*** (0.1747)  2.142*** (0.6256)
## is_urban                   0.0326 (0.0679) 0.2784*** (0.0826)
## pct_smoke x high_income  2.908*** (0.7494)   13.40*** (2.165)
## _______________________ __________________ __________________
## S.E. type               Heteroskedas.-rob. Heteroskedas.-rob.
## Observations                         3,106              3,106
## R2                                 0.87422            0.88658
## Adj. R2                            0.87406            0.88643
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  1. Based on the code above will produce a code taking into consideration population weighting compared to the regression in 19 seemed to keep the SE type even when consider WLS into the equation. The table showed that regressions where heteroskadistic robust and that the R^2 was pretty similar as well as the adjusted r^2. It didn’t see that WLS changed the standard error values that much, but did change the estimates with multiple estimates for pct_smoke, high_income, and the coefficent term changing trastically. WLS is good for solving heteroskadistic when it comes to taking into consideration population. WLS however, shouldn’t be the only way to solve heterskadistcity and it isn’t able to deal with high variance caused by other factors.

  2. Correlated disturbance happens when events aren’t independent from one another which disrupts one of our OLS estimators as we assume that each disturbance is independent from one another to prevent a change in OLS.For this example we could have counties clustered next to eachother that are effected by a bad environment or one county has a higher income then the surrounding counties since it has better jobs causing higher income in the others. All of these factors could effect our OLS since they aren’t indpeendent.

reg_county <- feols(
  life_exp ~ pct_smoke + high_income + is_urban + pct_smoke:high_income,
  data = life_df,
  vcov = ~county_code
)

summary(reg_county)
## OLS estimation, Dep. Var.: life_exp
## Observations: 3,106
## Standard-errors: Clustered (county_code) 
##                        Estimate Std. Error    t value   Pr(>|t|)    
## (Intercept)           80.543689   0.169784 474.389589  < 2.2e-16 ***
## pct_smoke             -6.068569   0.513184 -11.825339  < 2.2e-16 ***
## high_income            5.815147   0.164975  35.248553  < 2.2e-16 ***
## is_urban               0.032568   0.076261   0.427054 6.6940e-01    
## pct_smoke:high_income  2.907757   0.712721   4.079798 4.7362e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 1.35591   Adj. R2: 0.874058
  1. Based on the reggression it doesn’t seem like their was a change in estimate between the two reggression but there was a huge change in std error valus with the std error for pct_smoke changing to 0.513 value overall. Since SE changed it somewhat but not by that much it didn’t change our conclusion about the estimates and how they are associated.

reg_state <- feols(
  life_exp ~ pct_smoke + high_income + is_urban + pct_smoke:high_income,
  data = life_df,
  vcov = ~state_abb
)

summary(reg_state)
## OLS estimation, Dep. Var.: life_exp
## Observations: 3,106
## Standard-errors: Clustered (state_abb) 
##                        Estimate Std. Error    t value   Pr(>|t|)    
## (Intercept)           80.543689   0.398631 202.050883  < 2.2e-16 ***
## pct_smoke             -6.068569   1.108392  -5.475112 1.4896e-06 ***
## high_income            5.815147   0.386299  15.053494  < 2.2e-16 ***
## is_urban               0.032568   0.107188   0.303837 7.6254e-01    
## pct_smoke:high_income  2.907757   1.278428   2.274478 2.7352e-02 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## RMSE: 1.35591   Adj. R2: 0.874058
  1. The state clustered reggression seemed to cause STD errors to be even larger compared to the county cluster values with pct_smoke increasing even more and the pct_smoke:high_income had increased even more which is possible since state clustering causes our capturing high colleration of counties by a broader term. This would lead to high standard error values being captured.

  2. This work is incomplete because of how it is missing further insight into understanding if the data meets up to ols criteria. Based on the pset, the data is hteroskadistic and has clustering issues causing independence problems. This means that they don’t meet up to the ols criteria which causes the actual SE be changed and smaller making them seem more precise then they actually are.

  3. Overall this data was very interesting because of it showed how ommitted variable bias, clustering, and heterskadisticty can all play a role in determining ols estimators. Our data showed a strong association in smoking on life style based on income quartile. However, in order to get more precise results we had to consider multiple factors first being are we including the correct variables to ensure proper estimates such as income and if that effects smoking. We had also seen some heterskadistcity in the distrbution that would change our variance so we had to consider that in our estimates. Finally, we had to understand if clustering caused improper results by causing counties to not be independent which was a problem since our SE values had increased by clustering them to together. Overall, it is important to consider other tests before creating a reggression model as they could change if our data is actually reliable.