| Type: | Package |
| Title: | Bayesian Model Selection Approach for Parsimonious Gaussian Mixture Models |
| Version: | 1.0.9 |
| Date: | 2022-05-31 |
| Depends: | R(≥ 3.1.0) |
| Imports: | methods (≥ 3.5.1), mcmcse (≥ 1.3-2), pgmm (≥ 1.2.3), mvtnorm (≥ 1.0-10), MASS (≥ 7.3-51.1), Rcpp (≥ 1.0.1), gtools (≥ 3.8.1), label.switching (≥ 1.8), fabMix (≥ 5.0), mclust (≥ 5.4.3) |
| Author: | Xiang Lu <Xiang_Lu at urmc.rochester.edu>, Yaoxiang Li <yl814 at georgetown.edu>, Tanzy Love <tanzy_love at urmc.rochester.edu> |
| Maintainer: | Yaoxiang Li <yl814@georgetown.edu> |
| Description: | Model-based clustering using Bayesian parsimonious Gaussian mixture models. MCMC (Markov chain Monte Carlo) are used for parameter estimation. The RJMCMC (Reversible-jump Markov chain Monte Carlo) is used for model selection. GREEN et al. (1995) <doi:10.1093/biomet/82.4.711>. |
| SystemRequirements: | C++11 |
| License: | GPL-3 |
| Encoding: | UTF-8 |
| RoxygenNote: | 6.1.1 |
| Suggests: | testthat |
| LinkingTo: | Rcpp, RcppArmadillo |
| NeedsCompilation: | yes |
| Packaged: | 2022-06-01 03:33:44 UTC; bach |
| Repository: | CRAN |
| Date/Publication: | 2022-06-01 10:20:12 UTC |
CalculateProposalLambda
Description
CalculateProposalLambda
Usage
CalculateProposalLambda(hparam, thetaYList, CxyList, constraint, m, p,
qVec)
Arguments
hparam |
hparam |
thetaYList |
thetaYList |
CxyList |
CxyList |
constraint |
constraint |
m |
the number of clusters |
p |
the number of features |
qVec |
the vector of the number of factors in each clusters |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
m <- 1
muBar <- c(0, 0)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
CxyList <-
list(
A = list(structure(
c(0.567755037123148, 0, 0, 1.1870201935945),
.Dim = c(2L, 2L)
)),
nVec = structure(10, .Dim = c(1L, 1L)),
Cxxk = list(structure(
c(
739.129405647622,
671.040583460732,
671.040583460732,
618.754338945564
),
.Dim = c(2L, 2L)
)),
Cxyk = list(structure(
c(-18.5170828875512, -16.5748393456787),
.Dim = 2:1
)),
Cyyk = list(structure(2.4786991560888, .Dim = c(
1L,
1L
))),
Cytytk = list(structure(
c(
10, 0.787438922114998, 0.787438922114998,
2.4786991560888
),
.Dim = c(2L, 2L)
)),
Cxtytk = list(structure(
c(
-57.5402230447872,
-54.6677145995824,
-18.5170828875512,
-16.5748393456787
),
.Dim = c(
2L,
2L
)
)),
CxL1k = list(structure(
c(-59.5168204264758, -54.6093504204781),
.Dim = 2:1
)),
Cxmyk = list(structure(
c(
-21.0952527723962,
-14.6807011202188
),
.Dim = 2:1
)),
sumCxmyk = structure(c(
-21.0952527723962,
-14.6807011202188
), .Dim = 2:1),
sumCyyk = structure(3.6657193496833, .Dim = c(
1L,
1L
))
)
CalculateProposalLambda(hparam, thetaYList, CxyList, constraint, m, p, qVec)
CalculateProposalPsy
Description
CalculateProposalPsy
Usage
CalculateProposalPsy(hparam, thetaYList, CxyList, constraint, m, p, qVec)
Arguments
hparam |
hparam |
thetaYList |
thetaYList |
CxyList |
CxyList |
constraint |
constraint |
m |
the number of clusters |
p |
the number of features |
qVec |
the vector of the number of factors in each clusters |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
constraint <- c(0, 0, 0)
CxyList <-
list(
A = list(structure(
c(0.567755037123148, 0, 0, 1.1870201935945),
.Dim = c(2L, 2L)
)),
nVec = structure(10, .Dim = c(1L, 1L)),
Cxxk = list(structure(
c(
739.129405647622,
671.040583460732,
671.040583460732,
618.754338945564
),
.Dim = c(2L, 2L)
)),
Cxyk = list(structure(
c(-18.5170828875512, -16.5748393456787),
.Dim = 2:1
)),
Cyyk = list(structure(2.4786991560888, .Dim = c(
1L,
1L
))),
Cytytk = list(structure(
c(
10, 0.787438922114998, 0.787438922114998,
2.4786991560888
),
.Dim = c(2L, 2L)
)),
Cxtytk = list(structure(
c(
-57.5402230447872,
-54.6677145995824,
-18.5170828875512,
-16.5748393456787
),
.Dim = c(
2L,
2L
)
)),
CxL1k = list(structure(
c(-59.5168204264758, -54.6093504204781),
.Dim = 2:1
)),
Cxmyk = list(structure(
c(
-21.0952527723962,
-14.6807011202188
),
.Dim = 2:1
)),
sumCxmyk = structure(c(
-21.0952527723962,
-14.6807011202188
), .Dim = 2:1),
sumCyyk = structure(3.6657193496833, .Dim = c(
1L,
1L
))
)
#'
CalculateProposalPsy(hparam, thetaYList, CxyList, constraint, m, p, qVec)
EvaluateProposalLambda
Description
EvaluateProposalLambda
Usage
EvaluateProposalLambda(hparam, thetaYList, CxyList, constraint, newlambda,
m, qVec, p)
Arguments
hparam |
hparam |
thetaYList |
thetaYList |
CxyList |
CxyList |
constraint |
constraint |
newlambda |
newlambda |
m |
the number of clusters |
qVec |
the vector of the number of factors in each clusters |
p |
the number of features |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
CxyList <-
list(
A = list(structure(
c(0.567755037123148, 0, 0, 1.1870201935945),
.Dim = c(2L, 2L)
)),
nVec = structure(10, .Dim = c(1L, 1L)),
Cxxk = list(structure(
c(
739.129405647622,
671.040583460732,
671.040583460732,
618.754338945564
),
.Dim = c(2L, 2L)
)),
Cxyk = list(structure(
c(-18.5170828875512, -16.5748393456787),
.Dim = 2:1
)),
Cyyk = list(structure(2.4786991560888, .Dim = c(
1L,
1L
))),
Cytytk = list(structure(
c(
10, 0.787438922114998, 0.787438922114998,
2.4786991560888
),
.Dim = c(2L, 2L)
)),
Cxtytk = list(structure(
c(
-57.5402230447872,
-54.6677145995824,
-18.5170828875512,
-16.5748393456787
),
.Dim = c(
2L,
2L
)
)),
CxL1k = list(structure(
c(-59.5168204264758, -54.6093504204781),
.Dim = 2:1
)),
Cxmyk = list(structure(
c(
-21.0952527723962,
-14.6807011202188
),
.Dim = 2:1
)),
sumCxmyk = structure(c(
-21.0952527723962,
-14.6807011202188
), .Dim = 2:1),
sumCyyk = structure(3.6657193496833, .Dim = c(
1L,
1L
))
)
#'
EvaluateProposalLambda(hparam, thetaYList, CxyList, constraint, thetaYList@lambda, m, qVec, p)
EvaluateProposalPsy
Description
EvaluateProposalPsy
Usage
EvaluateProposalPsy(hparam, thetaYList, CxyList, constraint, newpsy, m, p,
qVec, delta)
Arguments
hparam |
hparam |
thetaYList |
thetaYList |
CxyList |
CxyList |
constraint |
constraint |
newpsy |
newpsy |
m |
the number of clusters |
p |
the number of features |
qVec |
the vector of the number of factors in each clusters |
delta |
hyperparameters |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
constraint <- c(0, 0, 0)
CxyList <-
list(
A = list(structure(
c(0.567755037123148, 0, 0, 1.1870201935945),
.Dim = c(2L, 2L)
)),
nVec = structure(10, .Dim = c(1L, 1L)),
Cxxk = list(structure(
c(
739.129405647622,
671.040583460732,
671.040583460732,
618.754338945564
),
.Dim = c(2L, 2L)
)),
Cxyk = list(structure(
c(-18.5170828875512, -16.5748393456787),
.Dim = 2:1
)),
Cyyk = list(structure(2.4786991560888, .Dim = c(
1L,
1L
))),
Cytytk = list(structure(
c(
10, 0.787438922114998, 0.787438922114998,
2.4786991560888
),
.Dim = c(2L, 2L)
)),
Cxtytk = list(structure(
c(
-57.5402230447872,
-54.6677145995824,
-18.5170828875512,
-16.5748393456787
),
.Dim = c(
2L,
2L
)
)),
CxL1k = list(structure(
c(-59.5168204264758, -54.6093504204781),
.Dim = 2:1
)),
Cxmyk = list(structure(
c(
-21.0952527723962,
-14.6807011202188
),
.Dim = 2:1
)),
sumCxmyk = structure(c(
-21.0952527723962,
-14.6807011202188
), .Dim = 2:1),
sumCyyk = structure(3.6657193496833, .Dim = c(
1L,
1L
))
)
EvaluateProposalPsy(hparam, thetaYList, CxyList, constraint, thetaYList@psy, m, p, qVec, delta)
An S4 class to represent a Hyper parameter.
Description
An S4 class to represent a Hyper parameter.
Slots
alpha1A numeric value
alpha2A numeric value
deltaA numeric value
ggammaA numeric value
bbetaA numeric value
Examples
new("Hparam", alpha1 = 1, alpha2 = 2, bbeta = 3, delta = 4, ggamma = 5)
MstepRJMCMCupdate
Description
MstepRJMCMCupdate
Usage
MstepRJMCMCupdate(X, muBar, p, thetaYList, ZOneDim, hparam, hparamInit,
qVec, qnew, dVec, sVec, constraint, clusInd, mVec, Mind)
Arguments
X |
X in MstepRJMCMCupdate |
muBar |
muBar |
p |
p |
thetaYList |
thetaYList |
ZOneDim |
ZOneDim |
hparam |
hparam |
hparamInit |
hparamInit |
qVec |
qVec |
qnew |
qnew |
dVec |
dVec |
sVec |
sVec |
constraint |
constraint |
clusInd |
clusInd |
mVec |
mVec |
Mind |
Mind |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 2
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
qnew <- 1
dVec <- c(1, 1, 1)
sVec <- c(1, 1, 1)
constraint <- c(0, 0, 0)
clusInd <- rep(1, m)
Mind <- "BD"
mVec <- c(1, m)
MstepRJMCMCupdate(
X,
muBar,
p,
thetaYList,
ZOneDim,
hparam,
hparamInit,
qVec,
qnew,
dVec,
sVec,
constraint,
clusInd,
mVec,
Mind
)
ThetaYList-class
Description
Definiton of ThetaYList parameter sets
Slots
taoA numeric vector
psyA list value
MA list value
lambdaA list value
YA list value
VstepRJMCMCupdate
Description
VstepRJMCMCupdate
Usage
VstepRJMCMCupdate(X, muBar, p, thetaYList, ZOneDim, hparam, hparamInit,
qVec, qnew, ggamma, dVec, sVec, constraint, clusInd)
Arguments
X |
X |
muBar |
muBar |
p |
p |
thetaYList |
thetaYList |
ZOneDim |
ZOneDim |
hparam |
hparam |
hparamInit |
hparamInit |
qVec |
qVec |
qnew |
qnew |
ggamma |
ggamma |
dVec |
dVec |
sVec |
sVec |
constraint |
constraint |
clusInd |
clusInd |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
qnew <- 1
dVec <- c(1, 1, 1)
sVec <- c(1, 1, 1)
constraint <- c(0, 0, 0)
clusInd <- rep(1, m)
VstepRJMCMCupdate(
X,
muBar,
p,
thetaYList,
ZOneDim,
hparam,
hparamInit,
qVec,
qnew,
ggamma,
dVec,
sVec,
constraint,
clusInd
)
Log scale ratio calculation
Description
Log scale ratio calculation
Usage
calculateRatio(deno, nume)
Arguments
deno |
denominator. |
nume |
numerator. |
Value
result of ratio
Examples
deno <- log(1)
nume <- log(2)
#'
calculateRatio(deno, nume)
calculateVarList
Description
calculateVarList
Usage
calculateVarList(psyList, lambdaList)
Arguments
psyList |
psyList |
lambdaList |
lambdaList |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
#'
calculateVarList(thetaYList@psy, thetaYList@lambda)
changeConstraintFormat
Description
changeConstraintFormat
Usage
changeConstraintFormat(strNum)
Arguments
strNum |
strNum |
Examples
#'
changeConstraintFormat(c(0, 0, 0))
clearCurrentThetaYlist
Description
clearCurrentThetaYlist
Usage
clearCurrentThetaYlist(thetaYList, clusInd, mMax)
Arguments
thetaYList |
thetaYList |
clusInd |
clusInd |
mMax |
mMax |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
clusInd <- rep(1, m)
mMax <- 1
#'
clearCurrentThetaYlist(thetaYList, clusInd, mMax)
combineClusterPara
Description
combineClusterPara
Usage
combineClusterPara(oldList, newList, ind)
Arguments
oldList |
oldList |
newList |
newList |
ind |
ind |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
newList <- oldList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
#'
combineClusterPara(oldList, newList, 1)
evaluate Prior
Description
evaluate prior value for parameter Theta and Y.
Usage
evaluatePrior(m, p, muBar, hparam, thetaYList, ZOneDim, qVec, constraint,
clusInd)
Arguments
m |
m |
p |
p |
muBar |
mu_bar |
hparam |
hyper parameter class |
thetaYList |
theta Y list |
ZOneDim |
one dim of z |
qVec |
q vector |
constraint |
type of constraint |
clusInd |
cluster indicator vector |
Examples
m <- 20
n <- 500
p <- 10
muBar <- c(
-33.1342706763595, -35.2699639183419, 48.276928009445, 16.2370659601218,
19.0023163870536, -23.4900965314972, 37.1081269873873, 4.74944562930846,
4.6918997353449, -4.55088073255655
)
hparam <- new("Hparam",
alpha1 = 0.567755037123148, alpha2 = 1.1870201935945,
delta = 2, ggamma = 2, bbeta = 3.39466184520673
)
qVec <- c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
constraint <- c(0, 0, 0)
thetaYList <- generatePriorThetaY(m, n, p, muBar, hparam, qVec, ZOneDim, constraint)
clusInd <- rep(1, m)
#'
evaluatePrior(
m,
p,
muBar,
hparam,
thetaYList,
ZOneDim,
qVec,
constraint,
clusInd
)
evaluatePriorLambda
Description
evaluate prior value for parameter Lambda
Usage
evaluatePriorLambda(p, m, alpha2, qVec, psy, lambda, constraint, clusInd)
Arguments
p |
the number of features |
m |
the number of clusters |
alpha2 |
hyper parameter |
qVec |
the vector of the number of factors in each clusters |
psy |
parameter |
lambda |
parameter |
constraint |
the pgmm constraint, a vector of length three with binary entry. For example, c(1,1,1) means the fully constraint model |
clusInd |
cluster indicator vector |
Examples
p <- 10
m <- 20
alpha2 <- 1.18
qVec <- rep(4, m)
delta <- 2
bbeta <- 2
constraint <- c(0, 0, 0)
psy <- generatePriorPsi(
p,
m,
delta,
bbeta,
constraint
)
lambda <- generatePriorLambda(
p,
m,
alpha2,
qVec,
psy,
constraint
)
clusInd <- rep(1, m)
#'
evaluatePriorLambda(
p,
m,
alpha2,
qVec,
psy,
lambda,
constraint,
clusInd
)
evaluatePriorPsi
Description
evaluate prior value for parameter Psi
Usage
evaluatePriorPsi(psy, p, m, delta, bbeta, constraint, clusInd)
Arguments
psy |
parameter |
p |
the number of features |
m |
the number of clusters |
delta |
parameter |
bbeta |
parameter |
constraint |
parameter |
clusInd |
cluster indicator vector |
Examples
p <- 10
m <- 20
delta <- 2
bbeta <- 2
constraint <- c(0, 0, 0)
psy <- generatePriorPsi(
p,
m,
delta,
bbeta,
constraint
)
clusInd <- rep(1, m)
#'
evaluatePriorPsi(
psy,
p,
m,
delta,
bbeta,
constraint,
clusInd
)
generatePriorLambda
Description
evaluate prior value for parameter Lambda
Usage
generatePriorLambda(p, m, alpha2, qVec, psy, constraint)
Arguments
p |
the number of features |
m |
the number of clusters |
alpha2 |
hyper parameter |
qVec |
parameter |
psy |
parameter |
constraint |
parameter |
Examples
p <- 10
m <- 20
alpha2 <- 1.18
qVec <- rep(4, m)
delta <- 2
bbeta <- 2
constraint <- c(0, 0, 0)
psy <- generatePriorPsi(
p,
m,
delta,
bbeta,
constraint
)
#'
generatePriorLambda(
p,
m,
alpha2,
qVec,
psy,
constraint
)
generatePriorPsi
Description
generate prior value for parameter Psi
Usage
generatePriorPsi(p, m, delta, bbeta, constraint)
Arguments
p |
the number of features |
m |
the number of clusters |
delta |
hyperparameters |
bbeta |
hyperparameters |
constraint |
the pgmm constraint, a vector of length three with binary entry. For example, c(1,1,1) means the fully constraint model |
Examples
p <- 10
m <- 20
delta <- 2
bbeta <- 2
constraint <- c(0, 0, 0)
generatePriorPsi(
p,
m,
delta,
bbeta,
constraint
)
PriorThetaY list
Description
generate prior value for parameter Theta and Y.
Usage
generatePriorThetaY(m, n, p, muBar, hparam, qVec, ZOneDim, constraint)
Arguments
m |
the number of cluster |
n |
sample size |
p |
number of covariates |
muBar |
parameter |
hparam |
hyperparameters |
qVec |
the vector of the number of factors in each clusters |
ZOneDim |
ZOneDim |
constraint |
constraint |
Examples
m <- 20
n <- 500
p <- 10
muBar <- c(
-33.1342706763595, -35.2699639183419, 48.276928009445, 16.2370659601218,
19.0023163870536, -23.4900965314972, 37.1081269873873, 4.74944562930846,
4.6918997353449, -4.55088073255655
)
hparam <- new("Hparam",
alpha1 = 0.567755037123148, alpha2 = 1.1870201935945,
delta = 2, ggamma = 2, bbeta = 3.39466184520673
)
qVec <- c(4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
constraint <- c(0, 0, 0)
#'
generatePriorThetaY(m, n, p, muBar, hparam, qVec, ZOneDim, constraint)
getIndThetaY
Description
getIndThetaY
Usage
getIndThetaY(thetaYList, Ind)
Arguments
thetaYList |
thetaYList |
Ind |
Ind |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 2
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
#'
getIndThetaY(thetaYList, 1)
getRemovedIndThetaY
Description
getRemovedIndThetaY
Usage
getRemovedIndThetaY(thetaYList, Ind)
Arguments
thetaYList |
thetaYList |
Ind |
Ind |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 2
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new("ThetaYList", tao = c(0.90162050961987, 0.0983794903801295),
psy = list(structure(c(3.68472841602225, 0, 0, 8.34691978354054),
.Dim = c(2L, 2L)), structure(c(0.785011896130842, 0, 0, 1.19022383323437),
.Dim = c(2L, 2L))), M = list(structure(c(
2.96424305287004,
1.08454861414306
), .Dim = 1:2), structure(c(
-0.232625450433964,
0.984505960868685
), .Dim = 1:2)), lambda = list(structure(c(
-0.964026624054337,
0.89378616732449
), .Dim = 2:1), structure(c(
0.533334148228635,
-1.80033696090263
), .Dim = 2:1)), Y = list(structure(c(
-0.15346475266988,
1.6584112693271, 0.409294936277862, -1.46628591247549, -0.532753243163142,
-0.332143130316749, 0.307558110800446, -0.525374243612587, 0.527667526535661,
0.748193650431916
), .Dim = c(1L, 10L)), structure(c(
0.571325118638535,
0.542462985882966, 0.559971315637159, -1.73905343105432, -0.583549598471542,
1.71264245945391, -0.327119395945831, 1.02464651767821, -1.11462280255215,
0.81095592501554
), .Dim = c(1L, 10L))))
Ind <- 1
#'
getRemovedIndThetaY(thetaYList, Ind)
getThetaYWithEmpty
Description
getThetaYWithEmpty
Usage
getThetaYWithEmpty(NEthetaYList, clusInd)
Arguments
NEthetaYList |
NEthetaYList |
clusInd |
clusInd |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
clusInd <- rep(1, m)
getThetaYWithEmpty(thetaYList, clusInd)
Tool for vector to matrix
Description
Tool for vector to matrix
Usage
getZmat(ZOneDim, m, n)
Arguments
ZOneDim |
a vector. |
m |
the number of cluster. |
n |
sample size. |
Value
adjacency matrix
Examples
m <- 20
n <- 500
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
#'
getZmat(ZOneDim, m, n)
getmode
Description
getmode
Usage
getmode(v)
Arguments
v |
v |
Examples
#'
getmode(c(1, 1, 2, 3))
likelihood
Description
likelihood
Usage
likelihood(thetaYList, ZOneDim, qqVec, muBar, X)
Arguments
thetaYList |
thetaYList |
ZOneDim |
ZOneDim |
qqVec |
qqVec |
muBar |
muBar |
X |
X |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
#'
likelihood(thetaYList, ZOneDim, qVec, muBar, X)
Convert list of string to vector of string
Description
Convert list of string to vector of string
Usage
listToStrVec(stringList)
Arguments
stringList |
list of string |
Value
vector of string
Examples
stringList <- list("abc")
#'
listToStrVec(stringList)
bpgmm Model-Based Clustering Using Baysian PGMM Carries out model-based clustering using parsimonious Gaussian mixture models. MCMC are used for parameter estimation. The RJMCMC is used for model selection.
Description
bpgmm Model-Based Clustering Using Baysian PGMM Carries out model-based clustering using parsimonious Gaussian mixture models. MCMC are used for parameter estimation. The RJMCMC is used for model selection.
Usage
pgmmRJMCMC(X, mInit, mVec, qnew, delta = 2, ggamma = 2, burn = 20,
niter = 1000, constraint = C(0, 0, 0), dVec = c(1, 1, 1),
sVec = c(1, 1, 1), Mstep = 0, Vstep = 0, SCind = 0)
Arguments
X |
the observation matrix with size p * m |
mInit |
the number of initial clusters |
mVec |
the range of the number of clusters |
qnew |
the number of factor for a new cluster |
delta |
scaler hyperparameters |
ggamma |
scaler hyperparameters |
burn |
the number of burn in iterations |
niter |
the number of iterations |
constraint |
the pgmm initial constraint, a vector of length three with binary entry. For example, c(1,1,1) means the fully constraint model |
dVec |
a vector of hyperparameters with length three, shape parameters for alpha1, alpha2 and bbeta respectively |
sVec |
sVec a vector of hyperparameters with length three, rate parameters for alpha1, alpha2 and bbeta respectively |
Mstep |
the indicator of whether do model selection on the number of clusters |
Vstep |
the indicator of whether do model selection on variance structures |
SCind |
the indicator of whether use split/combine step in Mstep |
Examples
library("fabMix")
library("mclust")
library("pgmm")
library("mvtnorm")
library("mcmcse")
library("MASS")
library("gtools")
n <- 500
p <- 10
q <- 4
K <- 10
nsim <- 10
burn <- 20
qnew <- 4
Mstep <- 1
Vstep <- 1
constraint <- c(0, 0, 0)
mInit <- 20
mVec <- c(1, 20)
X <- t(simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K, n = n, q = q, p = p, sINV_values = 1 / ((1:p))
)$data)
pgmmRJMCMC(X,
mInit, mVec, qnew,
niter = nsim, burn = burn,
constraint = constraint, Mstep = Mstep, Vstep = Vstep
)
stayMCMCupdate
Description
stayMCMCupdate
Usage
stayMCMCupdate(X, thetaYList, ZOneDim, hparam, qVec, qnew, dVec, sVec,
constraint, clusInd)
Arguments
X |
X |
thetaYList |
thetaYList |
ZOneDim |
ZOneDim |
hparam |
hparam |
qVec |
qVec |
qnew |
qnew |
dVec |
dVec |
sVec |
sVec |
constraint |
constraint |
clusInd |
clusInd |
Examples
#'
set.seed(110)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 2
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new("ThetaYList", tao = c(0.90162050961987, 0.0983794903801295),
psy = list(structure(c(3.68472841602225, 0, 0, 8.34691978354054),
.Dim = c(2L, 2L)), structure(c(0.785011896130842, 0, 0, 1.19022383323437),
.Dim = c(2L, 2L))), M = list(structure(c(
2.96424305287004,
1.08454861414306
), .Dim = 1:2), structure(c(
-0.232625450433964,
0.984505960868685
), .Dim = 1:2)), lambda = list(structure(c(
-0.964026624054337,
0.89378616732449
), .Dim = 2:1), structure(c(
0.533334148228635,
-1.80033696090263
), .Dim = 2:1)), Y = list(structure(c(
-0.15346475266988,
1.6584112693271, 0.409294936277862, -1.46628591247549, -0.532753243163142,
-0.332143130316749, 0.307558110800446, -0.525374243612587, 0.527667526535661,
0.748193650431916
), .Dim = c(1L, 10L)), structure(c(
0.571325118638535,
0.542462985882966, 0.559971315637159, -1.73905343105432, -0.583549598471542,
1.71264245945391, -0.327119395945831, 1.02464651767821, -1.11462280255215,
0.81095592501554
), .Dim = c(1L, 10L))))
qnew <- 1
dVec <- c(1, 1, 1)
sVec <- c(1, 1, 1)
constraint <- c(0, 0, 0)
clusInd <- rep(1, m)
stayMCMCupdate(
X,
thetaYList,
ZOneDim,
hparam,
qVec,
qnew,
dVec,
sVec,
constraint,
clusInd
)
sumerizeZ
Description
sumerizeZ
Usage
sumerizeZ(Zlist, index = 1:length(Zlist))
Arguments
Zlist |
Zlist |
index |
index |
Examples
Zlist <- list(c(1, 2, 3), c(3, 2, 1), c(2, 2, 2))
#'
sumerizeZ(Zlist)
summerizePgmmRJMCMC
Description
summerizePgmmRJMCMC
Usage
summerizePgmmRJMCMC(pgmmResList, trueCluster = NULL)
Arguments
pgmmResList |
result list from pgmmRJMCMC |
trueCluster |
true cluster allocation |
Examples
library("fabMix")
library("mclust")
library("pgmm")
library("mvtnorm")
library("mcmcse")
library("MASS")
library("gtools")
n <- 50
p <- 10
q <- 4
K <- 10
syntheticDataset <- simData(
sameLambda = TRUE, sameSigma = TRUE, K.true = K, n = n, q = q, p = p,
sINV_values = 1 / ((1:p))
)
nsim <- 5
burn <- 0
X <- t(syntheticDataset$data)
qnew <- 4
Mstep <- 1
Vstep <- 1
constraint <- c(0, 0, 0)
mInit <- 20
mVec <- c(1, 20)
res <- pgmmRJMCMC(X, mInit, mVec, qnew,
niter = nsim, burn = burn, constraint = constraint,
Mstep = Mstep, Vstep = Vstep
)
summerizePgmmRJMCMC(res, syntheticDataset$class)
Title
Description
Title
Usage
toEthetaYlist(NEthetaYList, NEZOneDim, qnew, clusInd)
Arguments
NEthetaYList |
NEthetaYList |
NEZOneDim |
NEZOneDim |
qnew |
qnew |
clusInd |
clusInd |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
clusInd <- rep(1, m)
qnew <- 1
toEthetaYlist(thetaYList, ZOneDim, qnew, clusInd)
toNEthetaYlist
Description
toNEthetaYlist
Usage
toNEthetaYlist(thetaYList, ZOneDim, qVec, clusInd)
Arguments
thetaYList |
thetaYList |
ZOneDim |
ZOneDim |
qVec |
qVec |
clusInd |
clusInd |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
clusInd <- rep(1, m)
toNEthetaYlist(thetaYList, ZOneDim, qVec, clusInd)
Update posterior theta Y list
Description
Update posterior theta Y list
Usage
updatePostThetaY(m, n, p, hparam, thetaYList, ZOneDim, qVec, constraint, X,
ggamma)
Arguments
m |
the number of clusters. |
n |
the number of observations. |
p |
the number of variables |
hparam |
hyper parameters |
thetaYList |
theta Y list |
ZOneDim |
ZOneDim |
qVec |
qVec |
constraint |
constraint |
X |
X |
ggamma |
ggamma |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
constraint <- c(0, 0, 0)
#'
updatePostThetaY(m, n, p, hparam, thetaYList, ZOneDim, qVec, constraint, X, ggamma)
updatePostZ
Description
updatePostZ
Usage
updatePostZ(X, m, n, thetaYList)
Arguments
X |
X |
m |
m |
n |
n |
thetaYList |
thetaYList |
Examples
set.seed(100)
n <- 10
p <- 2
q <- 1
K <- 2
m <- 1
muBar <- c(0, 0)
qVec <- c(1, 1)
constraint <- c(0, 0, 0)
X <- t(
fabMix::simData(
sameLambda = TRUE,
sameSigma = TRUE,
K.true = K,
n = n,
q = q,
p = p,
sINV_values = 1 / ((1:p))
)$data
)
hparam <- new(
"Hparam",
alpha1 = 0.567755037123148,
alpha2 = 1.1870201935945,
delta = 2,
ggamma = 2,
bbeta = 3.39466184520673
)
ZOneDim <- sample(seq_len(m), n, replace = TRUE)
thetaYList <-
new(
"ThetaYList",
tao = 0.366618687752634,
psy = list(structure(
c(
4.18375613018654,
0, 0, 5.46215996830771
),
.Dim = c(2L, 2L)
)),
M = list(structure(
c(
3.27412045866392,
-2.40544145363349
),
.Dim = 1:2
)),
lambda = list(structure(
c(
2.51015961514781,
-0.0741189919182549
),
.Dim = 2:1
)),
Y = list(structure(
c(
-0.244239011725104,
-0.26876172736886,
0.193431511203083,
0.41624466812811,
-0.54581548068437,
-0.0479517628308146,
-0.633383997203325,
0.856855296613208,
0.792850576988512,
0.268208848994559
),
.Dim = c(1L, 10L)
))
)
updatePostZ(X, m, n, thetaYList)