Renni Ekaputri
|Data Scientist|Business Analyst|Business Intelligence Specialist|Senior Project Management Officer|Senior Project Planning|
|EASA Part M CAMO 145 Technical Service Engineer|Aircraft Asset Management Specialist|

###################################################
### code chunk number 1: flexmix-intro
###################################################
set.seed(1504)
options(width=70, prompt = "R> ", continue = "+  ", useFancyQuotes = FALSE)
grDevices::ps.options(family="Times")
library("graphics")
library("flexmix")
data("NPreg")
###################################################
### code chunk number 2: flexmix-intro
###################################################
library("flexmix")
data("NPreg")
m1 <- flexmix(yn ~ x + I(x^2), data = NPreg, k = 2)
m1
## 
## Call:
## flexmix(formula = yn ~ x + I(x^2), data = NPreg, k = 2)
## 
## Cluster sizes:
##   1   2 
## 100 100 
## 
## convergence after 15 iterations
###################################################
### code chunk number 3: flexmix-intro
###################################################
parameters(m1, component = 1)
##                       Comp.1
## coef.(Intercept) -0.20866478
## coef.x            4.81612095
## coef.I(x^2)       0.03632578
## sigma             3.47494722
###################################################
### code chunk number 4: flexmix-intro
###################################################
parameters(m1, component = 2)
##                      Comp.2
## coef.(Intercept) 14.7175699
## coef.x            9.8455831
## coef.I(x^2)      -0.9682393
## sigma             3.4808477
###################################################
### code chunk number 5: flexmix-intro
###################################################
table(NPreg$class, clusters(m1))
##    
##      1  2
##   1 95  5
##   2  5 95
###################################################
### code chunk number 6: flexmix-intro
###################################################
summary(m1)
## 
## Call:
## flexmix(formula = yn ~ x + I(x^2), data = NPreg, k = 2)
## 
##        prior size post>0 ratio
## Comp.1 0.494  100    145 0.690
## Comp.2 0.506  100    141 0.709
## 
## 'log Lik.' -642.5451 (df=9)
## AIC: 1303.09   BIC: 1332.775
###################################################
### code chunk number 7: flexmix-intro
###################################################
par(mfrow=c(1,2))
plot(yn~x, col=class, pch=class, data=NPreg)
plot(yp~x, col=class, pch=class, data=NPreg)

###################################################
### code chunk number 8: flexmix-intro
###################################################
print(plot(m1))

###################################################
### code chunk number 9: flexmix-intro
###################################################
rm1 <- refit(m1)
summary(rm1)
## $Comp.1
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -0.208520   1.009207 -0.2066   0.8363    
## x            4.814466   0.509610  9.4474   <2e-16 ***
## I(x^2)       0.036540   0.049755  0.7344   0.4627    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## $Comp.2
##             Estimate Std. Error z value  Pr(>|z|)    
## (Intercept) 14.71321    1.32378  11.115 < 2.2e-16 ***
## x            9.84831    0.59158  16.647 < 2.2e-16 ***
## I(x^2)      -0.96852    0.05526 -17.526 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
###################################################
### code chunk number 10: flexmix-intro
###################################################
options(width=55)
## 
## Call:
## flexmix(formula = yp ~ x, data = NPreg, k = 2, 
##     model = FLXMRglm(family = "poisson"))
## 
##        prior size post>0 ratio
## Comp.1 0.532  112    197 0.569
## Comp.2 0.468   88    200 0.440
## 
## 'log Lik.' -440.6424 (df=5)
## AIC: 891.2848   BIC: 907.7764
###################################################
### code chunk number 12: flexmix-intro
###################################################
options(width=65)
###################################################
### code chunk number 13: flexmix-intro
###################################################
print(plot(m2))

###################################################
### code chunk number 15: flexmix-intro
###################################################
print(plot(m3))

