library(growfunctions)
## use gen_informative_sample() to generate an
## N X T population drawn from a dependent GP
## By default, 3 clusters are used to generate
## the population.
## A single stage stratified random sample of size n
## is drawn from the population using I = 4 strata.
## The resulting sample is informative in that the
## distribution for this sample is
## different from the population from which
## it was drawn because the strata inclusion
## probabilities are proportional to a feature
## of the response, y (in the case, the variance.
## The stratified random sample over-samples
## large variance strata).
## (The user may also select a 2-stage
## sample with the first stage
## sampling "blocks" of the population and
## the second stage sampling strata within blocks).
dat_sim <- gen_informative_sample(N= 10000,
n = 500, T = 10,
noise_to_signal = 0.1)
y_obs <- dat_sim$y_obs
T <- ncol(y_obs)
an informative sampling design that inputs inclusion
probabilities, ipr
res_gp_w <- gpdpgrow(y = y_obs,
ipr = dat_sim$map_obs$incl_prob,
n.iter = 10, n.burn = 4,
n.thin = 1, n.tune = 0)
and fit vs. data for experimental units
fit_plots_w <- cluster_plot( object = res_gp_w,
units_name = "establishment",
units_label = dat_sim$map_obs$establishment,
single_unit = FALSE, credible = TRUE )
## estimate parameters ignoring sampling design
res_gp_i <- gpdpgrow(y = y_obs,
n.iter = 10, n.burn = 4,
n.thin = 1, n.tune = 0)
## plots of estimated functions, faceted by cluster and fit vs.
## data for experimental units
fit_plots_i <- cluster_plot( object = res_gp_i,
units_name = "establishment",
units_label = dat_sim$map_obs$establishment,
single_unit = FALSE, credible = TRUE )
## We also draw an iid (non-informative, exchangeable)
## sample from the same population to
## compare estimation results to our weighted
## (w) and unweighted/ignoring (i) models
## estimate parameters under an iid sampling design
res_gp_iid <- gpdpgrow(y = dat_sim$y_iid,
n.iter = 10, n.burn = 4,
n.thin = 1, n.tune = 0)
## plots of estimated functions, faceted by cluster and
## fit vs. data for experimental units
fit_plots_iid <- cluster_plot( object = res_gp_iid,
units_name = "establishment",
units_label = dat_sim$map_iid$establishment,
single_unit = FALSE, credible = TRUE )
## compare estimations of covariance parameter credible
## intervals when ignoring informativeness vs.
## weighting to account for informativeness
objects <- map <- vector("list",3)
objects[[1]] <- res_gp_i
objects[[2]] <- res_gp_iid
objects[[3]] <- res_gp_w
map[[1]] <- fit_plots_i$map
map[[2]] <- fit_plots_iid$map
map[[3]] <- fit_plots_w$map
objects_labels <- c("ignore","iid","weight")
parms_plots_compare <- informative_plot( objects = objects,
objects_labels = objects_labels,
map = map, units_name = "establishment",
model = "gp",
true_star = dat_sim$theta_star,
map_true = dat_sim$map_obs)Run the code above in your browser using DataLab