Learn R Programming

bayesm (version 3.1-6)

llnhlogit: Evaluate Log Likelihood for non-homothetic Logit Model

Description

llnhlogit evaluates log-likelihood for the Non-homothetic Logit model.

Usage

llnhlogit(theta, choice, lnprices, Xexpend)

Value

Value of log-likelihood (sum of log prob of observed multinomial outcomes).

Arguments

theta

parameter vector (see details section)

choice

\(n x 1\) vector of choice (1,...,p)

lnprices

\(n x p\) array of log-prices

Xexpend

\(n x d\) array of vars predicting expenditure

Warning

This routine is a utility routine that does not check the input arguments for proper dimensions and type.

Author

Peter Rossi, Anderson School, UCLA, perossichi@gmail.com.

Details

Non-homothetic logit model, \(Pr(i) = exp(tau v_i) / sum_j exp(tau v_j)\)

\(v_i = alpha_i - e^{kappaStar_i}u^i - lnp_i\)
tau is the scale parameter of extreme value error distribution.
\(u^i\) solves \(u^i = psi_i(u^i)E/p_i\).
\(ln(psi_i(U)) = alpha_i - e^{kappaStar_i}U\).
\(ln(E) = gamma'Xexpend\).

Structure of theta vector:
alpha: \(p x 1\) vector of utility intercepts.
kappaStar: \(p x 1\) vector of utility rotation parms expressed on natural log scale.
gamma: \(k x 1\) -- expenditure variable coefs.
tau: \(1 x 1\) -- logit scale parameter.

References

For further discussion, see Chapter 4, Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.

See Also

simnhlogit

Examples

Run this code
N=1000; p=3; k=1
theta = c(rep(1,p), seq(from=-1,to=1,length=p), rep(2,k), 0.5)
lnprices = matrix(runif(N*p), ncol=p)
Xexpend = matrix(runif(N*k), ncol=k)
simdata = simnhlogit(theta, lnprices, Xexpend)

## evaluate likelihood at true theta
llstar = llnhlogit(theta, simdata$y, simdata$lnprices, simdata$Xexpend)

Run the code above in your browser using DataLab