Allows for network reconstruction and changepoint detection.
Description
This package runs an MCMC simulation to reconstruct networks from time
series data, using a nonhomogeneous, timevarying dynamic Bayesian network.
Networks segments and changepoints are inferred concurrently, and
information sharing priors provide a reduction of the inference uncertainty.
Details
Package: 
EDISON 
Type: 
Package 
Version: 
1.1.1 
Date: 
20160330 
License: 
GPL2 
LazyLoad: 
yes 

Author(s)
Frank Dondelinger, Sophie Lebre
Maintainer: Frank Dondelinger <fdondelinger.work@gmail.com>
References
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian
networks with Bayesian regularization for inferring gene regulatory networks
with gradually timevarying structure", Machine Learning.
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
See Also
corpcor
Examples
dataset = simulateNetwork(l=25)
result = EDISON.run(dataset$sim_data, num.iter=500)
cps = calculateCPProbabilities(result)
network = calculateEdgeProbabilities(result)
Check if move is acceptable.
Description
This function takes as input a new network proposal and checks that the
proposal does not exceed the maximum number of parents for a node, and that
there are no self loops (if self loops have been disallowed).
Usage
AcceptableMove(proposal, qmax, self.loops, target, fixed.edges)
Arguments
proposal 
The proposed network (Kbyq matrix with K segments and q
parent sets).

qmax 
Maximum number of parents allowed.

self.loops 
Flag indicating whether self loops are allowed.

target 
The current target node (only needed to find out which parent
would be the self loop).

fixed.edges 
Which edges in the network should be fixed for all
segments (qbyq matrix with entries 0 for fixed nonedge, 1 for fixed edge,
1 for nonfixed edge).

Value
Returns TRUE
if the proposed move is acceptable, FALSE
otherwise.
Author(s)
Frank Dondelinger
See Also
make_structure_move
Add the proposed new network to the new.nets list.
Description
Updates the network.info data structure so that it stays consistent.
Usage
addProposalNetworkInfo(network.info, newS, E)
Arguments
network.info 
Data structure containing the current network.

newS 
Proposed new network for this target, a num.local.segs by
num.parents matrix.

E 
The current vector of local segments for this target (only used to
check for consistency with the network.info change points).

Value
Updated network.info data structure, with new network added to
new.nets.
Author(s)
Frank Dondelinger
Makes a binomial hyperparameter move.
Description
This function proposes a move for one of the hyperparameters of the binomial
prior, calculates the acceptance probability and accepts the move
accordingly.
Usage
BinoHyperMove(network.info, node.sharing, GLOBvar)
Arguments
network.info 
The collected network information obtained using
CollectNetworkInfo .

node.sharing 
Which type of node sharing is used, either 'soft'
or 'hard' sharing.

GLOBvar 
Global variables of the MCMC.

Value
Returns a list with elements:
move 
The move type (in this
case, 2).

move.made 
1 if the move was proposed, 0 otherwise.

network.info 
The network information, including the new
hyperparameters if the move was accepted.

accept 
Whether the move
was accepted or not.

Author(s)
Frank Dondelinger
References
For information about the binomial information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
BinoHyperMove
Calculates the MH ratio of the binomial prior.
Description
This function calculates the ratio of the binomial information sharing prior
with the proposed new hyperparameter values, and the binomial prior with the
current hyperparameter values.
Usage
BinoHyperRatio(params.proposed, changed, node.sharing, network.info)
Arguments
params.proposed 
The new proposed hyperparameter values for the
binomial prior.

changed 
Gives the index of the parameter that has changed.

node.sharing 
Type of information sharing among nodes: 'soft'
or 'hard' .

network.info 
The network information as collected by
CollectNetworkInfo .

Value
This function returns a number greater than zero which represents
the ratio of binomial priors.
Author(s)
Frank Dondelinger
References
For information about the binomial information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
BinoHyperMove
Computes the acceptance ratio of two changepoint configurations.
Description
This function computes the acceptance ratio of two changepoint
configurations with networks in a changepoint birth or death move.
Usage
bp.computeAlpha(birth, lNew, kminus, Ekl, Estar, Ekr, yL, PxL, yR, PxR, y2, Px2,
D, delta2, q, smax, v0, gamma0, prior_ratio = 1)
Arguments
birth 
1 for a changepoint birth move, 1 for a
changepoint death move.

lNew 
Number of edges in the new segment.

