grain-main {gRain} | R Documentation |
Graphical Independence Network
Description
Creating grain objects (graphical independence network).
Usage
grain(x, ...)
## S3 method for class 'cpt_spec'
grain(x, control = list(), smooth = 0, compile = TRUE, details = 0, ...)
## S3 method for class 'CPTspec'
grain(x, control = list(), smooth = 0, compile = TRUE, details = 0, ...)
## S3 method for class 'pot_spec'
grain(x, control = list(), smooth = 0, compile = TRUE, details = 0, ...)
## S3 method for class 'igraph'
grain(
x,
control = list(),
smooth = 0,
compile = TRUE,
details = 0,
data = NULL,
...
)
## S3 method for class 'dModel'
grain(
x,
control = list(),
smooth = 0,
compile = TRUE,
details = 0,
data = NULL,
...
)
Arguments
x |
An argument to build an independence network from. Typically a list of conditional probability tables, a DAG or an undirected graph. In the two latter cases, data must also be provided. |
... |
Additional arguments, currently not used. |
control |
A list defining controls, see 'details' below. |
smooth |
A (usually small) number to add to the counts of a table if the grain is built from a graph plus a dataset. |
compile |
Should network be compiled. |
details |
Debugging information. |
data |
An optional data set (currently must be an array/table) |
Details
If 'smooth' is non-zero then entries of 'values' which a zero are replaced by the value of 'smooth' - BEFORE any normalization takes place.
Value
An object of class "grain"
Note
A change from earlier versions of this package is that grain objects are now compiled upon creation.
Author(s)
Søren Højsgaard, sorenh@math.aau.dk
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
cptable
, compile.grain
,
propagate.grain
, setFinding
,
setEvidence
, getFinding
,
pFinding
, retractFinding
,
extract_cpt
, extract_pot
,
compileCPT
, compilePOT
Examples
## Create network from conditional probability tables CPTs:
yn <- c("yes", "no")
a <- cpt(~asia, values=c(1,99), levels=yn)
t.a <- cpt(~tub + asia, values=c(5,95,1,99), levels=yn)
s <- cpt(~smoke, values=c(5,5), levels=yn)
l.s <- cpt(~lung + smoke, values=c(1,9,1,99), levels=yn)
b.s <- cpt(~bronc + smoke, values=c(6,4,3,7), levels=yn)
e.lt <- cpt(~either + lung + tub, values=c(1,0,1,0,1,0,0,1), levels=yn)
x.e <- cpt(~xray + either, values=c(98,2,5,95), levels=yn)
d.be <- cpt(~dysp + bronc + either, values=c(9,1,7,3,8,2,1,9), levels=yn)
cpt_list <- list(a, t.a, s, l.s, b.s, e.lt, x.e, d.be)
chest_cpt <- compileCPT(cpt_list)
## Alternative: chest_cpt <- compileCPT(a, t.a, s, l.s, b.s, e.lt, x.e, d.be)
chest_bn <- grain(chest_cpt)
## Create network from data and graph specification.
data(lizard, package="gRbase")
## From a DAG: height <- species -> diam
daG <- dag(~species + height:species + diam:species, result="igraph")
## From an undirected graph UG : [height:species][diam:species]
uG <- ug(~height:species + diam:species, result="igraph")
liz.ug <- grain(uG, data=lizard)
liz.dag <- grain(daG, data=lizard)