inst/doc/basic_usage.R

## ----setup, include=FALSE, message=FALSE, warning=FALSE-----------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  warning = FALSE,
  message = FALSE,
  fig.retina = 3,
  comment = "#>"
)

## -----------------------------------------------------------------------------
library("logitr")

mnl_pref <- logitr(
    data    = yogurt,
    outcome = "choice",
    obsID   = "obsID",
    pars    = c("price", "feat", "brand")
)

## -----------------------------------------------------------------------------
mnl_wtp <- logitr(
    data     = yogurt,
    outcome  = "choice",
    obsID    = "obsID",
    pars     = c("feat", "brand"),
    scalePar = "price"
)

## -----------------------------------------------------------------------------
mnl_wtp <- logitr(
    data     = yogurt,
    outcome  = "choice",
    obsID    = "obsID",
    pars     = c("feat", "brand"),
    scalePar = "price",
    numMultiStarts = 10
)

## ----eval=FALSE---------------------------------------------------------------
#  mxl_pref <- logitr(
#      data     = yogurt,
#      outcome  = 'choice',
#      obsID    = 'obsID',
#      pars     = c('price', 'feat', 'brand'),
#      randPars = c(feat = 'n', brand = 'n'),
#      numMultiStarts = 10
#  )

## -----------------------------------------------------------------------------
summary(mnl_pref)

## -----------------------------------------------------------------------------
coef(mnl_pref)

## -----------------------------------------------------------------------------
se(mnl_pref)

## -----------------------------------------------------------------------------
logLik(mnl_pref)

## -----------------------------------------------------------------------------
vcov(mnl_pref)

## -----------------------------------------------------------------------------
wtp(mnl_pref, scalePar = "price")

## -----------------------------------------------------------------------------
wtpCompare(mnl_pref, mnl_wtp, scalePar = "price")

## -----------------------------------------------------------------------------
data <- subset(
  yogurt, obsID %in% c(42, 13),
  select = c('obsID', 'alt', 'choice', 'price', 'feat', 'brand')
)

data

## -----------------------------------------------------------------------------
probs <- predict(
  mnl_pref,
  newdata = data,
  obsID   = "obsID",
  ci      = 0.95
)

probs

## -----------------------------------------------------------------------------
probs <- predict(
  mnl_wtp,
  newdata = data,
  obsID   = "obsID",
  ci      = 0.95
)

probs

## -----------------------------------------------------------------------------
outcomes <- predict(
  mnl_pref,
  type = "outcome",
  returnData = TRUE
)

head(outcomes[c('obsID', 'choice', 'predicted_outcome')])

## -----------------------------------------------------------------------------
chosen <- subset(outcomes, choice == 1)
chosen$correct <- chosen$choice == chosen$predicted_outcome
sum(chosen$correct) / nrow(chosen)

Try the logitr package in your browser

Any scripts or data that you put into this service are public.

logitr documentation built on Sept. 29, 2023, 5:06 p.m.