Learn R Programming

nmm (version 0.9)

logLik.nmm: Log-likelihood(LL) with supplied coefficients.

Description

Log-likelihood(LL) with supplied coefficients.

Usage

# S3 method for nmm
logLik(
  object,
  new_coef = NULL,
  separatenmm = FALSE,
  transform = FALSE,
  methodopt = "NA",
  ...
)

Arguments

object

Object of class nmm.

new_coef

"New" coefficients for which LL should be calculated.

separatenmm

if TRUE, returns separate LL for each equation.

transform

if TRUE, do quantile transformation (normal quantiles).

methodopt

"NA" means that automatic algorithm was used in maxLik, if equal to "BHHH" will return LL for each individual.

...

some methods for this generic function require additional arguments.

Value

Returns log-likelihood.

Examples

Run this code
# NOT RUN {
#example  continuous nonlinear
library(systemfit)
data( ppine , package="systemfit")
hg.formula <- hg ~ exp( h0 + h1*log(tht) + h2*tht^2 + h3*elev)
dg.formula <- dg ~ exp( d0 + d1*log(dbh) + d2*hg + d3*cr)
labels <- list( "height.growth", "diameter.growth" )
model <- list( hg.formula, dg.formula )
start.values <- c(h0=-0.5, h1=0.5, h2=-0.001, h3=0.0001,
                  d0=-0.5, d1=0.009, d2=0.25, d3=0.005)
model.sur <- nlsystemfit( "SUR", model, start.values, data=ppine, eqnlabels=labels )
eq_c <- as.character(c(hg.formula, dg.formula))
parl <- c(paste0("h", 0:3),paste0("d", 0:3))
res <- nmm(ppine, eq_c=eq_c, start_v=start.values, par_c=parl, eq_type = "cont",
 best_method = FALSE)
logLik(res)
logLik(res, new_coef=res$estimate)
logLik(res, new_coef=model.sur$b)
#example discrete
library(mlogit)
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
## a pure "conditional" model
mres <- summary(mlogit(mode ~ price + catch, data = Fish))
data <- prepare_data(Fish %>% data.frame %>% dplyr::select(-idx),
choice="alt", dummy="mode", PeID="chid", mode_spec_var = c("price", "catch"),
type="long")
eq_d <- c("a1 + p1 * price_1 + p2 * catch_2", "a2 + p1 * price_2 + p2 * catch_2",
             "a3 + p1 * price_3 + p2 * catch_3", "a4 + p1 * price_4 + p2 * catch_4")
par_d <- c(paste0("a", 1:4), paste0("p", 1:2))
res <- nmm(data, eq_d=eq_d,  eq_type="disc", fixed_term=FALSE, par_d=par_d,
best_method=FALSE)
logLik(res)
logLik(res, new_coef=res$estimate)
logLik(res, new_coef=mres$coefficients)
# }

Run the code above in your browser using DataLab