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.