mcnode: Build mcnode Objects from Data or other mcnode Objects

mcnodeR Documentation

Build mcnode Objects from Data or other mcnode Objects

Description

Creates a ‘⁠mcnode⁠’ object from a vector, an array or a ‘⁠mcnode⁠’.

Usage

mcdata(data, type=c("V", "U", "VU", "0"), nsv=ndvar(), nsu=ndunc(),
	  nvariates=1, outm="each")
mcdatanocontrol(data, type=c("V", "U", "VU", "0"), nsv=ndvar(), nsu=ndunc(),
	  nvariates=1, outm="each")

Arguments

data

The numeric/logical vector/matrix/array of data or the ‘⁠mcnode⁠’ object.

type

The type of node to be built. By default, a ‘⁠"V"⁠’ node.

nsv

The variability dimension (‘⁠type="V"⁠’ or ‘⁠type="VU"⁠’) of the node. By default: the current value in mc.control

nsu

The uncertainty dimension (‘⁠type="U"⁠’ or ‘⁠type="VU"⁠’) of the node. By default: the current value in mc.control

nvariates

The number of variates. By default: 1

outm

The output of the ‘⁠mcnode⁠’ for multivariates nodes. May be "each" (default) if output should be provided for each variates considered independently, "none" for no output or a vector of name of function(s) (as a character string) that will be applied on the variates dimension before any output (ex: ‘⁠"mean"⁠’, ‘⁠"median"⁠’, ‘⁠c("min", "max")⁠’). The function should have no other arguments and send one value per vector of values (ex. do not use ‘⁠"range"⁠’). Note that the ‘⁠outm⁠’ attribute may be changed at any time using the outm function.

Details

A ‘⁠mcnode⁠’ object is the basic element of a mc object. It is an array of dimension ‘⁠(nsv x nsu x nvariates)⁠’. Four types of ‘⁠mcnode⁠’ exists:

  • ⁠"V" mcnode⁠’, for "Variability", are arrays of dimension ‘⁠(nsv x 1 x nvariates)⁠’. The alea in the data should reflect variability of the parameter.

  • ⁠"U" mcnode⁠’, for "Uncertainty", are arrays of dimension ‘⁠c(1 x nsu x nvariates)⁠’. The alea in the data should reflect uncertainty of the parameter.

  • ⁠"VU" mcnode⁠’, for "Variability and Uncertainty", are arrays of dimension ‘⁠(nsv x nsu x nvariates)⁠’. The alea in the data reflects separated variability (in rows) and uncertainty (in columns) of the parameter.

  • ⁠"0" mcnode⁠’, for "Neither Variability or Uncertainty", are arrays of dimension ‘⁠(1 x 1 x nvariates)⁠’. No alea is considered for these nodes. ‘⁠"0" mcnode⁠’ are not necessary in the univariate context (use scalar instead) but may be useful for operations on multivariate nodes.

Multivariate nodes (i.e. ‘⁠nvariates != 1⁠’) should be used for multivariate distributions implemented in ‘⁠mc2d⁠’ (rmultinomial, rmultinormal, rempiricalD and rdirichlet).

For security, recycling rules are limited to fill the array using ‘⁠data⁠’. The general rules is that recycling is only permitted to fill a dimension from 1 to the final size of the dimension.

If the final dimension of the node is ‘⁠(nsv x nsu x nvariates)⁠’ (with ‘⁠nsv = 1⁠’ and ‘⁠nsu = 1⁠’ for ‘⁠"0"⁠’ nodes, ‘⁠nsu = 1⁠’ for ‘⁠"V"⁠’ nodes and ‘⁠nsv = 1⁠’ for ‘⁠"U"⁠’ nodes), ‘⁠mcdata⁠’ accepts :

  • Vectors of length ‘⁠1⁠’ (recycled on all dimensions), vectors of length ‘⁠(nsv * nsu)⁠’ (filling first the dimension of variability, then the dimension of uncertainty then recycling on nvariates), or vectors of length ‘⁠(nsv * nsu * nvariates)⁠’ (filling first the dimension of variability, then the uncertainty, then the variates).

  • Matrixes of dimensions ‘⁠(nsv x nsu)⁠’, recycling on variates.

  • Arrays of dimensions ‘⁠(nsv x nsu x nvariates)⁠’ or ‘⁠(nsv x nsu x 1)⁠’, recycling on variates.

  • For ‘⁠data⁠’ as ‘⁠mcnode⁠’, recycling is dealt to proper fill the array:

    1. a ‘⁠"V"⁠’ node accepts a ‘⁠"0"⁠’ node of dimension ‘⁠(1 x 1 x nvariates)⁠’ (recycling on variability) or of dimension ‘⁠(1 x 1 x 1)⁠’ (recycling on variability and variates), or a ‘⁠"V"⁠’ node of dimension ‘⁠(nsv x 1 x nvariates)⁠’ or ‘⁠(nsv x 1 x 1)⁠’ (recycling on variates),

    2. a ‘⁠"U"⁠’ node accepts a ‘⁠"0"⁠’ node of dimension ‘⁠(1 x 1 x nvariates)⁠’ (recycling on uncertainty) or of dimension ‘⁠(1 x 1 x 1)⁠’ (recycling on uncertainty and variates), or a ‘⁠"U"⁠’ node of dimension ‘⁠(1 x nsu x nvariates)⁠’, or ‘⁠(1 x nsu x 1)⁠’ (recycling on variates),

    3. a ‘⁠"VU"⁠’ node accepts a ‘⁠"0"⁠’ node of dimension ‘⁠(1 x 1 x nvariates)⁠’ (recycling on variability and uncertainty) or of dimension ‘⁠(1 x 1 x 1)⁠’ (recycling on variability, uncertainty and variates), a ‘⁠"U"⁠’ node of dimension ‘⁠(1 x nsu x nvariates)⁠’(recycling "by row" on the variability dimension), or of dimension ‘⁠(1 x nsu x 1)⁠’(recycled "by row" on the variability dimension then on variates), a ‘⁠"V"⁠’ node of dimension ‘⁠(nsv x 1 x nvariates)⁠’(recycling on the uncertainty dimension) or of dimension ‘⁠(nsv x 1 x 1)⁠’(recycled on the uncertainty dimension then on variates), and a ‘⁠"VU"⁠’ node of dimension ‘⁠(nsv x nsu x nvariates)⁠’ or of dimension ‘⁠(nsv x nsu x 1)⁠’ (recycling on variates).

    4. a ‘⁠"0"⁠’ node accepts a ‘⁠"0"⁠’ node of dimension ‘⁠(1 x 1 x nvariates)⁠’ or ‘⁠(1 x 1 x 1)⁠’ (recycling on variates).

