rm(list=ls())
library(stargazer)
library(data.table)
library(ggplot2)
library(lfe)
Reading data
sfha <- fread("sfha_sample.csv")
Descriptive Stats
Non-SFHA
t <- sfha[year==2016, c("policies_fraction","policies_fraction_pop","climatechangereal","worriedaboutclimatechange","climatechangeimpactpersonal","hr_cost","median_hh_income","house_price","total_population","no_of_homes","median_house_age","median_age","white_frac","college_frac","owner_frac","contentscovered","maxdeductible5000","disaster_1")]
stargazer(t, type = "text", summary.stat = c("mean", "sd","p25","median","p75","n"),notes = "",digits = 4)
##
## ===================================================================================================
## Statistic Mean St. Dev. Pctl(25) Median Pctl(75) N
## ---------------------------------------------------------------------------------------------------
## policies_fraction 0.0969 0.1500 0.0174 0.0350 0.0999 18,642
## policies_fraction_pop 0.0525 0.1751 0.0076 0.0155 0.0447 18,642
## climatechangereal 0.6936 0.0598 0.6485 0.6968 0.7363 18,642
## worriedaboutclimatechange 0.5691 0.0686 0.5176 0.5617 0.6212 18,642
## climatechangeimpactpersonal 0.3922 0.0529 0.3497 0.3817 0.4270 18,642
## hr_cost 867.3781 592.3778 384.3348 885.6000 1,240.0000 18,642
## median_hh_income 69,870.0600 29,901.2100 50,091.5 63,064 82,430.5 18,642
## house_price 243,952.9000 343,146.2000 116,342.9000 164,115.1000 256,340.6000 15,007
## total_population 4,767.8330 2,386.1510 3,208.2 4,442 5,919 18,642
## no_of_homes 2,118.1280 983.2881 1,479.2 1,985 2,584.8 18,642
## median_house_age 48.4091 119.1528 30 40 51 18,642
## median_age 40.9458 8.0128 35.5000 40.7000 45.4000 18,642
## white_frac 0.7814 0.2215 0.6994 0.8611 0.9424 18,642
## college_frac 0.2032 0.0547 0.1676 0.2045 0.2393 18,642
## owner_frac 0.6660 0.1924 0.5515 0.7080 0.8135 18,642
## contentscovered 0.3811 0.2352 0.1860 0.3445 0.5551 18,642
## maxdeductible5000 0.3370 0.2037 0.1749 0.3077 0.4737 18,642
## disaster_1 0.1582 0.3649 0 0 0 18,642
## ---------------------------------------------------------------------------------------------------
##
OLS: SFHA
regs <- list()
regs[[1]] <- felm(log(1+contentscovered*100)~
worriedaboutclimatechange+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[2]] <- felm(log(1+contentscovered*100)~
climatechangereal+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[3]] <- felm(log(1+contentscovered*100)~
climatechangeimpactpersonal+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[4]] <- felm(log(1+maxdeductible5000*100)~
worriedaboutclimatechange+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[5]] <- felm(log(1+maxdeductible5000*100)~
climatechangereal+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[6]] <- felm(log(1+maxdeductible5000*100)~
climatechangeimpactpersonal+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
stargazer(regs,type="text",no.space = T,align = T,
omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n",
dep.var.labels.include = F,
add.lines = list(c("Tract", rep("Y",6)),c("State*Year", rep("Y",6))))
##
## =======================================================================================
## (1) (2) (3) (4) (5) (6)
## ---------------------------------------------------------------------------------------
## worriedaboutclimatechange 0.335*** -0.375***
## (0.092) (0.109)
## climatechangereal 0.644*** -1.007***
## (0.095) (0.117)
## climatechangeimpactpersonal 0.229* -0.242
## (0.138) (0.169)
## log(median_hh_income) -0.019 -0.019 -0.019 0.032** 0.032** 0.032**
## (0.014) (0.014) (0.014) (0.016) (0.016) (0.016)
## log(median_age) -0.019 -0.018 -0.020 0.043 0.042 0.044
## (0.032) (0.032) (0.032) (0.039) (0.039) (0.039)
## log(white_frac) -0.0001 0.001 -0.001 0.028 0.026 0.029
## (0.017) (0.017) (0.017) (0.021) (0.021) (0.021)
## log(college_frac) -0.001 0.0001 -0.002 0.015 0.012 0.016
## (0.013) (0.013) (0.013) (0.016) (0.016) (0.016)
## log(total_population) -0.053* -0.053* -0.053* -0.017 -0.017 -0.017
## (0.030) (0.030) (0.030) (0.038) (0.038) (0.038)
## log(no_of_homes) 0.101** 0.103** 0.103** 0.008 0.005 0.006
## (0.044) (0.044) (0.044) (0.054) (0.054) (0.054)
## log(owner_frac) 0.005 0.006 0.004 -0.024 -0.025 -0.023
## (0.025) (0.025) (0.025) (0.026) (0.026) (0.026)
## log(hr_cost) -0.140*** -0.139*** -0.140*** 0.078*** 0.076*** 0.078***
## (0.011) (0.011) (0.011) (0.015) (0.015) (0.015)
## log(median_house_age) -0.004 -0.004 -0.004 0.009** 0.010** 0.009**
## (0.004) (0.004) (0.004) (0.005) (0.005) (0.005)
## log(house_price) -0.084*** -0.085*** -0.084*** 0.169*** 0.172*** 0.169***
## (0.016) (0.016) (0.016) (0.022) (0.022) (0.022)
## disaster_1 0.005* 0.005* 0.005** -0.009*** -0.009*** -0.010***
## (0.003) (0.003) (0.003) (0.003) (0.003) (0.003)
## log(flood_connectedness) 0.019*** 0.019*** 0.019*** -0.007* -0.008** -0.007*
## (0.004) (0.004) (0.004) (0.004) (0.004) (0.004)
## Tract Y Y Y Y Y Y
## State*Year Y Y Y Y Y Y
## N 107,139 107,139 107,139 107,139 107,139 107,139
## Adjusted R2 0.880 0.880 0.880 0.854 0.854 0.854
## =======================================================================================
OLS: SFHA Disaster
interaction
regs <- list()
regs[[1]] <- felm(log(1+contentscovered*100)~
worriedaboutclimatechange*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[2]] <- felm(log(1+contentscovered*100)~
climatechangereal*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[3]] <- felm(log(1+contentscovered*100)~
climatechangeimpactpersonal*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[4]] <- felm(log(1+maxdeductible5000*100)~
worriedaboutclimatechange*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[5]] <- felm(log(1+maxdeductible5000*100)~
climatechangereal*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[6]] <- felm(log(1+maxdeductible5000*100)~
climatechangeimpactpersonal*disaster_1+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
stargazer(regs,type="text",no.space = T,align = T,
omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n",
dep.var.labels.include = F,
add.lines = list(c("Tract", rep("Y",6)),c("State*Year", rep("Y",6))))
##
## =================================================================================================
## (1) (2) (3) (4) (5) (6)
## -------------------------------------------------------------------------------------------------
## worriedaboutclimatechange 0.335*** -0.381***
## (0.092) (0.109)
## climatechangereal 0.639*** -1.008***
## (0.095) (0.116)
## climatechangeimpactpersonal 0.224 -0.245
## (0.138) (0.168)
## disaster_1 0.004 -0.017 -0.006 -0.030 -0.013 -0.016
## (0.021) (0.027) (0.018) (0.023) (0.030) (0.021)
## log(median_hh_income) -0.019 -0.019 -0.019 0.032** 0.032** 0.032**
## (0.014) (0.014) (0.014) (0.016) (0.016) (0.016)
## log(median_age) -0.019 -0.018 -0.020 0.043 0.042 0.044
## (0.032) (0.032) (0.032) (0.039) (0.039) (0.039)
## log(white_frac) -0.0001 0.001 -0.001 0.028 0.026 0.029
## (0.017) (0.017) (0.017) (0.021) (0.021) (0.021)
## log(college_frac) -0.001 0.0002 -0.002 0.015 0.012 0.016
## (0.013) (0.013) (0.013) (0.016) (0.016) (0.016)
## log(total_population) -0.053* -0.053* -0.053* -0.017 -0.017 -0.017
## (0.030) (0.030) (0.030) (0.038) (0.038) (0.038)
## log(no_of_homes) 0.101** 0.103** 0.103** 0.008 0.005 0.006
## (0.044) (0.044) (0.044) (0.054) (0.054) (0.054)
## log(owner_frac) 0.005 0.006 0.004 -0.024 -0.025 -0.023
## (0.025) (0.025) (0.025) (0.026) (0.026) (0.026)
## log(hr_cost) -0.140*** -0.139*** -0.140*** 0.078*** 0.076*** 0.078***
## (0.011) (0.011) (0.011) (0.015) (0.015) (0.015)
## log(median_house_age) -0.004 -0.004 -0.004 0.009** 0.010** 0.009**
## (0.004) (0.004) (0.004) (0.005) (0.005) (0.005)
## log(house_price) -0.084*** -0.085*** -0.084*** 0.169*** 0.172*** 0.169***
## (0.016) (0.016) (0.016) (0.022) (0.022) (0.022)
## log(flood_connectedness) 0.019*** 0.019*** 0.019*** -0.007* -0.008** -0.007*
## (0.004) (0.004) (0.004) (0.004) (0.004) (0.004)
## worriedaboutclimatechange:disaster_1 0.002 0.036
## (0.037) (0.040)
## climatechangereal:disaster_1 0.032 0.006
## (0.040) (0.045)
## climatechangeimpactpersonal:disaster_1 0.030 0.017
## (0.047) (0.054)
## Tract Y Y Y Y Y Y
## State*Year Y Y Y Y Y Y
## N 107,139 107,139 107,139 107,139 107,139 107,139
## Adjusted R2 0.880 0.880 0.880 0.854 0.854 0.854
## =================================================================================================
First Stage: SFHA
regs <- list()
regs[[1]] <- felm(worriedaboutclimatechange~
rep_gain*post+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[2]] <- felm(climatechangereal~
rep_gain*post+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
regs[[3]] <- felm(climatechangeimpactpersonal~
rep_gain*post+log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+disaster_1+log(flood_connectedness)
|censustract+state_yr|0|censustract,
data=sfha)
stargazer(regs,type="text",no.space = T,align = T,
omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n",
dep.var.labels.include = F,
add.lines = list(c("Tract", rep("Y",6)),c("State*Year", rep("Y",6))))
##
## ======================================================
## (1) (2) (3)
## ------------------------------------------------------
## rep_gain
## (0.000) (0.000) (0.000)
## post
## (0.000) (0.000) (0.000)
## log(median_hh_income) -0.001* -0.001 -0.002***
## (0.001) (0.001) (0.001)
## log(median_age) -0.002 -0.003* 0.001
## (0.002) (0.002) (0.001)
## log(white_frac) -0.004*** -0.004*** -0.002**
## (0.001) (0.001) (0.001)
## log(college_frac) -0.003*** -0.003*** -0.001*
## (0.001) (0.001) (0.001)
## log(total_population) -0.004** -0.004* -0.002
## (0.002) (0.002) (0.001)
## log(no_of_homes) 0.001 -0.003 -0.007***
## (0.003) (0.003) (0.002)
## log(owner_frac) -0.005*** -0.003*** -0.004***
## (0.001) (0.001) (0.001)
## log(hr_cost) -0.0004 -0.002*** -0.001***
## (0.0004) (0.0004) (0.0003)
## log(median_house_age) 0.0002 0.0002 0.0002*
## (0.0001) (0.0002) (0.0001)
## log(house_price) 0.001 0.0004 0.005***
## (0.001) (0.001) (0.001)
## disaster_1 0.001*** 0.001*** 0.001***
## (0.0001) (0.0001) (0.0001)
## log(flood_connectedness) -0.001*** -0.001*** 0.0003**
## (0.0002) (0.0002) (0.0001)
## rep_gain:post -0.075*** -0.069*** -0.055***
## (0.002) (0.001) (0.001)
## Tract Y Y Y
## State*Year Y Y Y
## N 106,925 106,925 106,925
## Adjusted R2 0.957 0.956 0.972
## ======================================================
Second Stage: SFHA
regs <- list()
regs[[1]] <- felm(log(1+contentscovered*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+state_yr|(worriedaboutclimatechange~rep_gain*post)|censustract,
data=sfha)
regs[[2]] <- felm(log(1+contentscovered*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+state_yr|(climatechangereal~rep_gain*post)|censustract,
data=sfha)
regs[[3]] <- felm(log(1+contentscovered*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+state_yr|(climatechangeimpactpersonal~rep_gain*post)|censustract,
data=sfha)
regs[[4]] <- felm(log(1+maxdeductible5000*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+state_yr|(worriedaboutclimatechange~rep_gain*post)|censustract,
data=sfha)
regs[[5]] <- felm(log(1+maxdeductible5000*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+state_yr|(climatechangereal~rep_gain*post)|censustract,
data=sfha)
regs[[6]] <- felm(log(1+maxdeductible5000*100)~
log(median_hh_income)+log(median_age)+log(white_frac)+log(college_frac)+log(total_population)+log(no_of_homes)+log(owner_frac)+log(hr_cost)+log(median_house_age)+log(house_price)+prev_disaster+log(flood_connectedness)
|censustract+year|(climatechangeimpactpersonal~rep_gain*post)|censustract,
data=sfha)
stargazer(regs,type="text",no.space = T,align = T,
omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n",
dep.var.labels.include = F,
add.lines = list(c("Tract", rep("Y",6)),c("State*Year", rep("Y",6))))
##
## ==============================================================================================
## (1) (2) (3) (4) (5) (6)
## ----------------------------------------------------------------------------------------------
## log(median_hh_income) -0.019 -0.020 -0.018 0.033** 0.033** 0.018
## (0.014) (0.014) (0.014) (0.016) (0.016) (0.017)
## log(median_age) -0.019 -0.016 -0.027 0.044 0.041 0.090**
## (0.032) (0.032) (0.032) (0.039) (0.039) (0.040)
## log(white_frac) 0.006 0.006 0.004 0.023 0.024 0.039*
## (0.017) (0.017) (0.017) (0.021) (0.021) (0.022)
## log(college_frac) 0.007 0.006 0.003 0.008 0.008 0.024
## (0.014) (0.014) (0.014) (0.016) (0.016) (0.016)
## log(total_population) -0.054* -0.055* -0.057* -0.017 -0.016 0.088**
## (0.030) (0.030) (0.030) (0.038) (0.038) (0.038)
## log(no_of_homes) 0.094** 0.103** 0.115*** 0.015 0.006 -0.030
## (0.044) (0.044) (0.045) (0.054) (0.054) (0.055)
## log(owner_frac) 0.013 0.011 0.014 -0.031 -0.029 -0.064**
## (0.025) (0.025) (0.025) (0.026) (0.026) (0.027)
## log(hr_cost) -0.139*** -0.136*** -0.137*** 0.077*** 0.075*** 0.075***
## (0.011) (0.011) (0.011) (0.015) (0.015) (0.016)
## log(median_house_age) -0.005 -0.005 -0.005 0.010** 0.010** 0.006
## (0.004) (0.004) (0.004) (0.005) (0.005) (0.005)
## log(house_price) -0.100*** -0.099*** -0.112*** 0.177*** 0.176*** 0.197***
## (0.016) (0.016) (0.017) (0.022) (0.022) (0.023)
## prev_disaster 0.008*** 0.007** 0.011*** -0.005 -0.004 0.009**
## (0.003) (0.003) (0.003) (0.004) (0.004) (0.004)
## log(flood_connectedness) 0.020*** 0.020*** 0.018*** -0.008** -0.008** 0.002
## (0.004) (0.004) (0.004) (0.004) (0.004) (0.003)
## `worriedaboutclimatechange(fit)` 1.867*** -1.732***
## (0.435) (0.396)
## `climatechangereal(fit)` 2.017*** -1.870***
## (0.469) (0.427)
## `climatechangeimpactpersonal(fit)` 2.530*** -2.347***
## (0.590) (0.536)
## Tract Y Y Y Y Y Y
## State*Year Y Y Y Y Y Y
## N 106,925 106,925 106,925 106,925 106,925 106,925
## Adjusted R2 0.879 0.879 0.879 0.854 0.854 0.850
## ==============================================================================================