Learn R Programming

netchain (version 0.2.0)

simGibbs: Generate binary (Y, A, C) from chain graph model under simplest scenario.

Description

Generate binary (Y, A, C) from chain graph model under simplest scenario.

Usage

simGibbs(
  n.unit,
  n.gibbs,
  n.sample,
  weight.matrix,
  treat.matrix,
  cov.matrix,
  init.prob = 0.5,
  treat.prob = 0.5,
  cov.prob = 0.5,
  n.burn = 100,
  yvalues = c(1, 0)
)

Arguments

n.unit

the number of units (m).

n.gibbs

the number of independent Gibbs sampler.

n.sample

the number of samples from each Gibbs sampling (n = n.gibbs x n.sample).

weight.matrix

a [m x m] symmetric relational matrix where \(W_ij = 1\) indicates the existence of undirected edges between \(Y_i\) and \(Y_j\) and its magnitude. Here \(W_ii\) represents the main effect of \(Y_i\).

treat.matrix

a [m x m] matrix where \(treat.matrix_ij\) indicates the magnitude of direct effect from \(A_i\) to \(Y_j\).

cov.matrix

a [m x m] matrix where \(treat.matrix_ij\) indicates the magnitude of direct effect from \(C_i\) to \(Y_j\).

init.prob

an initial probability generating (Y, A, C) from Bernoulli distribution.

treat.prob

a probability updating A in Gibbs sampling procedure.

cov.prob

a probability updating C in Gibbs sampling procedure.

n.burn

the number of burn-in sample in Gibbs sampling (\(\ge\) n.obs).

yvalues

a vector of distinct binary outcome values. Defaults to c(0,1).

Value

a list of [n.gibbs] x [n.sample] independent observations:

inputY

a [([n.gibbs] x [n.sample]) x m] matrix for outcomes.

inputA

a [([n.gibbs] x [n.sample]) x m] matrix for treatments.

inputC

a [([n.gibbs] x [n.sample]) x m] matrix for confounders.

Examples

Run this code
# NOT RUN {
library(netchain)
weight.matrix <- matrix(c(0.5, 1, 0, 1, 0.3, 0.5, 0, 0.5, -0.5), 3, 3)
simobs <- simGibbs(n.unit = 3, n.gibbs = 200, n.sample = 10, 
                  weight.matrix,
                  treat.matrix = 0.5*diag(3), cov.matrix= (-0.3)*diag(3) )
inputY <- simobs$inputY
inputA <- simobs$inputA
inputC <- simobs$inputC

# }

Run the code above in your browser using DataLab