View source: R/node_multinomial.r
| node_multinomial | R Documentation |
Data from the parents is used to generate the node using multinomial regression by predicting the covariate specific probability of each class and sampling from a multinomial distribution accordingly.
node_multinomial(data, parents, betas, intercepts,
labels=NULL, output="factor",
return_prob=FALSE)
data |
A |
parents |
A character vector specifying the names of the parents that this particular child node has. |
betas |
A numeric matrix with |
intercepts |
A numeric vector with one entry for each class that should be simulated, specifying the intercepts used to generate the node. |
labels |
An optional character vector giving the factor levels of the generated classes. If |
output |
A single character string specifying the output format. Must be one of |
return_prob |
Either |
This function works essentially like the node_binomial function. First, the matrix of betas coefficients is used in conjunction with the values defined in the parents nodes and the intercepts to calculate the expected subject-specific probabilities of occurrence for each possible category. This is done using the standard multinomial regression equations. Using those probabilities in conjunction with the rcategorical function, a single one of the possible categories is drawn for each individual.
When actually fitting a multinomial regression model (with functions such as multinom from the nnet package), the coefficients will usually not be equal to the ones supplied in betas. The reason is that these functions usually standardize the coefficients to the coefficient of the reference category.
Returns a vector of length nrow(data). Depending on the used arguments, this vector may be of type character, numeric of factor. If return_prob was used it instead returns a numeric matrix containing one column per possible event and nrow(data) rows.
Robin Denz
empty_dag, node, node_td, sim_from_dag, sim_discrete_time
library(simDAG)
set.seed(3345235)
dag <- empty_dag() +
node("age", type="rnorm", mean=50, sd=4) +
node("sex", type="rbernoulli", p=0.5) +
node("UICC", type="multinomial", parents=c("sex", "age"),
betas=matrix(c(0.2, 0.4, 0.1, 0.5, 1.1, 1.2), ncol=2),
intercepts=1)
sim_dat <- sim_from_dag(dag=dag, n_sim=100)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.