inst/doc/Getting-Started.R

## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(plotmm)

## -----------------------------------------------------------------------------
library(mixtools)
library(ggplot2)

set.seed(576)

mixmdl <- normalmixEM(iris$Petal.Length, k = 2)

# visualize
plot_mm(mixmdl, 2) +
  labs(title = "Univariate Gaussian Mixture Model",
       subtitle = "Mixtools Object")

## -----------------------------------------------------------------------------
library(mixtools)
library(ggplot2)

# set up the data (replication of mixtools examples for comparability)
data(NOdata)
attach(NOdata)

set.seed(100)

out <- regmixEM(Equivalence, NO, verb = TRUE, epsilon = 1e-04)

df <- data.frame(out$beta)

# visualize
plot_mm(out) +
  labs(title = "Mixture of Regressions",
       subtitle = "Mixtools Object")

## -----------------------------------------------------------------------------
library(EMCluster)
library(patchwork)

set.seed(1234)

x <- da1$da

out <- init.EM(x, nclass = 10, method = "em.EM")

plot_mm(out, data = x) + 
  plot_annotation(title = "Bivariate Gaussian Mixture Model",
                  subtitle = "EMCluster Object")

## -----------------------------------------------------------------------------
library(mixtools)

mixmdl <- normalmixEM(faithful$waiting, k = 2)

plot_cut_point(mixmdl, plot = TRUE, color = "amerika") # produces plot

plot_cut_point(mixmdl, plot = FALSE) # gives the cut point value, not the plot

## -----------------------------------------------------------------------------
library(mixtools)
library(magrittr)
library(ggplot2)

# Fit a univariate mixture model via mixtools
set.seed(576)

mixmdl <- normalmixEM(faithful$waiting, k = 2)

# Customize a plot with `plot_mix_comps_normal()`
data.frame(x = mixmdl$x) %>%
ggplot() +
geom_histogram(aes(x, ..density..), binwidth = 1, colour = "black",
                 fill = "white") +
   stat_function(geom = "line", fun = plot_mix_comps_normal, # here is the function
                 args = list(mixmdl$mu[1], mixmdl$sigma[1], lam = mixmdl$lambda[1]),
                 colour = "red", lwd = 1.5) +
   stat_function(geom = "line", fun = plot_mix_comps_normal, # here again as k = 2
                 args = list(mixmdl$mu[2], mixmdl$sigma[2], lam = mixmdl$lambda[2]),
                 colour = "blue", lwd = 1.5) +
   ylab("Density")

Try the plotmm package in your browser

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

plotmm documentation built on Nov. 10, 2022, 5:14 p.m.