All installed packages were loaded to be used in the R Program.
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(plm)
##
## Attaching package: 'plm'
##
## The following objects are masked from 'package:dplyr':
##
## between, lag, lead
library(knitr)
—- Data —-
test.dat <- load("Ozone_Drought_Final.RData")
regions <- read.csv("region_code.csv")
df <- combinedAir.final
df$State.Code <- as.numeric(df$State.Code)
df$month = as.numeric(df$month)
df1 <- df %>%
mutate(no_drought = ifelse(USDM.categorical == "NoDrought", 1, 0),
moderate = ifelse(USDM.categorical == "ModerateDrought", 1, 0),
severe = ifelse(USDM.categorical == "SevereDrought", 1, 0))
df2 <- df1 %>%
merge(regions, by = "State.Code")
— States in Northeast Region —
ne <- df2 %>%
filter(noaa_region == "northeast")
kable(unique(ne$State.Name), caption = "States in Northeast Region")
States in Northeast Region
Connecticut |
Delaware |
Maine |
Maryland |
Massachusetts |
New Hampshire |
New Jersey |
New York |
Pennsylvania |
Rhode Island |
Vermont |
— Connecticut —
ct <- ne %>%
filter(State.Name == "Connecticut")
ct_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ct,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
ct_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ct,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ct_random, ct_fix, type = "text", title = "Connecticut", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Connecticut
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate 0.494** -1.323***
## (0.204) (0.239)
##
## severe -6.881*** -9.010***
## (0.655) (0.670)
##
## elevation 0.037*** 0.090***
## (0.003) (0.007)
##
## Longitude 10.335*** 18.742***
## (0.529) (0.753)
##
## Latitude -22.975*** -42.220***
## (1.397) (2.662)
##
## Constant 1,745.954***
## (85.253)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 45,237 45,237
## R2 0.037 0.021
## Adjusted R2 0.037 0.021
## F Statistic 652.480*** 195.643*** (df = 5; 45206)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Delaware —
dw <- ne %>%
filter(State.Name == "Delaware")
## Error in Calculating Random Effect Model only Fixed Effect was calculated
dw_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = dw,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(dw_fix, type = "text", title = "Delaware", align = TRUE,
add.lines = list(c("Model Name", "Fixed Effect Model")),
column.labels = c("Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Delaware
## ==========================================
## Dependent Variable: Ozone Max
## -----------------------------
## Fixed Effect Model
## ------------------------------------------
## moderate 5.728***
## (0.326)
##
## severe 5.582***
## (0.766)
##
## elevation 0.103***
## (0.006)
##
## Longitude 6.068***
## (1.209)
##
## Latitude -14.758***
## (2.386)
##
## ------------------------------------------
## Model Name Fixed Effect Model
## Observations 36,522
## R2 0.022
## Adjusted R2 0.022
## F Statistic 166.744*** (df = 5; 36496)
## ==========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Maine —
ma <- ne %>%
filter(State.Name == "Maine")
ma_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ma,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
ma_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ma,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ma_random, ma_fix, type = "text", title = "Maine", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Maine
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate -1.510*** -2.759***
## (0.132) (0.152)
##
## severe -6.615*** -7.407***
## (0.659) (0.671)
##
## elevation 0.014*** 0.019***
## (0.001) (0.001)
##
## Longitude 4.099*** 3.787***
## (0.296) (0.320)
##
## Latitude -11.921*** -11.675***
## (0.351) (0.379)
##
## Constant 850.339***
## (29.859)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 72,052 72,052
## R2 0.023 0.021
## Adjusted R2 0.023 0.020
## F Statistic 1,413.672*** 307.203*** (df = 5; 72017)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Maryland —
md <- ne %>%
filter(State.Name == "Maryland")
md_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = md,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
md_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = md,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(md_random, md_fix, type = "text", title = "Maryland", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Maryland
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate 3.452*** 1.987***
## (0.170) (0.217)
##
## severe 3.640*** 1.194**
## (0.448) (0.559)
##
## elevation 0.062*** 0.071***
## (0.002) (0.003)
##
## Longitude 3.902*** 1.437
## (0.902) (1.567)
##
## Latitude -22.408*** -27.514***
## (0.986) (1.169)
##
## Constant 1,214.699***
## (72.731)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 81,900 81,900
## R2 0.018 0.011
## Adjusted R2 0.018 0.011
## F Statistic 1,231.863*** 187.044*** (df = 5; 81861)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Massachusetts —
ms <- ne %>%
filter(State.Name == "Massachusetts")
ms_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ms,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
ms_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ms,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ms_random, ms_fix, type = "text", title = "Massachusetts", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Massachusetts
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate -2.687*** -2.898***
## (0.148) (0.160)
##
## severe -7.092*** -6.844***
## (0.317) (0.367)
##
## elevation 0.018*** 0.012***
## (0.001) (0.001)
##
## Longitude 9.002*** 11.442***
## (0.518) (0.577)
##
## Latitude 2.646*** 4.723***
## (0.545) (0.548)
##
## Constant 570.574***
## (40.485)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 80,822 80,822
## R2 0.017 0.012
## Adjusted R2 0.017 0.012
## F Statistic 1,164.097*** 202.398*** (df = 5; 80786)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— New Hampshire —
nh <- ne %>%
filter(State.Name == "New Hampshire")
nh_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = nh,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
nh_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = nh,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(nh_random, nh_fix, type = "text", title = "New Hampshire", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## New Hampshire
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate 0.373** 0.036
## (0.162) (0.174)
##
## severe -6.965*** -5.707***
## (0.434) (0.479)
##
## elevation 0.009*** 0.011***
## (0.0002) (0.0002)
##
## Longitude 1.088*** 0.952***
## (0.278) (0.277)
##
## Latitude -1.346*** -4.948***
## (0.387) (0.400)
##
## Constant 173.708***
## (29.786)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 54,437 54,437
## R2 0.044 0.050
## Adjusted R2 0.044 0.050
## F Statistic 2,019.397*** 577.773*** (df = 5; 54404)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— New Jersey —
nj <- ne %>%
filter(State.Name == "New Jersey")
nj_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = nj,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
nj_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = nj,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(nj_random, nj_fix, type = "text", title = "New Jersey", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## New Jersey
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate 1.476*** -0.318
## (0.162) (0.195)
##
## severe 2.325*** -1.871***
## (0.546) (0.612)
##
## elevation 0.059*** 0.156***
## (0.006) (0.018)
##
## Longitude 6.021*** 13.754***
## (1.050) (4.740)
##
## Latitude -9.579*** 10.515
## (0.965) (6.836)
##
## Constant 871.030***
## (73.240)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 92,562 92,562
## R2 0.006 0.005
## Adjusted R2 0.006 0.005
## F Statistic 525.089*** 100.982*** (df = 5; 92524)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— New York —
ny <- ne %>%
filter(State.Name == "New York")
ny_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ny,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
ny_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ny,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ny_random, ny_fix, type = "text", title = "New York", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## New York
## ============================================================
## Dependent Variable: Ozone Max
## -----------------------------------------------
## Random Effect Model Fixed Effect Model
## ------------------------------------------------------------
## moderate -0.512*** -1.453***
## (0.108) (0.118)
##
## severe -1.956*** -3.704***
## (0.431) (0.440)
##
## elevation 0.013*** 0.014***
## (0.001) (0.001)
##
## Longitude 4.126*** 11.483***
## (0.231) (0.569)
##
## Latitude 4.272*** -3.715***
## (0.381) (0.998)
##
## Constant 163.889***
## (25.899)
##
## ------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 204,367 204,367
## R2 0.007 0.009
## Adjusted R2 0.007 0.008
## F Statistic 1,278.394*** 352.250*** (df = 5; 204312)
## ============================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Pennsylvania —
ps <- ne %>%
filter(State.Name == "Pennsylvania")
ps_random <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ps,
index = c("GEOID", "Year", "month"),
model = ("random"))
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
ps_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ps,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ps_random, ps_fix, type = "text", title = "Pennsylvania", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
column.labels = c("Random Effect Model", "Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Pennsylvania
## ===========================================================
## Dependent Variable: Ozone Max
## ----------------------------------------------
## Random Effect Model Fixed Effect Model
## -----------------------------------------------------------
## moderate 1.317*** -1.115***
## (0.115) (0.121)
##
## severe 2.003*** -6.679***
## (0.541) (0.545)
##
## elevation 0.012*** 0.013***
## (0.001) (0.001)
##
## Longitude -0.723*** -0.375
## (0.181) (0.308)
##
## Latitude -2.493*** -2.134***
## (0.403) (0.514)
##
## Constant 82.697***
## (21.637)
##
## -----------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 266,427 266,427
## R2 0.005 0.002
## Adjusted R2 0.005 0.001
## F Statistic 434.739*** 91.966*** (df = 5; 266366)
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Rhode Island —
ri <- ne %>%
filter(State.Name == "Rhode Island")
## Error in Calculating Random Effect Model only Fixed Effect was calculated
ri_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = ri,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(ri_fix, type = "text", title = "Rhode Island", align = TRUE,
add.lines = list(c("Model Name", "Fixed Effect Model")),
column.labels = c("Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Rhode Island
## ==========================================
## Dependent Variable: Ozone Max
## -----------------------------
## Fixed Effect Model
## ------------------------------------------
## moderate -3.013***
## (0.436)
##
## severe -3.091
## (2.518)
##
## Longitude 3,272.716
## (2,608.592)
##
## ------------------------------------------
## Model Name Fixed Effect Model
## Observations 12,291
## R2 0.004
## Adjusted R2 0.002
## F Statistic 16.867*** (df = 3; 12267)
## ==========================================
## Note: *p<0.1; **p<0.05; ***p<0.01
— Vermont —
vt <- ne %>%
filter(State.Name == "Vermont")
## Error in Calculating Random Effect Model only Fixed Effect was calculated
vt_fix <- plm(Max.Ozone ~ moderate + severe + elevation + Longitude + Latitude,
data = vt,
index = c("GEOID", "Year", "month"),
effect = "twoway")
## Warning in pdata.frame(data, index): duplicate couples (id-time) in resulting pdata.frame
## to find out which, use, e.g., table(index(your_pdataframe), useNA = "ifany")
stargazer(vt_fix, type = "text", title = "Vermont", align = TRUE,
add.lines = list(c("Model Name", "Fixed Effect Model")),
column.labels = c("Fixed Effect Model"),
dep.var.caption = "Dependent Variable: Ozone Max",
dep.var.labels.include = FALSE,
omit.table.layout = "#")
##
## Vermont
## ==========================================
## Dependent Variable: Ozone Max
## -----------------------------
## Fixed Effect Model
## ------------------------------------------
## moderate -2.038***
## (0.353)
##
## ------------------------------------------
## Model Name Fixed Effect Model
## Observations 13,608
## R2 0.002
## Adjusted R2 0.001
## F Statistic 33.383*** (df = 1; 13586)
## ==========================================
## Note: *p<0.1; **p<0.05; ***p<0.01