# library
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(plm)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plm':
##
## between, lag, lead
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## load and rearrange data
test.dat <- load("D:/yang7916/Ozone_Drought_Final.RData/Ozone_Drought_Final.RData")
test.dat <- combinedAir.final
test.dat$USDM.categorical <- factor(test.dat$USDM.categorical, levels = c("NoDrought", "ModerateDrought", "SevereDrought"))
test.dat$USDM.categorical <- relevel(test.dat$USDM.categorical, ref = "NoDrought")
## model 1
md1_random <- plm(Max.Ozone ~USDM.categorical, data = test.dat, model = "random", index = c("GEOID", "Year","month"))
## 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")
md1_fix <- plm(Max.Ozone ~USDM.categorical, data = test.dat, effect=("twoways"),model = "within", index = c("GEOID", "Year","month"))
## 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(md1_random, md1_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 1", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 1
## ===================================================================================
## Dependent variable:
## ---------------------------------------------------
## (1) (2)
## -----------------------------------------------------------------------------------
## USDM.categoricalModerateDrought 1.319*** 1.426***
## (0.014) (0.014)
##
## USDM.categoricalSevereDrought 2.624*** 3.078***
## (0.020) (0.021)
##
## Constant 42.237***
## (0.148)
##
## -----------------------------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.006 0.004
## Adjusted R2 0.006 0.004
## F Statistic 20,401.120*** 12,642.330*** (df = 2; 6607388)
## ===================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 2
md2_random<- plm(Max.Ozone ~ USDM.categorical +elevation+ Longitude + Latitude,
data=test.dat,
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")
md2_fix<- plm(Max.Ozone ~ USDM.categorical +elevation+ Longitude + Latitude,
data=test.dat,
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(md2_random, md2_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 2", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 2
## ===================================================================================
## Dependent variable:
## ---------------------------------------------------
## (1) (2)
## -----------------------------------------------------------------------------------
## USDM.categoricalModerateDrought 1.309*** 1.416***
## (0.014) (0.014)
##
## USDM.categoricalSevereDrought 2.604*** 3.065***
## (0.020) (0.021)
##
## elevation 0.007*** 0.007***
## (0.00004) (0.00004)
##
## Longitude 0.142*** 0.323***
## (0.009) (0.032)
##
## Latitude 0.018 0.537***
## (0.024) (0.045)
##
## Constant 51.806***
## (1.232)
##
## -----------------------------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.011 0.009
## Adjusted R2 0.011 0.009
## F Statistic 51,505.070*** 11,699.010*** (df = 5; 6607385)
## ===================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 3
md3_random <- plm(Max.Ozone ~ USDM.categorical + tmean +
elevation + Longitude + Latitude,
data=test.dat,
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")
md3_fix <- plm(Max.Ozone ~ USDM.categorical + tmean+
elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md3_random, md3_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 3", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 3
## ====================================================================================
## Dependent variable:
## ----------------------------------------------------
## (1) (2)
## ------------------------------------------------------------------------------------
## USDM.categoricalModerateDrought 1.182*** 1.273***
## (0.013) (0.013)
##
## USDM.categoricalSevereDrought 1.437*** 1.838***
## (0.019) (0.019)
##
## tmean 0.653*** 0.648***
## (0.001) (0.001)
##
## elevation 0.009*** 0.009***
## (0.00003) (0.00004)
##
## Longitude 0.099*** -0.458***
## (0.008) (0.029)
##
## Latitude 0.300*** 0.637***
## (0.021) (0.041)
##
## Constant 25.733***
## (1.035)
##
## ------------------------------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.153 0.150
## Adjusted R2 0.153 0.150
## F Statistic 1,164,424.000*** 193,861.200*** (df = 6; 6607384)
## ====================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 4
md4_random <- plm(Max.Ozone ~ tmean+elevation + Longitude + Latitude,
data=test.dat,
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")
md4_fix <- plm(Max.Ozone ~ tmean+elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md4_random, md4_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 4", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 4
## =================================================================
## Dependent variable:
## ----------------------------------------------------
## (1) (2)
## -----------------------------------------------------------------
## tmean 0.655*** 0.651***
## (0.001) (0.001)
##
## elevation 0.009*** 0.009***
## (0.00003) (0.00004)
##
## Longitude 0.087*** -0.439***
## (0.008) (0.029)
##
## Latitude 0.301*** 0.647***
## (0.021) (0.041)
##
## Constant 24.839***
## (1.081)
##
## -----------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.152 0.148
## Adjusted R2 0.152 0.148
## F Statistic 1,151,227.000*** 286,618.800*** (df = 4; 6607386)
## =================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 5
md5_random <- plm(Max.Ozone ~ ppt+elevation + Longitude + Latitude,
data=test.dat,
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")
md5_fix <- plm(Max.Ozone ~ ppt+elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md5_random, md5_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 5", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 5
## ================================================================
## Dependent variable:
## ---------------------------------------------------
## (1) (2)
## ----------------------------------------------------------------
## ppt -0.230*** -0.228***
## (0.001) (0.001)
##
## elevation 0.007*** 0.007***
## (0.00004) (0.00004)
##
## Longitude 0.146*** 0.342***
## (0.010) (0.031)
##
## Latitude 0.006 0.532***
## (0.025) (0.044)
##
## Constant 53.648***
## (1.279)
##
## ----------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.025 0.022
## Adjusted R2 0.025 0.022
## F Statistic 150,092.100*** 37,672.030*** (df = 4; 6607386)
## ================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 6
md6_random <- plm(Max.Ozone ~ tdmean+elevation + Longitude + Latitude,
data=test.dat,
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")
md6_fix <- plm(Max.Ozone ~ tdmean+elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md6_random, md6_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 6", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 6
## ================================================================
## Dependent variable:
## ---------------------------------------------------
## (1) (2)
## ----------------------------------------------------------------
## tdmean 0.329*** 0.325***
## (0.001) (0.001)
##
## elevation 0.008*** 0.008***
## (0.00004) (0.00004)
##
## Longitude 0.129*** 0.515***
## (0.010) (0.031)
##
## Latitude 0.321*** 1.096***
## (0.025) (0.044)
##
## Constant 35.736***
## (1.284)
##
## ----------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.042 0.039
## Adjusted R2 0.042 0.039
## F Statistic 270,600.800*** 67,276.060*** (df = 4; 6607386)
## ================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 7
md7_random <- plm(Max.Ozone ~ tdmean+tmean+ppt+elevation + Longitude + Latitude,
data=test.dat,
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")
md7_fix <- plm(Max.Ozone ~ tdmean+tmean+ppt+elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md7_random, md7_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 7", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 7
## =================================================================
## Dependent variable:
## ----------------------------------------------------
## (1) (2)
## -----------------------------------------------------------------
## tdmean -0.830*** -0.844***
## (0.001) (0.001)
##
## tmean 1.351*** 1.360***
## (0.001) (0.001)
##
## ppt -0.136*** -0.132***
## (0.001) (0.001)
##
## elevation 0.008*** 0.008***
## (0.00003) (0.00003)
##
## Longitude 0.066*** -1.724***
## (0.008) (0.028)
##
## Latitude -0.060*** -0.673***
## (0.021) (0.039)
##
## Constant 34.150***
## (1.063)
##
## -----------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.227 0.225
## Adjusted R2 0.227 0.225
## F Statistic 1,904,972.000*** 319,369.100*** (df = 6; 6607384)
## =================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
## model 8
md8_random <- plm(Max.Ozone ~ USDM.categorical+ tdmean+tmean+ppt+elevation + Longitude + Latitude,
data=test.dat,
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")
md8_fix <- plm(Max.Ozone ~ USDM.categorical+tdmean+tmean+ppt+elevation + Longitude + Latitude,
data=test.dat,
index = c("GEOID", "Year","month"),
model = "within",
effect = "twoways"
)
## 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(md8_random, md8_fix, type = "text", title = "Comparison of Random and Fixed Effect Models 8", align = TRUE,
add.lines = list(c("Model Name", "Random Effect Model", "Fixed Effect Model")),
dep.var.labels.include = FALSE)
##
## Comparison of Random and Fixed Effect Models 8
## ====================================================================================
## Dependent variable:
## ----------------------------------------------------
## (1) (2)
## ------------------------------------------------------------------------------------
## USDM.categoricalModerateDrought 0.531*** 0.703***
## (0.012) (0.013)
##
## USDM.categoricalSevereDrought 0.301*** 0.739***
## (0.018) (0.018)
##
## tdmean -0.826*** -0.839***
## (0.001) (0.001)
##
## tmean 1.348*** 1.354***
## (0.001) (0.001)
##
## ppt -0.136*** -0.132***
## (0.001) (0.001)
##
## elevation 0.008*** 0.008***
## (0.00003) (0.00003)
##
## Longitude 0.080*** -1.725***
## (0.008) (0.028)
##
## Latitude -0.045** -0.669***
## (0.020) (0.039)
##
## Constant 34.799***
## (1.027)
##
## ------------------------------------------------------------------------------------
## Model Name Random Effect Model Fixed Effect Model
## Observations 6,608,332 6,608,332
## R2 0.227 0.225
## Adjusted R2 0.227 0.225
## F Statistic 1,907,352.000*** 240,126.300*** (df = 8; 6607382)
## ====================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01