Nothing
      ################################
## Methods for mnlogit objects | 
################################
##    * fitted                 |
##    * residuals              |
##    * df.residual            |
##    * terms                  |
##    * update                 | # code adapted from update.mlogit
##    * print                  |
##    * vcov                   |
##    * logLik                 |
##    * summary                |
##    * print.summary          |
##    * index                  |
##    * predict                | # source code in predict.R 
##    * coef                   |
##    * scoretest              | # source code in hyptests.R
##    * waldtest               | # source code in hyptests.R
##    * lrtest                 | # source code in hyptests.R
################################
##    * print.est.stats        |
##    * print.model.size       |
################################
fitted.mnlogit <- function(object, outcome=TRUE, ...)
{
    if (outcome) 
        result <- object$fitted.values
    else 
        result <- object$probabilities
    
    result
}
residuals.mnlogit <- function(object, outcome=TRUE, ...)
{
    if (outcome) 
        result <- attr(object$residuals, "outcome")
    else {
        result <- object$residuals
        attr(result, "outcome") <- NULL
    }
    result
}
df.residual.mnlogit <- function(object, ...)
{
  n <- length(residuals(object))
  K <- length(coef(object))
  n-K
}
terms.mnlogit <- function(x, ...)
{
    terms(x$formula)
}
update.mnlogit <- function (object, new, ...){
  call <- object$call
  if (is.null(call))
    stop("need an object with call component")
  extras <- match.call(expand.dots = FALSE)$...
  if (!missing(new))
    call$formula <- update(formula(object), new)
  if(length(extras) > 0) {
    existing <- !is.na(match(names(extras), names(call)))
    ## do these individually to allow NULL to remove entries.
    for (a in names(extras)[existing]) call[[a]] <- extras[[a]]
    if(any(!existing)) {
      call <- c(as.list(call), extras[!existing])
      call <- as.call(call)
    }
  }
  eval(call, parent.frame())
}
# Print function
print.mnlogit <- function(x, digits = max(3, getOption("digits") - 2),
                          width = getOption("width"), 
                          what = c("obj", "eststat", "modsize"), ...)
{
    what <- match.arg(what)
    if (what == "eststat") {
        print.est.stats(x$est.stat, ...)
    } else if (what == "modsize") {
        print.model.size(x$model.size, ...)
    } else {
      cat("\nCall:\n", deparse(x$call), "\n\n", sep = "")
      if (length(coef(x))){
          cat("Coefficients:\n")
          print.default(format(coef(x, order=TRUE), digits=digits),
                        print.gap=2, quote = FALSE)
      }
      else cat("No coefficients\n")
      cat("\n")
      invisible(x)
    }
}
# Extract the covariance matrix of the mnlogit object
vcov.mnlogit <- function(object, ...)
{
    result <- solve(object$hessian, tol = 1e-25)
    return(result)
}
# Extract the logliklihood info of the mnlogit object
logLik.mnlogit <- function(object, ...)
{
    object$logLik
}
# Summary function
summary.mnlogit <- function(object,...)
{
    b <- coef(object, order=TRUE)
    std.err2 <- sqrt(diag(vcov(object)))
    std.err <- b
    std.err[names(std.err2)] <- std.err2
    z <- b / std.err
    p <- 2 * ( 1 - pnorm(abs(z)))
    CoefTable <- cbind(b, std.err, z, p)
    colnames(CoefTable) <- c("Estimate", "Std.Error", "t-value", "Pr(>|t|)")
    object$CoefTable <- CoefTable
    class(object) <- c("summary.mnlogit", "mnlogit")
    return(object)
}
print.summary.mnlogit <- function(x, digits = max(3, getOption("digits") -2),
                                  width = getOption("width"), ...)
{
    cat("\nCall:\n")
    print(x$call)
    cat("\n")
    cat("Frequencies of alternatives in input data:\n")
    print(prop.table(x$freq), digits = digits)
    cat("\n")
    print(x$model.size)
    cat("\n")
    print(x$est.stat)
    cat("\nCoefficients : \n")
    printCoefmat(x$CoefTable, digits = digits)
    cat("\n")
    cat(paste0("Log-Likelihood: ", signif(x$logLik, digits), ", df = ",
               x$model.size$nparams, "\n"))
    cat(paste("AIC: ", signif(x$AIC, digits), "\n"))
    cat("\n")
}
index <- function(object, ...) 
{
    UseMethod("index", object)
}
index.mnlogit <- function(object, ...)
{
    return(attr(object$model, "index"))
}
# Extract the coefficients of the mnlogit object
coef.mnlogit <- function(object, order=FALSE, as.list = FALSE, ...)
{
    if (!order)   return(object$coefficients)
    if (!as.list) return(object$ordered.coeff)
    vec <- object$coefficients
    p = object$model.size$p
    f = object$model.size$f
    d = object$model.size$d
    K = object$model.size$K
    np = object$model.size$nparams
     
    coeffList <- list(genericCoeff = NULL, indvCoeff = NULL, chSpCoeff = NULL)
    coeffList$indvCoeff <- if (p) vec[1:(K-1)*p] else NULL
    coeffList$chSpCoeff <- if (f) vec[((K-1)*p+1):((K-1)*p+K*f)] else NULL
    coeffList$genericCoeff <- if (d) vec[((K-1)*p+K*f+1):np] else NULL
    return(coeffList)
}
# Print estimation statistics 
print.est.stats <- function(x, ...)
{
    cat("-------------------------------------------------------------\n")
    cat("Maximum likelihood estimation using the Newton-Raphson method\n")
    cat("-------------------------------------------------------------")
    cat(paste0("\n  Number of iterations: ", x$niters))
    cat(paste0("\n  Number of linesearch iterations: ", x$LSniters))
    cat(paste0("\nAt termination: "))
    cat(paste0("\n  Gradient norm = ", round(x$gradNorm, 8)))
    cat(paste0("\n  Diff between last 2 loglik values = ", round(x$funcDiff, 8)))
    cat(paste0("\n  Stopping reason: ", x$stopCond))
    cat(paste0("\nTotal estimation time (sec): ", round(x$totalMins*60, 3)))
    cat(paste0("\nTime for Hessian calculations (sec): ",
               round(x$hessMins*60, 3), " using ", x$ncores, " processors.\n"))
}
# Print model parameters
print.model.size <- function(x, ...)
{
    cat(paste0("Number of observations in data = ", x$N))
    cat(paste0("\nNumber of alternatives = ", x$K))
    if (x$intercept) cat("\nIntercept turned: ON")
    else cat("\nIntercept turned: OFF")
    cat(paste0("\nNumber of parameters in model = ", x$nparams))
    cat(paste0("\n  # individual specific variables = ", x$p))
    cat(paste0("\n  # choice specific coeff variables = ", x$f))
    cat(paste0("\n  # individual independent variables = ", x$d, "\n"))
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.