Learn R Programming

deal (version 1.2-42)

perturb: Perturbs a network

Description

Randomly insert/delete/turn arrows to obtain another network.

Usage

perturb(nw,data,prior,degree=size(nw),trylist=vector("list",size(nw)),
        nocalc=FALSE,timetrace=TRUE)

Value

A list with two elements that may be accessed using

getnetwork and gettrylist. The elements are

nw

an object of class network with the generated network.

trylist

an updated list used internally for reusing learning of nodes, see maketrylist.

Arguments

nw

an object of class network, from which arrows are added/removed/turned.

data

a data frame used for learning the network, see network.

prior

a list containing parameter priors, generated by jointprior.

degree

an integer, which gives the number of attempts to randomly insert/remove/turn an arrow.

trylist

a list used internally for reusing learning of nodes, see maketrylist.

nocalc

a logical. If TRUE no learning procedure is called, see eg. rnetwork.

timetrace

a logical. If TRUE, prints some timing information on the screen.

Author

Susanne Gammelgaard Bottcher,
Claus Dethlefsen rpackage.deal@gmail.com.

Details

Given the initial network, a new network is constructed by randomly choosing an action: remove, turn, add. After the action is chosen, we choose randomly among all possibilities of that action. If there are no possibilites, the unchanged network is returned.

Examples

Run this code
set.seed(200)
data(rats)
fit       <- network(rats)
fit.prior <- jointprior(fit)
fit       <- getnetwork(learn(fit,rats,fit.prior))
fit.new   <- getnetwork(perturb(fit,rats,fit.prior,degree=10))

data(ksl)
ksl.nw    <- network(ksl)
ksl.rand  <- getnetwork(perturb(ksl.nw,nocalc=TRUE,degree=10))
plot(ksl.rand)

Run the code above in your browser using DataLab