## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = TRUE ) ## ----data--------------------------------------------------------------------- library(smfa) data("utility", package = "sfaR") ## ----lp----------------------------------------------------------------------- meta_lcm_lp <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, # cost frontier (S = -1) groupType = "sfalcmcross", lcmClasses = 2, # number of latent classes metaMethod = "lp" ) summary(meta_lcm_lp) ## ----qp----------------------------------------------------------------------- meta_lcm_qp <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, groupType = "sfalcmcross", lcmClasses = 2, metaMethod = "qp" ) summary(meta_lcm_qp) ## ----huang-------------------------------------------------------------------- meta_lcm_huang <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, groupType = "sfalcmcross", lcmClasses = 2, metaMethod = "sfa", sfaApproach = "huang" ) summary(meta_lcm_huang) ## ----odonnell----------------------------------------------------------------- meta_lcm_odonnell <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, groupType = "sfalcmcross", lcmClasses = 2, metaMethod = "sfa", sfaApproach = "ordonnell" ) summary(meta_lcm_odonnell) ## ----compare-classes---------------------------------------------------------- meta_lcm_2 <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, groupType = "sfalcmcross", lcmClasses = 2, metaMethod = "lp" ) meta_lcm_3 <- smfa( formula = log(tc/wf) ~ log(y) + log(wl/wf) + log(wk/wf), data = utility, S = -1, groupType = "sfalcmcross", lcmClasses = 3, metaMethod = "lp" ) # Compare information criteria ic(meta_lcm_2) ic(meta_lcm_3) ## ----eff---------------------------------------------------------------------- eff_lcm <- efficiencies(meta_lcm_lp) head(eff_lcm) # Key LCM-specific columns: # Group_c — most likely class assignment # PosteriorProb_c — posterior probability of assigned class # PosteriorProb_c1 — posterior probability of Class 1 # PosteriorProb_c2 — posterior probability of Class 2 ## ----class-summary------------------------------------------------------------ # Proportion assigned to each class and mean posterior probability with(eff_lcm, table(Group_c)) / nrow(eff_lcm) * 100 # % in each class