Learn R Programming

gRain (version 1.3.11)

components_extract: Extract conditional probabilities and clique potentials from data.

Description

Extract list of conditional probability tables and list of clique potentials from data.

Usage

extractCPT(data_, graph, smooth = 0)

extractPOT(data_, graph, smooth = 0)

extractMARG(data_, graph, smooth = 0)

marg2pot(mg)

pot2marg(pt)

Value

  • extractCPT: A list of conditional probability tables.

  • extractPOT: A list of clique potentials.

  • extractMARG: A list of clique marginals.

Arguments

data_

A named array or a dataframe.

graph

A graphNEL object or a list or formula which can be turned into a graphNEL object by calling ug or dag. For extractCPT, graph must be/define a DAG while for extractPOT, graph must be/define undirected triangulated graph.

smooth

See 'details' below.

mg

An object of class marg_rep

pt

An object of class pot_rep

Author

Søren Højsgaard, sorenh@math.aau.dk

Details

If smooth is non-zero then smooth is added to all cell counts before normalization takes place.

References

Søren Højsgaard (2012). Graphical Independence Networks with the gRain Package for R. Journal of Statistical Software, 46(10), 1-26. https://www.jstatsoft.org/v46/i10/.

See Also

compileCPT, compilePOT, grain

Examples

Run this code

## Extract cpts / clique potentials from data and graph
# specification and create network. There are different ways:

data(lizard, package="gRbase")

# DAG: height <- species -> diam
daG <- dag(~species + height:species + diam:species)

# UG : [height:species][diam:species]
uG  <- ug(~height:species + diam:species)

pt <- extractPOT(lizard, ~height:species + diam:species) 
cp <- extractCPT(lizard, ~species + height:species + diam:species)

pt
cp

# Both specify the same probability distribution
tabListMult(pt) %>% as.data.frame.table
tabListMult(cp) %>% as.data.frame.table

if (FALSE) {
# Bayesian networks can be created as
bn.uG   <- grain(pt)
bn.daG  <- grain(cp)

# The steps above are wrapped into a convenience method which
# builds a network from at graph and data.
bn.uG   <- grain(uG, data=lizard)
bn.daG  <- grain(daG, data=lizard)
}

Run the code above in your browser using DataLab