# Ordinal Regression with plssem

This vignette demonstrates how to fit an ordinal regression model with `plssem` using the `titanic` dataset.

In `plssem`, regression-style model syntax like `y ~ x1 + x2` is supported. When the dependent variable (and/or predictors) are ordinal. Ordinal variables can be supplied via the `ordered` argument, or by making sure they are `ordered` in the dataset.

## Data

    head(titanic[, c("Survived", "Age", "Sex", "Female", "Pclass")])

## Linear ordinal regression

This model predicts survival as a function of age and sex.

    m_linear <- "Survived ~ Age + Female"

    fit_linear <- pls(
      m_linear,
      data          = titanic,
      ordered       = "Survived",
      boot.R        = 50,
      bootstrap     = TRUE,
      boot.parallel = "multicore",
      boot.ncores   = 2
    )

    summary(fit_linear)

Optional: evaluate predictive performance.

    pls_predict(fit_linear, benchmark = "acc")

## Non-linear ordinal regression (interaction)

To include a non-linear (interaction) effect, add an interaction term. With ordinal indicators and interactions, `plssem` automatically switches to the Monte-Carlo ordinal PLSc estimator.

    m_int <- "Survived ~ Age + Female + Age:Female"

    fit_int <- pls(
      m_int,
      data          = titanic,
      ordered       = "Survived",
      boot.R        = 50,
      bootstrap     = TRUE,
      boot.parallel = "multicore",
      boot.ncores   = 2
    )

    summary(fit_int)

    pls_predict(fit_int, benchmark = "acc")