⁠mcdatanocontrol⁠’ is a dangerous version of ‘⁠mcnode⁠’ which forces the dimension of data to be ‘⁠(nsv x nsu x nvariates)⁠’ and gives the attributes and the class without any control. This function is useful when your model is tested since it is much more quicker.

Value

An ‘⁠mcnode⁠’ object.

See Also

mcstoc to build a stochastic ‘⁠mcnode⁠’ object, mcprobtree to build a stochastic node fro a probability tree.

Ops.mcnode for operations on ‘⁠mcnode⁠’ objects.

mc to build a Monte-Carlo object.

Informations about an mcnode: is.mcnode, dimmcnode, typemcnode.

To build a correlation structure between ‘⁠mcnode⁠’: cornode.

To study ‘⁠mcnode⁠’ objects: print.mcnode, summary.mcnode, plot.mcnode, converg, hist.mcnode

To modify ‘⁠mcnode⁠’ objects: NA.mcnode

Examples

oldvar <- ndvar()
oldunc <- ndunc()
ndvar(3)
ndunc(5)

(x0 <- mcdata(100, type="0"))
mcdata(matrix(100), type="0")

(xV <- mcdata(1:ndvar(), type="V"))
mcdata(matrix(1:ndvar(), ncol=1), type="V")

(xU <- mcdata(10*1:ndunc(), type="U"))
mcdata(matrix(10*1:ndunc(), nrow=1), type="U")

(xVU <- mcdata(1:(ndvar()*ndunc()), type="VU"))
mcdata(matrix(1:(ndvar()*ndunc()), ncol=5, nrow=3), type="VU")

##Do not use
## Not run: 
mcdata(matrix(1:5, nrow=1), type="VU")

## End(Not run)
##use instead
mcdata(mcdata(matrix(1:ndunc(), nrow=1), type="U"), "VU")
##or
mcdata(matrix(1:ndunc(), nrow=1), type="U") + mcdata(0, "VU")

mcdata(x0, type="0")

mcdata(x0, type="V")
mcdata(xV, type="V")

mcdata(x0, type="U")
mcdata(xU, type="U")

mcdata(x0, type="VU")
mcdata(xU, type="VU")
mcdata(xV, type="VU")

##Multivariates
(x0M <- mcdata(1:2, type="0", nvariates=2))
mcdata(1, type="0", nvariates=2)

(xVM <- mcdata(1:(2*ndvar()), type="V", nvariates=2))
mcdata(1:ndvar(), type="V", nvariates=2)
mcdata(array(1:(2*ndvar()), dim=c(3, 1, 2)), type="V", nvariates=2)

mcdata(1, type="V", nvariates=2)
mcdata(x0, type="V", nvariates=2)
mcdata(x0M, type="V", nvariates=2)
mcdata(xV, type="V", nvariates=2)
mcdata(xVM, type="V", nvariates=2)

(xUM <- mcdata(10*(1:(2*ndunc())), type="U", nvariates=2))
mcdata(array(10*(1:(2*ndunc())), dim=c(1, 5, 2)), type="U", nvariates=2)

mcdata(1, type="U", nvariates=2)
mcdata(x0, type="U", nvariates=2)
mcdata(x0M, type="U", nvariates=2)
mcdata(xU, type="U", nvariates=2)
mcdata(xUM, type="U", nvariates=2)

(xVUM <- mcdata(1:(ndvar()*ndunc()), type="VU", nvariates=2))
mcdata(array(1:(ndvar()*ndunc()), dim=c(3, 5, 2)), type="VU", nvariates=2)

mcdata(1, type="VU", nvariates=2)
mcdata(x0, type="VU", nvariates=2)
mcdata(x0M, type="VU", nvariates=2)
mcdata(xV, type="VU", nvariates=2)
mcdata(xVM, type="VU", nvariates=2)
mcdata(xU, type="VU", nvariates=2)
mcdata(xUM, type="VU", nvariates=2)
mcdata(xVU, type="VU", nvariates=2)
mcdata(xVUM, type="VU", nvariates=2)

ndvar(oldvar)
ndunc(oldunc)


mc2d documentation built on July 26, 2023, 6:07 p.m.