## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", message = FALSE, warning = FALSE, fig.width = 7, fig.height = 4.2, dpi = 150, fig.align = "center" ) set.seed(1) ## ----------------------------------------------------------------------------- library(mixqr) ## ----fit---------------------------------------------------------------------- fit <- mixqr(equivalence ~ nox, data = engine, tau = 0.5, m = 2, variance = "stochEM") fit ## ----summary------------------------------------------------------------------ summary(fit) ## ----plot, fig.alt = "Engine data coloured by recovered regime with two median regression lines."---- library(ggplot2) dat <- transform(engine, regime = factor(predict(fit, type = "class"))) grid <- data.frame(nox = seq(min(engine$nox), max(engine$nox), length.out = 100)) lines <- do.call(rbind, lapply(1:2, function(j) { data.frame(nox = grid$nox, equivalence = cbind(1, grid$nox) %*% fit$beta[, j], regime = factor(j)) })) ggplot(dat, aes(nox, equivalence, colour = regime)) + geom_point(size = 2, alpha = 0.8) + geom_line(data = lines, linewidth = 1.1) + scale_colour_manual(values = c("#1b6ca8", "#e07b39")) + labs(x = "Nitrous oxide", y = "Equivalence ratio", title = "Two median regimes recovered by mixqr") + theme_minimal(base_size = 12) ## ----cite, eval = FALSE------------------------------------------------------- # citation("mixqr")