Powell's generalized synthetic control
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
data
inst/doc
man
src
vignettes
.Rbuildignore
.gitignore
DESCRIPTION
NAMESPACE
NEWS.md
README.Rmd
README.md
cran-comments.md
pgsc.Rproj

README.md

pgsc

The goal of pgsc is to provide an estimation and testing framework for Powell's Generalized Synthetic Control method. This provides consistent estimates in the presence of unobserved spatially-correlated factors in a panel. Please see the vignette for further details and an extended example.

Installation

You can install pgsc from CRAN using:

install.packages("pgsc")

This version is stable, and user-friendly. New features might be availble in the development version on github, which can be installed via:

devtools::install_github("philipbarrett/pgsc")

Example

This is a basic example which provides estimation and testing for a dataset with omitted variables that cannot be addressed by time and unit fixed effects. Please see the vignette for further details on this example and other options.

#' data("pgsc.dta")
#' library(plm)
#' pan <- plm( y ~ D1 + D2 + X1 + X2 + X3, pgsc.dta, effect = 'twoways', index = c('n','t'))
#' summary(pan)
#'    # Failure of panel estimation: the true coefficients on D1, D2 are c(1,2), 
#'    # which are not recovered due to omitted variables which are spatially
#'    #  correlated.  The "twoway" (time/unit) fixed effects cannot pick this up.
#' sol <- pgsc(pgsc.dta, dep.var = 'y', indep.var = c('D1','D2'), 
#'              b.init = c(0,0), method='twostep.indiv' )
#' summary(sol)
#'    # The unrestricted estimation. 
#' g.i <- function(b) b[1] ; g.i.grad <- function(b) c(1,0)
#' sol.r <- pgsc(pgsc.dta, dep.var = 'y', indep.var = c('D1','D2'), 
#'              b.init = sol$b, method='twostep.indiv', g.i=g.i, g.i.grad=g.i.grad )
#'    # Restricted estimation under the hypothesis that b[1]=0
#' summary(sol.r)
#' wald <- pgsc.wald.test( pgsc.dta, 'y', indep.var = c('D1','D2'), sol.r )
#' summary(wald)
#' plot(wald)
#'    # Testing the hypothesized restriction.  It is comfortably rejected.

You can access the vignette with

#' browseVignettes('pgsc')