Title: | Multivariate Synthetic Control Method Using Time Series |
---|---|
Description: | Three generalizations of the synthetic control method (which has already an implementation in package 'Synth') are implemented: first, 'MSCMT' allows for using multiple outcome variables, second, time series can be supplied as economic predictors, and third, a well-defined cross-validation approach can be used. Much effort has been taken to make the implementation as stable as possible (including edge cases) without losing computational efficiency. A detailed description of the main algorithms is given in Becker and Klößner (2018) <doi:10.1016/j.ecosta.2017.08.002>. |
Authors: | Martin Becker [aut, cre] , Stefan Klößner [aut], Karline Soetaert [com], Jack Dongarra [cph], R.J. Hanson [cph], K.H. Haskell [cph], Cleve Moler [cph], LAPACK authors [cph] |
Maintainer: | Martin Becker <[email protected]> |
License: | GPL |
Version: | 1.4.0 |
Built: | 2024-11-15 03:22:43 UTC |
Source: | https://github.com/cran/MSCMT |
compare
collects estimation results from mscmt
for
comparison purposes.
compare(..., auto.name.prefix = "")
compare(..., auto.name.prefix = "")
... |
Objects of class |
auto.name.prefix |
A character string (default: "") internally used to facilitate automatic naming in nested lists of unnamed estimation results. |
compare
collects (potentially many) estimation results from
mscmt
in a special object of class "mscmt"
, which
includes a component "comparison"
where the different estimation
results are aggregated.
This aggregated information is used by the ggplot.mscmt
and
print.mscmt
methods to present summaries of the different
results.
An object of class "mscmt"
, which itself contains the
individual estimation results as well as a component "comparison"
with aggregated information.
did
calculates difference-in-difference estimators based on SCM.
did( x, what, range.pre, range.post, alternative = c("two.sided", "less", "greater"), exclude.ratio = Inf )
did( x, what, range.pre, range.post, alternative = c("two.sided", "less", "greater"), exclude.ratio = Inf )
x |
An object of class |
what |
A character vector. Name of the variable to be considered. If missing, the (first) dependent variable will be used. |
range.pre |
A vector of length 2 defining the range of the pre-treatment period with start and end time given as
corresponding to the format of the respective column of the |
range.post |
A vector of length 2 defining the range of the post-treatment period with start and end time given as
corresponding to the format of the respective column of the |
alternative |
A character string giving the alternative of the test.
Either |
exclude.ratio |
A numerical scalar (default: |
did
calculates difference-in-difference estimators with corresponding
p-values (if results of a placebo study are present) based on the Synthetic
Control Method.
A list with components effect.size
, average.pre
and
average.post
. If x
contains the results of a placebo study,
three components p.value
, rank
, and excluded
(with the
names of the excluded units) are included additionally.
## Not run: ## for an example, see the main package vignette: vignette("WorkingWithMSCMT",package="MSCMT") ## End(Not run)
## Not run: ## for an example, see the main package vignette: vignette("WorkingWithMSCMT",package="MSCMT") ## End(Not run)
ggplot.mscmt
plots results of mscmt
based on
ggplot
.
## S3 method for class 'mscmt' ggplot( data, mapping = aes(), what, type = c("gaps", "comparison", "placebo.gaps", "placebo.data", "p.value"), treatment.time, zero.line = TRUE, ylab, xlab = "Date", main, col, lty, lwd, legend = TRUE, bw = FALSE, date.format, unit.name, full.legend = TRUE, include.smooth = FALSE, include.mean = FALSE, include.synth = FALSE, draw.estwindow = TRUE, what.set, limits = NULL, alpha = 1, alpha.min = 0.1, exclude.units = NULL, exclude.ratio = Inf, ratio.type = c("rmspe", "mspe"), alternative = c("two.sided", "less", "greater"), draw.points = TRUE, control.name = "control units", size = 1, treated.name = "treated unit", labels = c("actual data", "synthsized data"), ..., environment = parent.frame() )
## S3 method for class 'mscmt' ggplot( data, mapping = aes(), what, type = c("gaps", "comparison", "placebo.gaps", "placebo.data", "p.value"), treatment.time, zero.line = TRUE, ylab, xlab = "Date", main, col, lty, lwd, legend = TRUE, bw = FALSE, date.format, unit.name, full.legend = TRUE, include.smooth = FALSE, include.mean = FALSE, include.synth = FALSE, draw.estwindow = TRUE, what.set, limits = NULL, alpha = 1, alpha.min = 0.1, exclude.units = NULL, exclude.ratio = Inf, ratio.type = c("rmspe", "mspe"), alternative = c("two.sided", "less", "greater"), draw.points = TRUE, control.name = "control units", size = 1, treated.name = "treated unit", labels = c("actual data", "synthsized data"), ..., environment = parent.frame() )
data |
An object of class |
mapping |
An object necessary to match the definition of the
|
what |
A character vector. Name(s) of the variables to be plotted. If missing, the (first) dependent variable will be used. |
type |
A character scalar denoting the type of the plot containing
either |
treatment.time |
An optional scalar (numeric, character, or
|
zero.line |
A logical scalar. If |
ylab |
Optional label for the y-axis, automatically generated if missing. |
xlab |
Optional label for the x-axis, defaults to |
main |
Optional main title for the plot, automatically generated if missing. |
col |
Optional character vector with length 1 (for gaps plots) or
2 (for all other plot types). For comparison plots, |
lty |
Optional numerical vector with length 1 (for gaps plots) or
2 (for all other plot types). For comparison plots, |
lwd |
Optional numerical vector with length 1 (for gaps plots) or
2 (for all other plot types). For comparison plots, |
legend |
A logical scalar. If |
bw |
A logical scalar. If |
date.format |
A character string giving the format for the tick labels
of the x axis as documented in |
unit.name |
A character string with the title of the legend for comparison and placebo plots. Defaults to "Estimation" for comparison and "Unit" for placebo plots. |
full.legend |
A logical scalar. If |
include.smooth |
A logical scalar. If |
include.mean |
A logical scalar. If |
include.synth |
A logical scalar. If |
draw.estwindow |
A logical scalar. If |
what.set |
An optional character string for a convenient selection of
multiple variables. Accepted values are |
limits |
An optional vector of length 2 giving the range of the plot or
|
alpha |
Either a numerical scalar, a numerical vector of length
corresponding to the number of units, or the character string |
alpha.min |
A numerical scalar (default: |
exclude.units |
An optional (default: |
exclude.ratio |
A numeric scalar (default: |
ratio.type |
A character string. Either |
alternative |
A character string giving the alternative of the test for
plots of type |
draw.points |
A logical scalar. If |
control.name |
A character string for the naming of the non-treated
units in placebo plots. Defaults to |
size |
A numerical scalar (default: |
treated.name |
A character string giving the label for the treated
unit. Defaults to |
labels |
A character vector of length 2 giving the labels for the actual
and synthesized data. Defaults to |
... |
Necessary to match the definition of the
|
environment |
An object necessary to match the definition of the
|
A unified plot method for gaps plots, comparison of treated and synthetic
values, as well as plots for placebo studies, based on
ggplot
. ggplot.mscmt
is the preferred
plot method and has more functionality than plot.mscmt
.
An object of class ggplot
.
improveSynth
checks the results of synth
for feasibility and optimality and tries to find a better solution.
improveSynth( synth.out, dataprep.out, lb = 1e-08, tol = 1e-05, verbose = TRUE, seed = 1, ... )
improveSynth( synth.out, dataprep.out, lb = 1e-08, tol = 1e-05, verbose = TRUE, seed = 1, ... )
synth.out |
A result of |
dataprep.out |
The input of function |
lb |
A numerical scalar (default: |
tol |
A numerical scalar (default: |
verbose |
A logical scalar. Should the ouput be verbose (defaults to
|
seed |
A numerical vector or |
... |
Further arguments to |
Performing SCM means solving a nested optimization problem. Depending on the validity of the results of the inner optimization, SCM may produce
invalid or infeasible results, if the vector w
of donor
weights reported as the result of the inner optimization
is in fact not optimal, ie. produces too large loss.w
,
suboptimal results, if the vector v
of predictor weights
reported as the result of the outer optimization is in fact not
optimal (which may be caused by shortcomings of the inner optimization).
improveSynth
first checks synth.out
for feasibility and
then tries to find a feasible and optimal solution by applying the
optimization methods of package MSCMT
to dataprep.out
(with default settings, more flexibility will probably be added in a
future release).
An updated version of synth.out
, where solution.v
,
solution.w
, loss.v
, and loss.w
are replaced by the
optimum obtained by package 'MSCMT'
and all other components
of synth.out
are removed.
## Not run: ## check whether package 'Synth' is available if (require("Synth")) { ## process first example of function "synth" in package 'Synth' ## (comments are removed): data(synth.data) dataprep.out<- dataprep( foo = synth.data, predictors = c("X1", "X2", "X3"), predictors.op = "mean", dependent = "Y", unit.variable = "unit.num", time.variable = "year", special.predictors = list( list("Y", 1991, "mean"), list("Y", 1985, "mean"), list("Y", 1980, "mean") ), treatment.identifier = 7, controls.identifier = c(29, 2, 13, 17, 32, 38), time.predictors.prior = c(1984:1989), time.optimize.ssr = c(1984:1990), unit.names.variable = "name", time.plot = 1984:1996 ) synth.out <- synth(dataprep.out) ## check and (try to) improve these results: synth2.out <- improveSynth(synth.out,dataprep.out) } ## End(Not run)
## Not run: ## check whether package 'Synth' is available if (require("Synth")) { ## process first example of function "synth" in package 'Synth' ## (comments are removed): data(synth.data) dataprep.out<- dataprep( foo = synth.data, predictors = c("X1", "X2", "X3"), predictors.op = "mean", dependent = "Y", unit.variable = "unit.num", time.variable = "year", special.predictors = list( list("Y", 1991, "mean"), list("Y", 1985, "mean"), list("Y", 1980, "mean") ), treatment.identifier = 7, controls.identifier = c(29, 2, 13, 17, 32, 38), time.predictors.prior = c(1984:1989), time.optimize.ssr = c(1984:1990), unit.names.variable = "name", time.plot = 1984:1996 ) synth.out <- synth(dataprep.out) ## check and (try to) improve these results: synth2.out <- improveSynth(synth.out,dataprep.out) } ## End(Not run)
listFromLong
converts long to list format.
listFromLong( foo, unit.variable, time.variable, unit.names.variable = NULL, exclude.columns = NULL )
listFromLong( foo, unit.variable, time.variable, unit.names.variable = NULL, exclude.columns = NULL )
foo |
A |
unit.variable |
Either a numeric scalar with the column number (in
|
time.variable |
Either a numeric scalar with the column number (in
|
unit.names.variable |
Optional. If not |
exclude.columns |
Optional (defaults to |
listFromLong
is a convenience function to convert long format
(in a data.frame
, as used by package 'Synth') to list
format, where data is stored as a list of matrices.
Most parameter names are named after their equivalents in the
dataprep
function of package 'Synth'.
A list of matrices with rows corresponding to the times and columns
corresponding to the unit (or unit names, respectively) for all columns of
foo
which are neither excluded nor have a special role as time, unit,
or unit names variable.
if (require("Synth")) { data(basque) Basque <- listFromLong(basque, unit.variable="regionno", time.variable="year", unit.names.variable="regionname") names(Basque) head(Basque$gdpcap) }
if (require("Synth")) { data(basque) Basque <- listFromLong(basque, unit.variable="regionno", time.variable="year", unit.names.variable="regionname") names(Basque) head(Basque$gdpcap) }
mscmt
performs the Multivariate Synthetic Control Method Using Time
Series.
mscmt( data, treatment.identifier = NULL, controls.identifier = NULL, times.dep = NULL, times.pred = NULL, agg.fns = NULL, placebo = FALSE, placebo.with.treated = FALSE, univariate = FALSE, univariate.with.dependent = FALSE, check.global = TRUE, inner.optim = "wnnlsOpt", inner.opar = list(), outer.optim = "DEoptC", outer.par = list(), outer.opar = list(), std.v = c("sum", "mean", "min", "max"), alpha = NULL, beta = NULL, gamma = NULL, return.ts = TRUE, single.v = FALSE, verbose = TRUE, debug = FALSE, seed = NULL, cl = NULL, times.pred.training = NULL, times.dep.validation = NULL, v.special = integer(), cv.alpha = 0, spec.search.treated = FALSE, spec.search.placebos = FALSE )
mscmt( data, treatment.identifier = NULL, controls.identifier = NULL, times.dep = NULL, times.pred = NULL, agg.fns = NULL, placebo = FALSE, placebo.with.treated = FALSE, univariate = FALSE, univariate.with.dependent = FALSE, check.global = TRUE, inner.optim = "wnnlsOpt", inner.opar = list(), outer.optim = "DEoptC", outer.par = list(), outer.opar = list(), std.v = c("sum", "mean", "min", "max"), alpha = NULL, beta = NULL, gamma = NULL, return.ts = TRUE, single.v = FALSE, verbose = TRUE, debug = FALSE, seed = NULL, cl = NULL, times.pred.training = NULL, times.dep.validation = NULL, v.special = integer(), cv.alpha = 0, spec.search.treated = FALSE, spec.search.placebos = FALSE )
data |
Typically, a list of matrices with rows corresponding to times
and columns corresponding to units for all relevant features (dependent as
well as predictor variables, identified by the list elements' names).
This might be the result of converting from a
For convenience, |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
treatment.identifier |
A character scalar containing the name of the
treated unit.
Must be contained in the column names of the matrices in |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
controls.identifier |
A character vector containing the names of at
least two control units.
Entries must be contained in the column names of the matrices in |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
times.dep |
A matrix with two rows (containing start times in the first and end times in the second row) and one column for each dependent variable, where the column names must exactly match the names of the corresponding dependent variables. A sequence of dates with the given start and end times of
will be constructed; these dates are looked for in the row names of
the respective matrices in |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
times.pred |
A matrix with two rows (containing start times in the first and end times in the second row) and one column for each predictor variable, where the column names must exactly match the names of the corresponding predictor variables. A sequence of dates with the given start and end times of
will be constructed; these dates are looked for in the row names of
the respective matrices in |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agg.fns |
Either |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
placebo |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
placebo.with.treated |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
univariate |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
univariate.with.dependent |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
check.global |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inner.optim |
A character scalar containing the name of the optimization
method for the inner optimization. Defaults to |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inner.opar |
A list containing further parameters for the inner
optimizer. Defaults to the empty list. (For |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
outer.optim |
A character vector containing the name(s) of the
optimization method(s) for the outer optimization. Defaults to
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
outer.par |
A list containing further parameters for the outer optimization procedure. Defaults to the empty list. Entries in this list may override the following hard-coded general defaults:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
outer.opar |
A list (or a list of lists, if
If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std.v |
A character scalar containing one of the function names
"sum", "mean", "min", or "max" for the standardization of the predictor
weights (weights are divided by |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
alpha |
A numerical vector with weights for the dependent variables
in an MSCMT optimization or |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beta |
Either
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gamma |
Either
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
return.ts |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
single.v |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
verbose |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
debug |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
seed |
A numerical vector or |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cl |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
times.pred.training |
A matrix with two rows (containing start times in
the first and end times in the second row) and one column for each predictor
variable, where the column names must exactly match the names of the
corresponding predictor variables (or |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
times.dep.validation |
A matrix with two rows (containing start times in
the first and end times in the second row) and one column for each dependent
variable, where the column names must exactly match the names of the
corresponding dependent variables (or |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
v.special |
integer vector containing indices of important predictors with special treatment (see below). Defaults to the empty set. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cv.alpha |
numeric scalar containing the minimal proportion (of the
maximal feasible weight) for the weights of the predictors selected by
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spec.search.treated |
A logical scalar. If |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spec.search.placebos |
A logical scalar. If |
mscmt
combines, if necessary, the preparation of the raw data (which
is expected to be in "list" format, possibly after conversion from a
data.frame
with function listFromLong
) and the call to the appropriate
MSCMT optimization procedures (depending on the input parameters).
For details on the input parameters alpha
, beta
, and
gamma
, see [1]. For details on cross-validation, see [2].
An object of class "mscmt"
, which is essentially a list
containing the results of the estimation and, if applicable, the placebo
study.
The most important list elements are
the weight vector w
for the control units,
a matrix v
with weight vectors for the predictors in its
columns,
scalars loss.v
and rmspe
with the dependent loss and its
square root,
a vector loss.w
with the predictor losses corresponding to the
various weight vectors in the columns of v
,
a matrix predictor.table
containing aggregated statistics of
predictor values (similar to list element tab.pred
of
function synth.tab
of package 'Synth'
),
a list of multivariate time series combined
containing,
for each dependent and predictor variable, a multivariate time series
with elements treated
for the actual values of the treated unit,
synth
for the synthesized values, and gaps
for the differences.
Placebo studies produce a list containing individual results for each
unit (as treated unit), starting with the original treated unit, as well
as a list element named placebo
with aggregated results for each
dependent and predictor variable.
If times.pred.training
and times.dep.validation
are not
NULL
, a cross-validation is done and a list of elements cv
with the results of the cross-validation period and main
with
the results of the main period is returned.
[1] Becker M, Klößner S (2018). “Fast and Reliable Computation of Generalized Synthetic Controls.” Econometrics and Statistics, 5, 1–19. https://doi.org/10.1016/j.ecosta.2017.08.002.
[2] Becker M, Klößner S, Pfeifer G (2018). “Cross-Validating Synthetic Controls.” Economics Bulletin, 38, 603-609. Working Paper, http://www.accessecon.com/Pubs/EB/2018/Volume38/EB-18-V38-I1-P58.pdf.
## Not run: ## for examples, see the package vignettes: browseVignettes(package="MSCMT") ## End(Not run)
## Not run: ## for examples, see the package vignettes: browseVignettes(package="MSCMT") ## End(Not run)
plot.mscmt
plots results of mscmt
.
## S3 method for class 'mscmt' plot( x, what, type = c("gaps", "comparison", "placebo.gaps", "placebo.data"), treatment.time, zero.line = TRUE, ylab, xlab = "Date", main, sub, col, lty, lwd, legend = TRUE, bw = FALSE, ... )
## S3 method for class 'mscmt' plot( x, what, type = c("gaps", "comparison", "placebo.gaps", "placebo.data"), treatment.time, zero.line = TRUE, ylab, xlab = "Date", main, sub, col, lty, lwd, legend = TRUE, bw = FALSE, ... )
x |
An object of class |
what |
A character scalar. Name of the variable to be plotted. If missing, the (first) dependent variable will be used. |
type |
A character scalar denoting the type of the plot containing
either |
treatment.time |
An optional numerical scalar. If not missing, a
vertical dotted line at the given point in time is included in the plot.
|
zero.line |
A logical scalar. If |
ylab |
Optional label for the y-axis, automatically generated if missing. |
xlab |
Optional label for the x-axis, defaults to |
main |
Optional main title for the plot, automatically generated if missing. |
sub |
Optional subtitle for the plot. If missing, the subtitle is
generated automatically for |
col |
Optional character vector with length corresponding to the number of units. Contains the colours for the different units, automatically generated if missing. |
lty |
Optional numerical vector with length corresponding to the number of units. Contains the line types for the different units, automatically generated if missing. |
lwd |
Optional numerical vector with length corresponding to the number of units. Contains the line widths for the different units, automatically generated if missing. |
legend |
A logical scalar. If |
bw |
A logical scalar. If |
... |
Further optional parameters for the underlying
|
A unified basic plot function for gaps plots, comparison of treated and
synthetic values, as well as plots for placebo studies.
Consider using ggplot.mscmt
instead, which is the preferred
plot method and has more functionality than plot.mscmt
.
Nothing useful (function is called for its side effects).
ppratio
calculates post-to-pre-(r)mspe-ratios for placebo studies.
ppratio( x, what, range.pre, range.post, type = c("rmspe", "mspe"), return.all = FALSE )
ppratio( x, what, range.pre, range.post, type = c("rmspe", "mspe"), return.all = FALSE )
x |
An object of class |
what |
A character vector. Name of the variable to be considered. If missing, the (first) dependent variable will be used. |
range.pre |
A vector of length 2 defining the range of the pre-treatment period with start and end time given as
corresponding to the format of the respective column of the |
range.post |
A vector of length 2 defining the range of the post-treatment period with start and end time given as
corresponding to the format of the respective column of the |
type |
A character string. Either |
return.all |
A logical scalar. If |
ppratio
calculates post-to-pre-(r)mspe-ratios for placebo studies based
on Synthetic Control Methods.
If return.all
is FALSE
, a (named) vector of
post-pre-(r)mspe-ratios. If return.all
is TRUE
, a matrix with
three columns containing the pre-treatment (r)mspe, the post-treatment
(r)mspe, and the post-pre-ratio.
print.mscmt
prints results of mscmt
.
## S3 method for class 'mscmt' print(x, ...)
## S3 method for class 'mscmt' print(x, ...)
x |
An object of class |
... |
Further arguments to be passed to or from other methods. They are ignored in this function. |
A human-readable summary of mscmt
's results.
Nothing useful (function is called for its side effects).
pvalue
calculates p-values for placebo studies.
pvalue( x, what, range.pre, range.post, alternative = c("two.sided", "less", "greater"), exclude.ratio = Inf, ratio.type = c("rmspe", "mspe") )
pvalue( x, what, range.pre, range.post, alternative = c("two.sided", "less", "greater"), exclude.ratio = Inf, ratio.type = c("rmspe", "mspe") )
x |
An object of class |
what |
A character vector. Name of the variable to be considered. If missing, the (first) dependent variable will be used. |
range.pre |
A vector of length 2 defining the range of the pre-treatment period with start and end time given as
corresponding to the format of the respective column of the |
range.post |
A vector of length 2 defining the range of the post-treatment period with start and end time given as
corresponding to the format of the respective column of the |
alternative |
A character string giving the alternative of the test.
Either |
exclude.ratio |
A numerical scalar (default: |
ratio.type |
A character string. Either |
pvalue
calculates p-values for placebo studies based
on Synthetic Control Methods.
A time series containing the p-values for the post-treatment periods.
## Not run: ## for an example, see the main package vignette: vignette("WorkingWithMSCMT",package="MSCMT") ## End(Not run)
## Not run: ## for an example, see the main package vignette: vignette("WorkingWithMSCMT",package="MSCMT") ## End(Not run)