kminus 
Minimal number of changepoints between the two compared models
(equal to s for a birth move, s1 for a death move.

Ekl 
Changepoint on the left of proposed changepoint.

Estar 
Changepoint being inserted or deleted.

Ekr 
Changepoint on the right of proposed changepoint.

yL 
Response data (left).

PxL 
Projection matrix (left).

yR 
Response data (right).

PxR 
Projection matrix (right).

y2 
Response data (both).

Px2 
Projection matrix (both).

D 
Hyperparameters for the number of edges in each segment.

delta2 
Hyperparameters for the empirical covariance (signaltonoise
ratio).

q 
Total number of nodes in the network.

smax 
Maximum number of changepoints.

v0 
Hyperparameter.

gamma0 
Hyperparameter.

prior_ratio 
Ratio of network structure priors.

Author(s)
Sophie Lebre
References
For more information about the model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
cp.birth
, cp.death
Builds response Y and predictor X.
Description
This function builds the response variables Y and predictor variables X from
the input data.
Usage
buildXY(targetData, predData, GLOBvar)
Arguments
targetData 
Target input data.

predData 
Predictor input data.

GLOBvar 
Global variables of the MCMC simulation.

Value
A list with elements:
X 
Predictor variables.

Y 
Response variables.

Author(s)
Sophie Lebre
Function to calculate the number of differences between adjaccent network
segments.
Description
This function takes the current network structure, compares each segment to
the next one, and calculates the number of changes. If soft information
sharing among nodes is active, then this procedure is only done for the
current target node.
Usage
CalculateChanges(network.info, node.sharing)
Arguments
network.info 
The network information collected by function
CollectNetworkInfo .

node.sharing 
Specifies the type of information sharing among nodes:
'soft' or 'hard' .

Value
Returns a vector with 4 elements: the number of coinciding edges,
the number of edges in the previous segment that are absent in the next one,
the number of edges in the next segment that are absent in the previous one
and the number of coinciding nonedges.
Author(s)
Frank Dondelinger
Calculated the global changepoint probabilities.
Description
This function calculates the global probability of a changepoint at each
measured timepoint, using the nodespecific probabilities.
Usage
calculateCPPGlobal(prob.cps)
Arguments
prob.cps 
Nodespecific changepoint probabilities, a NumNodes by
NumTimepoints matrix.

Value
A matrix of length 1 by NumTimepoints, containing the global
changepoint probabilities.
Author(s)
Frank Dondelinger
See Also
calculateCPProbabilities
Calculate the changepoint probabilities.
Description
This function calculates the marginal changepoint probabilities from the
changepoint samples taken during the MCMC simulation.
Usage
calculateCPProbabilities(network.samples)
Arguments
network.samples 
List of network and changepoint samples collected
during the MCMC simulation by EDISON.run and
runDBN .

Value
Returns a matrix of dimension NumNodes by NumTimePoints, where each
entry contains the marginal posterior probability of a changepoint for that
node at that timepoint.
Author(s)
Frank Dondelinger
Examples
dataset = simulateNetwork()
result = EDISON.run(dataset$sim_data, num.iter=500)
cps = calculateCPProbabilities(result)
Calculate the edge probabilities.
Description
This function calculates the marginal posterior probabilities of the edges
in the network segments, for each timepoint, and optionally calculates the
same for specified changepoints.
Usage
calculateEdgeProbabilities(network.samples, cps = NULL)
Arguments
network.samples 
Network samples obtained from the MCMC simulation
using EDISON.run and runDBN .

cps 
Optionally specifies changepoints to allow for calculating the
marginal posterior edge probabilities for specific segments.

Value
A list with elements:
probs.all 
A list containing marginal
edge posterior probabilities for each timepoint.

probs.segs 
A list
containing marginal edge posterior probabilities for each specified
segment.

Author(s)
Frank Dondelinger
See Also
calculateEdgeProbabilitiesTimePoints
,
calculateEdgeProbabilitiesSegs
Examples
dataset = simulateNetwork(l=25)
result = EDISON.run(dataset$sim_data, num.iter=500)
network = calculateEdgeProbabilities(result)
true.cps = c(2,dataset$epsilon)
network = calculateEdgeProbabilities(result, cps=true.cps)
Calculate edge probabilities for fixed segments.
Description
This function calculates the marginal posterior probabilities for the edges
in each network for the specified segments.
Usage
calculateEdgeProbabilitiesSegs(prob.networks, cps, numNodes)
Arguments
prob.networks 
List containing the marginal posterior probabilities
for the edges of each network at each timepoint, from
calculateEdgeProbabilitiesTimePoints .

cps 
Changepoints defining the segments for which the edge
probabilities should be calculated. Note that these are global changepoints
that apply to the whole network.

numNodes 
Number of nodes in the network.

Value
Returns a list of length equal to the number of segments, with each
entry containing a matrix of size NumNodes by NumNodes which contains the
marginal edge probabilities for that segment.
Author(s)
Frank Dondelinger
See Also
calculateEdgeProbabilities
,
calculateEdgeProbabilitiesTimePoints
Calculate the edge posterior probabilities for each timepoint.
Description
This function calculates the marginal posterior edge probabilities of the
network at each timepoint.
Usage
calculateEdgeProbabilitiesTimePoints(network.samples, cps, numNodes)
Arguments
network.samples 
Collection of network and changepoint samples of the
MCMC simulation, as obtained by EDISON.run ,
runDBN .

cps 
Changepoint vector.

numNodes 
Number of nodes in the network.

Value
A list of length equal to the number of timepoints, where each entry
contains a matrix of size NumNodes by NumNodes with the marginal posterior
edge probabilities of the network at this timepoint.
Author(s)
Frank Dondelinger
See Also
calculateEdgeProbabilities
,
calculateEdgeProbabilitiesSegs
Calculates the ratio of two likelihoods in a structure move.
Description
This function calculates the ratio of the liklihoods in a network structure
move. The returned value is the ratio for the modification of one edge in
one segment.
Usage
CalculateLikelihoodRatio(gamma0, y, Pxlm, Pxl, v0, delta2, dir)
Arguments
gamma0 
Hyperparameter.

y 
Target data.

Pxlm 
Projection matrix with modified edge.

Pxl 
Original projection matrix.

v0 
Hyperparameter.

delta2 
Delta squared parameter (signaltonoise).

dir 
Direction of the change: 1 = Added an edge. 2 = Removed an edge.
0 = No change.

Value
Returns the likelihood ratio.
Author(s)
Frank Dondelinger
References
For more information about the hyperparameters and the
functional form of the likelihood, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
CalculatePriorRatio
Calculates the network prior ratio.
Description
This function calculates the ratio of the network structure priors for a
structure move.
Usage
CalculatePriorRatio(method, q, lambda, network.info)
Arguments
method 
Indicates which prior to use: 'poisson' for the
standard Poisson prior (no information sharing), 'exp_soft' or
'exp_hard' for the exponential information sharing prior with soft or
hard sharing among nodes and 'bino_soft' or 'bino_hard' for
the binomial information sharing prior with soft or hard sharing among
nodes.

q 
Number of nodes in the network.

lambda 
Vector of lambda hyperparameter values for each network
(needed for the Poisson prior).

network.info 
The network information collected using
CollectNetworkInfo .

Value
Returns the ratio of the network structure priors for the proposed
structure move.
Author(s)
Frank Dondelinger
References
For more information on the network structure priors, see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
CalculateLikelihoodRatio
Collects all the network information in one list.
Description
This function collects information about the current network segments and
hyperparameters for the information sharing priors.
Usage
CollectNetworkInfo(Sall, Eall, prior.params, posPhase, target, q, self.loops, k)
Arguments
Sall 
Structure of all segments. A list of length q , where each
element is a K_i by q matrix containing the parents for the
current node in each of the K_i segments.

Eall 
Positions of segment boundaries. A list of length q ,
where each element is a vector containing the segment boundaries for the
current parent node.

prior.params 
The hyperparameters of the information sharing prior (if
applicable).

posPhase 
The segment being changed.

target 
The target parent node whose edge is being changed.

q 
The total number of nodes in the network.

self.loops 
Whether selfloops are allowed in the network.

k 
The level2 hyperparameter for the exponential prior.

Value
The function returns a list with the following elements:
nets 
The structure of all segments, a list of length K where K
is the total number of segments over all nodes.

segment 
Identical to
posPhase .

target.nets 
Identical to Sall .

prior.params 
Identical to prior.params .

self.loops 
Identical to self.loops .

k 
Identical to
k .

new.nets 
Dummy variable for holding the proposed network
in a network structure move. Originally identical to variable nets .

Author(s)
Frank Dondelinger
Compute projection matrix.
Description
This function computes the projection matrix that is needed for calculation
of the likelihood.
Usage
computePx(len, x, delta2)
Arguments
len 
Delimiting breakpoints.

x 
The observations of x in the corresponding state.

delta2 
Signaltonoise ratio hyperparameter.

Value
The projection matrix.
Author(s)
Sophie Lebre
References
For more information about the hyperparameters and the
functional form of the likelihood, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
CalculateLikelihoodRatio
Calculate proposal frequencies for changepoint moves.
Description
This function calculates the frequency at which each of the different
changepoint moves is proposed. For the poisson network structure prior, this
ensures that the proposal frequency is equal to the prior probability.
Usage
computeRho4(k, kmin, kmax, c, lambda)
Arguments
k 
The number of hidden states.

kmin 
Minimum number of hidden states.

kmax 
Maximum number of hidden states

c 
Parameter.

lambda 
Hyperparameter controlling the number of hidden states.

Value
Vector containing the proposal frequencies for the different
changepoint moves.
Author(s)
Sophie Lebre
References
For more information about the hyperparameters and the
functional form of the likelihood, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Convert internal representation of networks.
Description
Converts from representing the network as a list of target nodes to
representing it as a list of segments.
Usage
convert_nets(Ball, Eall)
Arguments
Ball 
Input network: List of target nodes, where each element is a
NumSegs by NumNodes matrix giving the parents for the target node in each
segment.

Eall 
Changepoints: List of target nodes, where each element contains
a vector of changepoints.

Value
List with elements:
B_nets 
List of segments, where each
element contains a matrix of size NumNodes by NumNodes, representing the
network for that segment.

segs 
Vector containing the global segment
boundaries.

Author(s)
Frank Dondelinger
Make changepoint birth move.
Description
This function makes a changepoint birth move, possibly adding a changepoint.
Usage
cp.birth(Eall, Sall, Ball, Sig2all, X, Y, D, GLOBvar, HYPERvar, target)
Arguments
Eall 
Changepoints: List of target nodes, where each element contains
a vector of changepoints.

Sall 
Network structure: List of target nodes, where each element is a
NumSegs by NumNodes matrix giving the parents for the target node in each
segment. A binary matrix.

Ball 
Network parameters: Similar to network structure, but with
regression parameters included.

Sig2all 
Sigma squared parameters.

X 
Response data.

Y 
Target data.

D 
Hyperparameter.

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

target 
Which target node the move is being proposed for.

Value
A list with elements:
E 
New changepoint vector for target
node.

Sall 
Updated network structure.

Ball 
Updated network
structure with regression parameters.

Sig2all 
Udated sigma squared.

prior.params 
Updated vector of structure prior hyperparameters.

accept 
Whether the move was accepted or not.

move 
What type
of move was made. In this case move=1 for a changepoint birth move.

alpha 
The acceptance ratio of the move.

estar 
The location of
the new changepoint.

k 
Hyperparameter.

Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information about the different changepoint moves, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
cp.death
, cp.shift
Make changepoint death move.
Description
This function makes a changepoint death move, possibly removing a
changepoint.
Usage
cp.death(Eall, Sall, Ball, Sig2all, X, Y, D, GLOBvar, HYPERvar, target)
Arguments
Eall 
Changepoints: List of target nodes, where each element contains
a vector of changepoints.

Sall 
Network structure: List of target nodes, where each element is a
NumSegs by NumNodes matrix giving the parents for the target node in each
segment. A binary matrix.

Ball 
Network parameters: Similar to network structure, but with
regression parameters included.

Sig2all 
Sigma squared parameters.

X 
Response data.

Y 
Target data.

D 
Hyperparameter.

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

target 
Which target node the move is being proposed for.

Value
A list with elements:
E 
New changepoint vector for target
node.

Sall 
Updated network structure.

Ball 
Updated network
structure with regression parameters.

Sig2all 
Updated sigma
squared.

prior.params 
Updated vector of structure prior
hyperparameters.

accept 
Whether the move was accepted or not.

move 
What type of move was made. In this case move=2 for a
changepoint death move.

alpha 
The acceptance ratio of the move.

estar 
The location of the removed changepoint.

k 
Hyperparameter.

Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information about the different changepoint moves, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
cp.birth
, cp.shift
Makes a changepoint shift move.
Description
This function makes a changepoint shift move, possibly moving one of the
changepoints.
Usage
cp.shift(Eall, Sall, Ball, Sig2all, X, Y, GLOBvar, HYPERvar, target)
Arguments
Eall 
Changepoints: List of target nodes, where each element contains
a vector of changepoints.

Sall 
Network structure: List of target nodes, where each element is a
NumSegs by NumNodes matrix giving the parents for the target node in each
segment. A binary matrix.

Ball 
Network parameters: Similar to network structure, but with
regression parameters included.

Sig2all 
Sigma squared parameters.

X 
Response data.

Y 
Target data.

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

target 
Which target node the move is being proposed for.

Value
A list with elements:
E 
New changepoint vector for target
node.

Sall 
Updated network structure.

Ball 
Updated network
structure with regression parameters.

Sig2all 
Updated sigma
squared.

prior.params 
Updated vector of structure prior
hyperparameters.

accept 
Whether the move was accepted or not.

move 
What type of move was made. In this case move=2 for a
changepoint death move.

alpha 
The acceptance ratio of the move.

estar 
The location of the removed changepoint.

k 
Hyperparameter.

Author(s)
Sophie Lebre
References
For more information about the different changepoint moves, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
cp.birth
, cp.death
Set the default options for the MCMC simulation.
Description
This function creates a list with the default options of the MCMC
simulation.
Usage
defaultOptions()
Value
A list of default options with elements:
lmax 
Maximum number
of parent nodes. Default=5.

m 
Number of repeated measurements.
Default=1 (no repeats).

dyn 
Lag for the DBN model. Default = 1 when
X(t) depends on the previous measurement X(t1), but dyn can be chosen equal
to 2, 3, ...

minPhase 
Minimal length of a segment. Default=2.

maxCP 
Maximal number of changepoints. Default=10.

maxTF 
Maximal number of incoming edges for each node. Default=5.

alphaCP 
Hyperparameter for the number of changepoints. Default=1.

betaCP 
Hyperparameter for the number of changepoints. Default=0.5.

alphaTF 
Hyperparameter for the number of incoming edges. Default=1.

betaTF 
Hyperparameter for the number of incoming edges. Default=0.5.

burnin 
Whether to include a burnin period. Default=F.

psrf.check 
Whether to calculate the potential scale reduction factor
(PSRF). Default=F.

pp.l1 
Proposal frequency for level1
hyperparameter moves. Default=0.2.

pp.l2 
Proposal frequency for
level2 hyperparameter moves. Default=0.01.

save.by.node 
Whether to
save results separately for each target node. Default=F.

save.file 
Whether to save the results to a file. Default=F.

hyper.fixed 
Whether to keep the network structure prior
hyperparameters fixed. Default=F.

cp.fixed 
Whether to keep the
changepoints fixed. Default=F.

hyper.init 
Initial values for the
network structure prior hyperparameters. Default=NULL.

cp.init 
Initial values for the changepoint locations. Default=NULL.

Author(s)
Frank Dondelinger
Examples
options = defaultOptions()
options$save.file = TRUE
Calculate inverse gamma distribution.
Description
This function calculates the density of the inverse gamma distribution.
Usage
dinvgamma(x, shape, scale = 1, log = FALSE)
Arguments
x 
Input.

shape 
Shape parameter.

scale 
Scale parameter (1/rate).

log 
Whether to return the log density.

Value
Returns the density (or log density).
Author(s)
Frank Dondelinger
Examples
samples = rinvgamma(100, shape=1, scale=1)
densities = dinvgamma(samples, shape=1, scale=1)
Wrapper function for starting an MCMC simulation
Description
This function provides a wrapper for starting an MCMC simulation, using only
the data and some basic options as input.
Usage
EDISON.run(input, output.file = "EDISON.output",
information.sharing = "poisson", num.iter = 10000, prior.params = NULL,
options = NULL, fixed.edges = NULL)
Arguments
input 
Input data. Either a filename pointing to an R data file
containing the results of simulateNetwork , or a NumTimePoints
by NumNodes matrix.

output.file 
Where to save the output of the MCMC simulation.

information.sharing 
Which information sharing prior to use:
'poisson' for the Poisson prior (no information sharing),
'exp_hard' or 'exp_soft' for the exponential prior with hard
or soft coupling among nodes, respectively, and 'bino_hard' or
'bino_soft' for the binomial prior with hard or soft coupling among
nodes.

num.iter 
Number of iterations of the MCMC simulation.

prior.params 
Initial values of the hyperparameters of the information
sharing priors.

options 
Settings for the MCMC simulation, as generated by
defaultOptions .

fixed.edges 
Matrix of size NumNodes by NumNodes, with
fixed.edges[i,j]==10 if the edge between nodes i and j is fixed, and
1 otherwise. Defaults to NULL (no edges fixed).

Value
Returns the results of the MCMC simulation, similar to
runDBN
.
Author(s)
Sophie Lebre Frank Dondelinger
References
For details on the model and MCMC simulation, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
runDBN
Examples
dataset = simulateNetwork(l=25)
result.poisson = EDISON.run(dataset$sim_data, num.iter=500)
options = defaultOptions()
options$save.file = TRUE
Makes an exponential hyperparameter move.
Description
This function tries to make a level1 or level2 hyperparameter move for the
exponential prior
Usage
ExpHyperMove(network.info, node.sharing, GLOBvar, hyper.proposals)
Arguments
network.info 
The network information collected by
CollectNetworkInfo .

node.sharing 
The type of information sharing among nodes:
'soft' or 'hard' .

GLOBvar 
Collection of global variables of the MCMC.

hyper.proposals 
Proposal width of the hyperparameter move.

Value
Returns a list with elements:
move.made 
1 if a level1
hyperparameter move has been made, 0 otherwise.

network.info 
Network
information with updated hyperparameters if the move was accepted.

accept 
Whether a level1 hyperparameter move has been accepted or
not.

move.made.k 
1 if a level2 hyperparameter move has been made, 0
otherwise.

accept.k 
Whether a level2 hyperparameter move has been
accepted or not.

move 
Type of move: 2 for a level1 hyperparameter
move, 3 for a level2 hyperparameter move.

Author(s)
Frank Dondelinger
References
For information about the exponential information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
ExpHyperRatioTarget
Calculates the ratio of an exponential hyperparameter move.
Description
This function calculates the acceptance ratio of a level1 hyperparameter
move for a given target node.
Usage
ExpHyperRatioTarget(beta.proposed, beta.old, target.net, self.loops)
Arguments
beta.proposed 
Proposed new hyperparameter value.

beta.old 
Previous value of hyperparameter beta.

target.net 
Network segments for the target node associated with this
hyperparameter value.

self.loops 
'TRUE' if selfloops are acceptable, 'FALSE'
otherwise.

Value
Returns the ratio of the exponential prior with the previous
hyperparameter value and the proposed new hyperparameter value.
Author(s)
Frank Dondelinger
References
For information about the exponential information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
ExpHyperMove
Modify network to ensure stationarity.
Description
This function ensures that the eigenvalues of the network structure matrix
are smaller or equal to 1, thereby ensuring stationarity of the regression.
This is done by removing edges at random until the condition is satisfied.
Usage
fix_eigenvalues(network, q, gauss_weights)
Arguments
network 
Original network structure, a matrix of size NumNodes by
NumNodes.

q 
Number of nodes.

gauss_weights 
If TRUE , use Gaussian regression weight, if
FALSE conserve original weights.

Value
Returns a network with fewer eigenvalues than the original network,
but satisfying the stationarity condition.
Author(s)
Frank Dondelinger
See Also
generateNetwork
Generate a random network.
Description
This function generates a random network with changepoints for structure
changes, for simulating synthetic data.
Usage
generateNetwork(lambda_2 = 0.45, q = 10, min_phase_length = 1,
k_bar = 5, l = 10, lambda_3 = 2, spacing = 1, gauss_weights = TRUE,
same = FALSE, change_method = "sequential", fixed = FALSE, cps = NULL)
Arguments
lambda_2 
Average number of parents for each node in the network
(parameter for a Poisson distribution).

q 
Number of nodes.

min_phase_length 
Minimum segment length.

k_bar 
Maximum number of changepoints. If fixed=TRUE , this is
equal to the number of changepoints.

l 
Length of the time series.

lambda_3 
Average number of structure changes between two segments
(parameter for a Poisson distribution).

spacing 
1 if segments are equally spaced, 0 if they are
spaced randomly (subject to the constraints of min_phase_length).

gauss_weights 
1 if edge weights in the network are drawn from
N(0, 1), 0 if they are fixed to be 1.

same 
1 if all segments have the same network structure (no
changes), 0 otherwise.

change_method 
'sequential' if the changes happen sequentially
(i.e. changes at segment i are applied to segment i1),
'hierarchical' if the changes happen with respect to a hypernetwork
(i.e. changes at segment i are applied to segment 0).

fixed 
T if the changepoint locations are fixed, F if
they should be sampled.

cps 
Changepoint locations (if they are fixed).

Value
A list with the following elements:
network 
The network, a
list of length NumSegs, where each element is a NumNodes by NumNodes
matrix.

epsilon 
The vector of changepoint locations.

k 
The
number of changepoint.

changes 
The number of changes among
segments.

Author(s)
Frank Dondelinger
See Also
simulateNetwork
Examples
network = generateNetwork()
dataset = simulateNetwork(net=network)
network = generateNetwork(l=50, q=15, fixed=TRUE, k_bar=4)
dataset = simulateNetwork(net=network)
Make a hyperparameter move.
Description
This function makes a hyperparameter move for the information sharing prior
selected (or no move if no information sharing prior is selected).
Usage
HyperparameterMove(method, network.info, GLOBvar, hyper.proposals)
Arguments
method 
The information sharing method used: 'poisson' for the
Poisson prior (no information sharing), 'exp_soft' and
'exp_hard' for the exponential information sharing prior with soft or
hard information sharing among nodes, respectively, 'bino_soft' and
'bino_hard' for the binomial information sharing prior with soft or
hard information sharing among nodes, respectively.

network.info 
Network information collected using
CollectNetworkInfo .

GLOBvar 
Global variables used during the MCMC.

hyper.proposals 
Proposal width for hyperparameters.

Value
List summing up the result of the hypermove. Contains at least:
move.made 
Whether a hyperparameter move has been made.

network.info 
The network information, possibly updated if the
hyperparameter move was made and accepted.

May contain further elements
depending on the type of information sharing prior used. See the
priorspecific functions ExpHyperMove
and
BinoHyperMove
for details.
Author(s)
Frank Dondelinger
References
For information about the information sharing priors, see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Sets up initial values of hyperparameters.
Description
This function initialises the variable HYPERvar with values for the various
hyperparameters in the model.
Usage
HyperParms(options)
Arguments
Value
Settings for the HYPERvar variable:
cD 
Proportion of
changepoint moves proposed.

alphaD 
Prior settings for the number of
changepoints.

betaD 
Prior settings for the number of changepoints.

c 
Ratio of changepoint birth/death moves proposed.

v0 
Prior
settings for the sigma squared parameters.

gamma0 
Prior settings for
the sigma squared parameters.

alphad2 
Prior settings for the
signaltonoise ratio delta squared.

betad2 
Prior settings for the
signaltonoise ratio delta squared.

alphalbd 
Prior settings for the
number of transcription factors.

betalbd 
Prior settings for the
number of transcription factors.

Author(s)
Sophie Lebre
Frank Dondelinger
Initialise the MCMC simulation.
Description
This function intialises the parameters and variables needed for the MCMC
simulation.
Usage
init(X, Y, sinit, GLOBvar, HYPERvar, options)
Arguments
X 
Input response data.

Y 
Input target data.

sinit 
Initial changepoints.

GLOBvar 
Global variables used during the MCMC simulation.

HYPERvar 
Hyperparameter variables.

options 
MCMC simulation options as obtained e.g. by
defaultOptions .

Value
List with elements:
counters 
Matrices for counting the number
of moves made and accepted.

initState 
Initial state of the variables
of the MCMC simulation.

listStock 
Variables for recording the
network, changepoint and hyperparameter samples.

Author(s)
Sophie Lebre
Frank Dondelinger
See Also
sampleParms
Main function of the MCMC simulation.
Description
This function executes the main loop of the MCMC simulation, making the
different moves and recording samples.
Usage
main(X, Y, initiation, GLOBvar, HYPERvar)
Arguments
X 
Input response data.

Y 
Input target data.

initiation 
Initialisation of the MCMC simulation, as obtained by
function init .

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

Value
Returns a list with the following elements:
counters 
List
containing the different move counters for the number of times moves have
been proposed and accepted.

listStock 
List containing the recorded
samples for the networks, changepoints and hyperparameters

Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information about the MCMC simulations, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
runDBN
Makes a structure move.
Description
This function makes a network structure move.
Usage
make_structure_move(x, y, S, B, Sig2, q, qmax, network.info, method, Mphase, E,
fixed.edges, HYPERvar)
Arguments
x 
Response data.

y 
Target data.

S 
Network structure for the current target node, a NumSegs by
NumNodes matrix.

B 
Same as S , but including the regression parameters.

Sig2 
Sigma squared parameters.

q 
Number of nodes.

qmax 
Maximum number of parents.

network.info 
Network information, as collected by
CollectNetworkInfo .

method 
Information sharing method: Either 'poisson' ,
'exp_hard' ,
'exp_soft' , 'bino_hard' , 'bino_soft' .

Mphase 
Segment boundary positions.

E 
Changepoint vector.

fixed.edges 
Matrix of size NumNodes by NumNodes, with
fixed.edges[i,j]==10 if the edge between nodes i and j is fixed, and
1 otherwise. Defaults to NULL (no edges fixed).

HYPERvar 
Hyperparameter variables.

Value
Returns a list containing the following elements:
newS 
Updated network structure.

newB 
Updated network
structure with regression parameters.

move 
Type of move being made:
1 for network structure moves.

accept 
1 if the move has been
accepted, 0 otherwise.

Author(s)
Frank Dondelinger
References
For more information about the MCMC moves, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Calculates the prior probability of the network segments under the binomial
prior.
Description
This function calculates the (log) probability of the network segments using
the binomial information sharing prior.
Usage
NetworkProbBino(network.info, node.sharing = "soft")
Arguments
network.info 
Network information collected by function
CollectNetworkInfo .

node.sharing 
Coupling of hyperparameters among nodes: 'hard'
or 'soft' .

Value
Returns the log prior probability of the network segments under the
binomial prior.
Author(s)
Frank Dondelinger
References
For information about the binomial information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
NetworkRatioBino
, CalculatePriorRatio
Calculates the prior probability of the network using the exponential prior.
Description
This function calculates the log prior probability of the network structure.
It uses the exponential information sharing prior.
Usage
NetworkProbExp(network.info)
Arguments
Value
Returns the log prior probability of the network segments.
Author(s)
Frank Dondelinger
References
For information about the exponential information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
NetworkRatioExp
, CalculatePriorRatio
Calculates the ratio of binomial prior probabilites.
Description
This function calculates the ratio of binomial prior probabilities of two
networks.
Usage
NetworkRatioBino(network.info, node.sharing)
Arguments
network.info 
Network information collected by function
CollectNetworkInfo . Note that network.info$new.nets has to be
set.

node.sharing 
Type of coupling of hyperparameters among nodes:
'hard' or 'soft' .

Value
Returns the ratio of [prior of new network]/[prior of old network].
Author(s)
For information about the binomial information sharing prior, see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
NetworkProbBino
, CalculatePriorRatio
Calculates the ratio of exponential network prior probabilities.
Description
This function calculates the ratio of exponential network information
sharing prior probabilities.
Usage
NetworkRatioExp(network.info)
Arguments
network.info 
Network information collected using the function
CollectNetworkInfo . Note that network.info$new.nets has
to be set.

Value
Returns the ratio [prior of new network]/[prior of old network].
Author(s)
Frank Dondelinger
References
For information about the exponential information sharing prior,
see:
Husmeier et al. (2010), "Intertime segment information sharing for
nonhomogeneous dynamic Bayesian networks", NIPS.
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
NetworkProbExp
, CalculatePriorRatio
Collects and saves output.
Description
This function collects the network, changepoint and hyperparameter samples
taken from the MCMC simulation, and saves them to a file if appropriate.
Usage
output(counters, listStock, GLOBvar, HYPERvar, OUTvar)
Arguments
counters 
List of counters for the number of moves that have been
proposed and accepted.

listStock 
Network, changepoint and hyperparameter samples.

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

OUTvar 
Output variables, including the output file.

Value
Returns a list with an element for each target node which is also a
list. Each sublist containts the elements:
cp_samples 
Changepoint
samples, a NumSamples by MaxNumChangePoints matrix.

edge_samples 
Network samples (with regression parameters), a
NumSamples by (NumSegs * NumNodes) matrix.

target 
The target node
for this subnetwork.

hyper_samples 
Information sharing prior
hyperparameter samples, a NumSamples by NumHyperParams matrix.

sampled 
Sampled iterations.

counters 
Counters for the number
of proposed and accepted moves.

Author(s)
Frank Dondelinger
Make a network structure or hyperparameter move.
Description
This function makes a network structure or information sharing
hyperparameter move.
Usage
phase.update(Eall, Sall, Ball, Sig2all, X, Y, GLOBvar, HYPERvar, target)
Arguments
Eall 
List of changepoints with one entry for each target node. Each
entry has length equal to the number of changepoints for that target node.

Sall 
Network structure: List of length equal to the number of target
nodes, where each list entry is a NumSegs by NumNodes matrix.

Ball 
Network structure with regression coefficients: Same as Sall,
but with regression coefficients as matrix entries.

Sig2all 
Sigma squared.

X 
Input response data.

Y 
Input target data.

GLOBvar 
Global variables used during the MCMC simulation.

HYPERvar 
Hyperparameter variables.

target 
Current target node.

Value
Returns a list with the following elements:
E 
Changepoints
for the current target node.

Sall 
Network structure (possibly
updated).

Ball 
Network structure regression coefficients (possibly
updated).

Sig2all 
Sigma squared.

prior.params 
Information
sharing prior hyperparameters (possibly updated).

k 
Level2
exponential prior hyperparameter (possibly updated).

move 
Move type:
4 for a network structure move, 5 hyperparameter move.

move 
Structure Move type: 1 for a network structure move, 2 for a
level1 hyperparameter move, 3 for a level2 hyperparameter move.

accept 
1 if the move has been accepted, 0 otherwise.

Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information on network structure moves and information
sharing priors, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
make_structure_move
Calculate network prior ratio with Poisson prior.
Description
This function calculates the ratio of the Poisson prior for two networks.
Usage
PriorRatioPoisson(network.info, q, lambda)
Arguments
network.info 
Network information collected using
CollectNetworkInfo . Note that one needs to set
network.info$new.nets .

q 
Number of nodes in the network.

lambda 
Vector of lambda hyperparameters for each network.

Value
Returns the ratio [prior of new network]/[prior of old network].
Author(s)
Frank Dondelinger
References
For more information on the network structure priors, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
CalculatePriorRatio
Tune the proposal width for betas.
Description
This function adjusts the proposal width for the beta hyperparameter(s) of
the exponential information sharing prior, so that the acceptance rate is
close to 0.25.
Usage
proposalTuning(acceptRate, hyper.proposals)
Arguments
acceptRate 
Current acceptance rate.

hyper.proposals 
Current proposal width.

Value
Returns the new proposal width.
Author(s)
Frank Dondelinger
Propose a new real hyperparameter value.
Description
This function proposes a new real values hyperparameter for the information
sharing prior.
Usage
proposeContinuous(orig_beta, proposal_range, limit = 30)
Arguments
orig_beta 
Current value of the hyperparameter.

proposal_range 
Range for the new value.

limit 
Hard limit on the range.

Value
Returns a new uniformly random value within proposal_range
of
orig_beta
and limited by limit
.
Author(s)
Frank Dondelinger
See Also
ProposeDiscrete
Examples
param = runif(1, 0, 1)
new.param = proposeContinuous(param, 0.1, 1)
Propose a new discrete value.
Description
This function proposes a new discrete parameter, based on the previous
value, within the given proposal range, making sure that the maximum range
is not exceeded.
Usage
ProposeDiscrete(params.old, proposal.range, max.range)
Arguments
params.old 
Old parameter value (an integer).

proposal.range 
Range for new proposal (an integer).

max.range 
Maximum value for new proposal (an integer).

Value
Returns the new proposed parameter, which will be an integer in the
range [0, max.range
], and within at most proposal.range
of
params.old
.
Author(s)
Frank Dondelinger
See Also
proposeContinuous
Examples
param = rpois(1, 5)
new.param = ProposeDiscrete(param, 2, 10)
Calculates the potential scale reduction factor.
Description
This function calculates the potential scale reduction factor of parameters
or hyperparameters over several MCMC simulations (or one simulation split
up). This can serve as a convergence diagnostic.
Usage
psrf(parameters)
Arguments
parameters 
A list of MCMC trajectories, where each trajectory is a
matrix with NumParams rows and NumIterations columns, where NumParams is the
number of parameters and NumIterations is the number of samples.

Value
A vectors of length NumParams, containing the PSRF values for each
parameter.
Author(s)
Sophie Lebre
Frank Dondelinger
References
Gelman and Rubin (1992) Inference from iterative simulation
using multiple sequences, Statistical Science.
See Also
psrf_check
, psrf_check_hyper
Examples
samples = list()
for(run in 1:5) {
samples[[run]] = matrix(rnorm(1000), 1, 1000)
}
psrf.val = psrf(samples)
for(run in 1:5) {
mean = runif(1, 0, 2)
samples[[run]] = matrix(rnorm(1000, mean, 1), 1, 1000)
}
psrf.val = psrf(samples)
Check the potential scale reduction factors for all parameters (edges).
Description
This function treats the edges of the network as parameters, calculates
their potential scale reduction factors and returns the highest value.
Usage
psrf_check(params, q, k_max, num_it)
Arguments
params 
Matrix of parameters.

q 
Number of nodes.

k_max 
Number of segments.

num_it 
Number of iterations/samples.

Value
Returns the highest PSRF value.
Author(s)
Frank Dondelinger
References
Gelman and Rubin (1992) Inference from iterative simulation
using multiple sequences, Statistical Science.
See Also
psrf
, psrf_check_hyper
Checks the potential scale reduction factor for the hyperparameters.
Description
This function checks the potential scale reduction factors for the
hyperparameters of the information sharing priors.
Usage
psrf_check_hyper(params, num_it)
Arguments
params 
Matrix of hyperparameters.

num_it 
Number of iterations/samples.

Value
Returns the maximum PSRF value.
Author(s)
Frank Dondelinger
References
Gelman and Rubin (1992) Inference from iterative simulation
using multiple sequences, Statistical Science.
See Also
psrf
, psrf_check
Read target data.
Description
This function reads in the target data.
Usage
readDataTS(data, posI, t0, tf, m, n)
Arguments
data 
Input data matrix to read.

posI 
Position of interest.

t0 
First timepoint.

tf 
Last timepoint.

m 
Number of repetitions.

n 
Number of timepoints.

Value
Returns the target data.
Author(s)
Sophie Lebre
See Also
buildXY
Samples from the inverse gamma distribution.
Description
This function samples from the inverse gamma distribution.
Usage
rinvgamma(n, shape, scale)
Arguments
n 
Number of values to sample.

shape 
Shape parameter.

scale 
Scale parameter (1/rate).

Value
Random sample from the inverse gamma distribution.
Author(s)
Frank Dondelinger
See Also
dinvgamma
Examples
samples = rinvgamma(100, shape=1, scale=1)
densities = dinvgamma(samples, shape=1, scale=1)
Setup and run the MCMC simulation.
Description
This function initialises the variabes for the MCMC simulation, runs the
simulation and returns the output.
Usage
runDBN(targetdata, preddata = NULL, q, n, multipleVar = TRUE,
minPhase = 2, niter = 20000, scaling = TRUE, method = "poisson",
prior.params = NULL, self.loops = TRUE, k = 15, options = NULL,
outputFile = ".", fixed.edges = NULL)
Arguments
targetdata 
Target input data: A matrix of dimensions NumNodes by
NumTimePoints.

preddata 
Optional: Input response data, if different from the target
data.

q 
Number of nodes.

n 
Number of timepoints.

multipleVar 
TRUE when a specific variance is estimated for
each segment, FALSE otherwise.

minPhase 
Minimal segment length.

niter 
Number of MCMC iterations.

scaling 
If TRUE , scale the input data to mean 0 and standard
deviation 1, else leave it unchanged.

method 
Network structure prior to use: 'poisson' for a sparse
Poisson prior (no information sharing), 'exp_hard' or
'exp_soft' for the exponential information sharing prior with hard or
soft node coupling, 'bino_hard' or 'bino_soft' with hard or
soft node coupling.

prior.params 
Initial hyperparameters for the information sharing
prior.

self.loops 
If TRUE , allow selfloops in the network, if
FALSE , disallow selfloops.

k 
Initial value for the level2 hyperparameter of the exponential
information sharing prior.

options 
MCMC options as obtained e.g. by the function
defaultOptions .

outputFile 
File where the output of the MCMC simulation should be
saved.

fixed.edges 
Matrix of size NumNodes by NumNodes, with
fixed.edges[i,j]==10 if the edge between nodes i and j is fixed, and
1 otherwise. Defaults to NULL (no edges fixed).

Value
A list containing the results of the MCMC simulation: network
samples, changepoint samples and hyperparameter samples. For details, see
output
.
Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information about the MCMC simulations, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
output
Sample initial regression coefficients.
Description
This function samples the initial regression coefficients for the networks.
Usage
sampleBinit(Si, sig2, delta2, X, q)
Arguments
Si 
Network structure.

sig2 
Sigma squared.

delta2 
Signaltonoise ratio hyperparameter.

X 
Input data.

q 
Number of nodes.

Value
Returns a vector of regression coefficients.
Author(s)
Sophie Lebre
References
For details of the regression model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Sample regression coefficients.
Description
This function samples the regression coefficients given the current state of
the MCMC simulation.
Usage
sampleBxy(xi, y, Sig2, delta2)
Arguments
xi 
Response data.

y 
Target data.

Sig2 
Sigma squared.

delta2 
Signaltonoise hyperparameter.

Value
The regression parameters.
Author(s)
Sophie Lebre
References
For details of the regression model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Sample delta squared.
Description
This function samples the signaltonoise hyperparameter delta squared.
Usage
sampleDelta2(pos, x, q, B, S, sig2, alphad2, betad2)
Arguments
pos 
The current segment.

x 
Data,

q 
Number of nodes.

B 
Regression coefficients.

S 
Network structure.

sig2 
Sigma squared.

alphad2 
Gamma prior hyperparameter.

betad2 
Gamma prior hyperparameter.

Value
New sample of delta squared.
Author(s)
Sophie Lebre
References
For details of the sampling, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Sample initial number of changepoints.
Description
This function samples the initial number of changepoints from a sparse
Poisson prior.
Usage
sampleK(mini, maxi, lambda, nb)
Arguments
mini 
Minimum value.

maxi 
Maximum value.

lambda 
Parameter of the Poisson distribution.

nb 
Number of values to sample.

Value
The sampled number of changepoints.
Author(s)
Sophie Lebre
References
For more information on the prior choice and sampling, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Sample initial parameters for the MCMC simulation.
Description
This function samples the initial hyperparameters and parameters that are
needed for the MCMC simulation.
Usage
sampleParms(X, GLOBvar, HYPERvar, s_init = NULL, options)
Arguments
X 
Input data.

GLOBvar 
Global variables of the MCMC simulation.

HYPERvar 
Hyperparameter variables.

s_init 
Initial number of changepoints.

options 
MCMC options, as given by e.g. defaultOptions .

Value
Returns a list with elements:
E 
The initial changepoint
vector.

S 
The intial networks structure.

B 
The initial
regression parameters.

Sig2 
The inital sigma squared variances.

betas 
The intial hyperparameters for the exponential information
sharing prior.

hyper_params 
The initial hyperparameters for the
binomial information sharing prior.

Author(s)
Sophie Lebre
Frank Dondelinger
References
For more information about the parameters and hyperparameters,
see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
init
Sample initial sigma squared.
Description
This function samples the initial values for the sigma squared variance from
the inverse gamma prior.
Usage
sampleSig2(y, Px, v0, gamma0)
Arguments
y 
Input data.

Px 
Projection matrix.

v0 
Inverse gamma prior hyperparameter.

gamma0 
Inverse gamma prior hyperparameter.

Value
The sampled sigma squared values.
Author(s)
Sophie Lebre
References
For more information about the model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
Generate network and simulate data.
Description
This function generates a random network with structure changepoints (or
takes one as input) and simulated data from it using a regression model.
Usage
simulateNetwork(l = 100, min_phase_length = 10, k_bar = 10, q = 10,
lambda_2 = 0.45, noise = 0.25, net = NULL, lambda_3 = 2,
spacing = 0, gauss_weights = FALSE, same = FALSE,
changes = "sequential", fixed = FALSE, cps = NULL, saveFile = NULL)
Arguments
l 
Length of the time series.

min_phase_length 
Minimum segment length.

k_bar 
Maximum number of changepoints.

q 
Number of nodes.

lambda_2 
Average number of parents for each node in the network
(parameter for a Poisson distribution).

noise 
Standard deviation of the Gaussian observation noise. Can be
constant, or segment specific (in which case the number of changepoints
needs to be fixed and the noise needs to be a vector of the same length).

net 
Input network, can be NULL if a new network should be
generated.

lambda_3 
Average number of structure changes between two segments
(parameter for a Poisson distribution).

spacing 
1 if segments are equally spaced, 0 if they are
spaced randomly (subject to the constraints of min_phase_length).

gauss_weights 
1 if edge weights in the network are drawn from
N(0, 1), 0 if they are fixed to be 1.

same 
1 if the networks should all be the same (no changes),
0 otherwise.

changes 
'sequential' if the changes happen sequentially (i.e.
changes at segment i are applied to segment i1), 'hierarchical' if
the changes happen with respect to a hypernetwork (i.e. changes at segment i
are applied to segment 0).

fixed 
T if the changepoint locations are fixed, F if
they should be sampled.

cps 
Changepoint locations (if they are fixed).

saveFile 
If not NULL , indicates the filename for saving the
output in R data format.

Value
A list with elements:
sim_data 
A matrix of length NumNodes by
NumTimepoints containing the simulated data from the regression model.

epsilon 
Changepoint vector.

k 
Number of changepoints.

network 
The network, a list of length NumSegs, where each element is
a NumNodes by NumNodes matrix.

noise 
The standard deviation of the
applied Gaussian noise.

Author(s)
Frank Dondelinger
See Also
generateNetwork
Examples
dataset = simulateNetwork()
dataset = simulateNetwork(lambda_3=1)
dataset = simulateNetwork(lambda_3=1, noise=0.5)
network = generateNetwork()
dataset = simulateNetwork(net=network)
network = generateNetwork(l=50, q=15, fixed=TRUE, k_bar=4)
dataset = simulateNetwork(net=network)
Update sigma squared variances.
Description
This function samples new values for the sigma squared variances, given the
current network structure. A multivariate distribution is assumed.
Usage
updateSigMulti(phase, X, Y, E, Sall, Ball, Sig2, Mphase, alphad2, betad2, v0,
gamma0)
Arguments
phase 
Current segment.

X 
Input response data.

Y 
Input target data.

E 
Changepoints.

Sall 
Network structure.

Ball 
Regression coefficients.

Sig2 
Current sigma squared values.

Mphase 
Segment positions.

alphad2 
Hyperparameter for gamma prior.

betad2 
Hyperparameter for gamma prior.

v0 
Hyperparameter for inverse gamma prior.

gamma0 
Hyperparameter for inverse gamma prior.

Value
The new samples sigma squared values.
Author(s)
Sophie Lebre
References
For more information about the model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
updateSigSolo
Sample new values for sigma squared.
Description
This function samples new values for the sigma squared variances, given the
current network structure. A univariate distribution is assumed.
Usage
updateSigSolo(X, Y, E, Sall, Ball, Sig2, Mphase, alphad2, betad2, v0, gamma0)
Arguments
X 
Input response data.

Y 
Input target data.

E 
Changepoints.

Sall 
Network structure.

Ball 
Regression coefficients.

Sig2 
Current sigma squared.

Mphase 
Segment position.

alphad2 
Gamma prior hyperparameter.

betad2 
Gamma prior hyperparameter.

v0 
Inverse gamma prior hyperparameter.

gamma0 
Inverse gamma prior hyperparameter.

Value
Returns the new samples sigma squared values.
Author(s)
Sophie Lebre
References
For more information about the model, see:
Dondelinger et al. (2012), "Nonhomogeneous dynamic Bayesian networks with
Bayesian regularization for inferring gene regulatory networks with
gradually timevarying structure", Machine Learning.
See Also
updateSigMulti