View source: R/importance_sampling.R

ImpsampMNL | R Documentation |

This function samples from the posterior distribution using importance sampling, assuming a multivariate (truncated) normal prior distribution and a MNL likelihood.

ImpsampMNL( n.draws, prior.mean, prior.covar, des, n.alts, y, alt.cte = NULL, lower = NULL, upper = NULL )

`n.draws` |
Numeric value indicating the number of draws. |

`prior.mean` |
Numeric vector indicating the mean of the multivariate normal distribution (prior). |

`prior.covar` |
Covariance matrix of the prior distribution. |

`des` |
A design matrix in which each row is a profile. If alternative
specific constants are present, those should be included as the first
column(s) of the design. Can be generated with |

`n.alts` |
Numeric value indicating the number of alternatives per choice set. |

`y` |
A binary response vector. |

`alt.cte` |
A binary vector indicating for each alternative whether an
alternative specific constant is desired. The default is |

`lower` |
Numeric vector of lower truncation points, the default
is |

`upper` |
Numeric vector of upper truncation points, the default
is |

For the proposal distribution a t-distribution with degrees of freedom equal
to the number of parameters is used. The posterior mode is estimated using
`optim`

, and the covariance matrix is calculated as the negative
inverse of the generalized Fisher information matrix. See reference for more
information.

From this distribution a lattice grid of draws is generated.

If truncation is present, incorrect draws are rejected and new ones are
generated untill `n.draws`

is reached. The covariance matrix is in this case
still calculated as if no truncation was present.

`sample` |
Numeric vector with the (unweigthted) draws from the posterior distribution. |

`weights` |
Numeric vector with the associated weights of the draws. |

`max` |
Numeric vector with the estimated mode of the posterior distribution. |

`covar` |
Matrix representing the estimated variance covariance matrix. |

juidefix

## Example 1: sample from posterior, no constraints, no alternative specific constants # choice design design <- example_design # Respons. truePar <- c(0.7, 0.6, 0.5, -0.5, -0.7, 1.7) # some values set.seed(123) resp <- RespondMNL(par = truePar, des = design, n.alts = 2) #prior pm <- c(1, 1, 1, -1, -1, 1) # mean vector pc <- diag(1, ncol(design)) # covariance matrix # draws from posterior. ImpsampMNL(n.draws = 100, prior.mean = pm, prior.covar = pc, des = design, n.alts = 2, y = resp) ## example 2: sample from posterior with constraints # and alternative specific constants # choice design. design <- example_design2 # Respons. truePar <- c(0.2, 0.8, 0.7, 0.6, 0.5, -0.5, -0.7, 1.7) # some values set.seed(123) resp <- RespondMNL(par = truePar, des = design, n.alts = 3) # prior pm <- c(1, 1, 1, 1, 1, -1, -1, 1) # mean vector pc <- diag(1, ncol(design)) # covariance matrix low = c(-Inf, -Inf, 0, 0, 0, -Inf, -Inf, 0) up = c(Inf, Inf, Inf, Inf, Inf, 0, 0, Inf) # draws from posterior. ImpsampMNL(n.draws = 100, prior.mean = pm, prior.covar = pc, des = design, n.alts = 3, y = resp, lower = low, upper = up, alt.cte = c(1, 1, 0))

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.