DGP | R Documentation |
R6
class representing a data-generating processDGP
, a data-generating process which can generate()
data in
an Experiment.
Generally speaking, users won't directly interact with the DGP
R6
class, but instead indirectly through create_dgp()
and the
following Experiment
helpers:
add_dgp()
update_dgp()
remove_dgp()
get_dgps()
generate_data()
name
The name of the DGP
.
dgp_fun
The user-defined data-generating process function.
dgp_params
A (named) list of user-defined default arguments to input into the data-generating process function.
new()
Initialize a new DGP
object.
DGP$new(.dgp_fun, .name = NULL, ...)
.dgp_fun
The user-defined data-generating process function.
.name
(Optional) An optional name for the DGP
, helpful for later
identification.
...
User-defined default arguments to pass to .dgp_fun()
when
DGP$generate()
is called.
A new instance of DGP
.
generate()
Generate data from a DGP
.
DGP$generate(...)
...
User-defined arguments to pass into DGP$dgp_fun()
that will
overwrite the initialized DGP
parameters. If no additional arguments
are provided, data will be generated using DGP$dgp_fun()
with the
parameters that were set when DGP$new()
was called.
Result of DGP$dgp_fun()
. If the result is not a list,
it will be coerced to a list.
print()
Print a DGP
in a nice format, showing the
DGP
's name, function, and parameters.
DGP$print()
The original DGP
object, invisibly.
clone()
The objects of this class are cloneable with this method.
DGP$clone(deep = FALSE)
deep
Whether to make a deep clone.
create_dgp
# create an example DGP function
dgp_fun <- function(n, beta, rho, sigma) {
cov_mat <- matrix(c(1, rho, rho, 1), byrow = TRUE, nrow = 2, ncol = 2)
X <- MASS::mvrnorm(n = n, mu = rep(0, 2), Sigma = cov_mat)
y <- X %*% beta + rnorm(n, sd = sigma)
return(list(X = X, y = y))
}
# create DGP (with uncorrelated features)
dgp <- DGP$new(.dgp_fun = dgp_fun,
.name = "Linear Gaussian DGP",
# additional named parameters to pass to dgp_fun() by default
n = 50, beta = c(1, 0), rho = 0, sigma = 1)
print(dgp)
data_uncorr <- dgp$generate()
cor(data_uncorr$X)
data_corr <- dgp$generate(rho = 0.7)
cor(data_corr$X)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.