###################################################
### code chunk number 16: flexmix-intro
###################################################
m4 <- flexmix(yn ~ x + I(x^2) | id2, data = NPreg, k = 2)
summary(m4)
## 
## Call:
## flexmix(formula = yn ~ x + I(x^2) | id2, data = NPreg, 
##     k = 2)
## 
##        prior size post>0 ratio
## Comp.1   0.5  100    100     1
## Comp.2   0.5  100    100     1
## 
## 'log Lik.' -561.5651 (df=9)
## AIC: 1141.13   BIC: 1170.815
###################################################
### code chunk number 17: flexmix-intro
###################################################
m5 <- flexmix(yn ~ x + I(x^2), data = NPreg, k = 2,
              control = list(iter.max = 15, verbose = 3, classify = "hard"))
## Classification: hard 
##    3 Log-likelihood :    -722.8041 
##    5 Log-likelihood :    -722.5276 
## converged
###################################################
### code chunk number 18: flexmix-intro
###################################################
m6 <- flexmix(yp ~ x + I(x^2), data = NPreg, k = 4,
              control = list(minprior = 0.2))

m6  
## 
## Call:
## flexmix(formula = yp ~ x + I(x^2), data = NPreg, 
##     k = 4, control = list(minprior = 0.2))
## 
## Cluster sizes:
##   1   2 
## 122  78 
## 
## convergence after 103 iterations
###################################################
### code chunk number 19: flexmix-intro
###################################################
m7 <- stepFlexmix(yp ~ x + I(x^2), data = NPreg,
                  control = list(verbose = 0), k = 1:5, nrep = 5)
## 1 : * * * * *
## 2 : * * * * *
## 3 : * * * * *
## 4 : * * * * *
## 5 : * * * * *
###################################################
### code chunk number 20: flexmix-intro
###################################################
getModel(m7, "BIC")
## 
## Call:
## stepFlexmix(yp ~ x + I(x^2), data = NPreg, control = list(verbose = 0), 
##     k = 2, nrep = 5)
## 
## Cluster sizes:
##   1   2 
##  78 122 
## 
## convergence after 31 iterations
###################################################
### code chunk number 21: flexmix-intro
###################################################
library("flexmix")
set.seed(1504)
options(width=60)
grDevices::ps.options(family="Times")
suppressMessages(require("ellipse"))
suppressMessages(require("mvtnorm"))
source("C:/Users/Test/Documents/R/win-library/3.5/flexmix/doc/mymclust.R")
###################################################
### code chunk number 22: flexmix-intro
###################################################
data("Nclus")
m1 <- flexmix(Nclus ~ 1, k = 4, model = mymclust())
summary(m1)
## 
## Call:
## flexmix(formula = Nclus ~ 1, k = 4, model = mymclust())
## 
##        prior size post>0 ratio
## Comp.1 0.159   92    165 0.558
## Comp.2 0.269  149    174 0.856
## Comp.3 0.397  213    488 0.436
## Comp.4 0.175   96    172 0.558
## 
## 'log Lik.' -2447.3 (df=19)
## AIC: 4932.6   BIC: 5014.488
###################################################
### code chunk number 23: flexmix-intro
###################################################
m2 <- flexmix(Nclus ~ 1, k = 4, model = mymclust(diagonal = FALSE))
summary(m2)
## 
## Call:
## flexmix(formula = Nclus ~ 1, k = 4, model = mymclust(diagonal = FALSE))
## 
##        prior size post>0 ratio
## Comp.1 0.177   97    132 0.735
## Comp.2 0.368  203    247 0.822
## Comp.3 0.272  150    176 0.852
## Comp.4 0.182  100    112 0.893
## 
## 'log Lik.' -2223.678 (df=23)
## AIC: 4493.356   BIC: 4592.484
###################################################
### code chunk number 24: flexmix-intro
###################################################
par(mfrow=1:2)
plotEll(m1, Nclus)
plotEll(m2, Nclus)

###################################################
### code chunk number 25: flexmix-intro
###################################################
SI <- sessionInfo()
pkgs <- paste(sapply(c(SI$otherPkgs, SI$loadedOnly), function(x) 
  paste("\\\\pkg{", x$Package, "} ", 
        x$Version, sep = "")), collapse = ", ")