#rm(list=ls(all=TRUE))
# ==================================================================================
if ( FALSE ) {
# ==================================================================================
# set working directory
oldDir <- getwd()
curDir <- tempdir()
setwd(curDir)
if ( !file.exists("bayesMCClust-wd") ) dir.create("bayesMCClust-wd")
setwd("bayesMCClust-wd")
myOutfilesDir <- "dmClust-Example-Outfiles"
# load data
data(MCCExampleData)
# function call
system.time(
outList <- dmClust( # parameter lists (every four) must be complete!
Data = list( dataFile=MCCExampleData$Njk.i,
storeDir=myOutfilesDir,
mccFile=MCCExampleData$somePrior),
Prior = list( H=2, # sample(2:5, 1), # 3
alpha0=4,
a0=1,
alpha=1,
N0=10,
isPriorNegBin=FALSE,
mccAsPrior=TRUE,
xiPooled=FALSE,
persPrior=0.7),
Initial = list( mccUse=FALSE,
pers=1/3 ),
Mcmc = list( kNo=2,
M=100,
M0=20,
mOut=5,
mSave=50,
showAcc=TRUE,
monitor=FALSE,
seed=sample(1:100000, 1) # 12345
)
)
)
str(outList)
#outFileName
#results <- load(outFileName)
#results
if (outList$Prior$H > 1) {
apply(outList$xi_h_m[,,,seq(outList$Mcmc$M0, outList$Mcmc$M, 1)], c(1,2,3), mean)
} else {
apply(outList$xi_h_m[,,,seq(outList$Mcmc$M0,outList$Mcmc$M,1)], c(1, 2), mean)
}
allocList <- calcAllocationsDMC(outList, thin=1, maxi=50) # , plotPathsForEta=TRUE
str(allocList)
myTransProbs <- calcTransProbs(outList, estGroupSize=allocList$estGroupSize, thin=1,
printXtable=FALSE, printSd=FALSE, printTogether=TRUE )
# grLabels=paste("Group", 1:Prior$H), plotPaths=TRUE
str(myTransProbs)
myTransList <- plotTransProbs(outList, estTransProb=myTransProbs$estTransProb,
estGroupSize=allocList$estGroupSize, class=allocList$class, plotPooled=TRUE,
plotContTable=TRUE, printContTable=TRUE, plotContPooled=TRUE)
# , grLabels=paste("Group", 1:Prior$H)
str(myTransList)
(equiDist <- calcEquiDist(outList, thin=1, maxi=50))
# , printEquiDist=TRUE, plotEquiDist=TRUE, grLabels=paste("Group", 1:Prior$H)
myVariation <- calcVariationDMC(outList, thin=1, maxi=50)
# , printVarE=TRUE, printUnobsHet=TRUE, printUnobsHetSd=TRUE,
# printUnobsHetAll=TRUE, printAllTogether=TRUE, grLabels=paste("Group", 1:Prior$H)
str(myVariation)
myPars <- calcParMatDMC(outList, thin=1)
# , grLabels=paste("Group", 1:Prior$H), printPar=TRUE
str(myPars)
myLongRunDistList <- calcLongRunDist(outList,
initialStateData=MCCExampleData$initialState,
class=allocList$class, equiDist=equiDist, thin=1, maxi=5)
# , printLongRunDist=TRUE, , grLabels=paste("Group", 1:Prior$H)
str(myLongRunDistList)
myTypicalMembs <- plotTypicalMembers(outList, moreTypMemb=c(10,13,17,20,23,27,30),
myObsList=MCCExampleData$obsList, classProbs=allocList$classProbs)
# , noTypMemb=7, moreTypMemb=c(10,25,50,100,200,500,1000)
str(myTypicalMembs)
plotScatter(outList, thin=1, xi11=c(1,1), xi12=c(2,2), xi21=c(2,2),
xi22=c(3,3), xi31=c(1,1), xi32=c(3,3) )
mySegPower <- calcSegmentationPower(outList, classProbs=allocList$classProbs,
class=allocList$class, printXtable=TRUE, calcSharp=TRUE, printSharpXtable=TRUE )
# , grLabels=paste("Group", 1:Prior$H)
str(mySegPower)
myEntropy <- calcEntropy(outList, classProbs=allocList$classProbs,
class=allocList$class, printXtable=TRUE )
# , grLabels=paste("Group", 1:Prior$H)
myEntropy
plotLikeliPaths(outList, from=10, by=1 )
myNumEffTables <- calcNumEff( outList, thin=1, printXi=TRUE, printE=TRUE,
printBeta=TRUE, grLabels=paste("Group", 1:outList$Prior$H) )
str(myNumEffTables)
myMSCrits <- calcMSCritDMC(workDir=myOutfilesDir, myLabel="dmClust-Example",
myN0=paste("N0 =",outList$Prior$N0),
whatToDoList=c("postMode", "approxML", "approxMCL") )
str(myMSCrits)
setwd(oldDir)
} # end if
# ==================================================================================
# ==================================================================================
# ==================================================================================
# ==================================================================================
if ( FALSE ) {
# ==================================================================================
rm(list=ls(all=TRUE))
# set working directory
oldDir <- getwd()
curDir <- tempdir()
setwd(curDir)
if ( !file.exists("bayesMCClust-wd") ) dir.create("bayesMCClust-wd")
setwd("bayesMCClust-wd")
myOutfilesDir <- "dmClustExtended-Example-Outfiles"
# load data
data(MCCExtExampleData)
if (!is.element("MCCExtExampleData$covariates", search())) {
attach(MCCExtExampleData$covariates)
}
# ==================================================================================
groupNr <- 2 # sample(2:6, 1) # 3
# ==================================================================================
results <- kmeans( log( MCCExtExampleData$NjkiMat + 0.5 ) , groupNr, nstart=2)
# ==================================================================================
require(nnet, quietly = TRUE)
H <- groupNr
X = cbind( intercept=1, alrateBezNew, unskilled, skilled, angStart )
N <- dim(X)[1]
mX <- data.frame( cbind(group=as.factor( results$cluster ), X[,-1],
matrix(sample(1:H,H*N,replace=TRUE),N,H)) )
colnames(mX)[6:(6+groupNr-1)] <-
c( "as.1", "as.2", "as.3", "as.4", "as.5", "as.6" )[1:groupNr]
tempMNom <- multinom(group ~ alrateBezNew+ unskilled+ skilled+ angStart,
data=as.data.frame(mX))
toStartBeta <- t(rbind(0,coef( tempMNom )))
outList <- dmClustExtended(
Data = list( dataFile=MCCExtExampleData$Njk.i,
storeDir=myOutfilesDir,
mccFile=NULL,
X = cbind(intercept=1, alrateBezNew, unskilled, skilled, angStart )),
Prior = list( H=groupNr,
a0=1,
alpha=1,
N0=10,
isPriorNegBin=FALSE,
mccAsPrior=FALSE,
xiPooled=FALSE,
persPrior=0.7,
betaPrior = "informative", # N(0,1)
betaPriorMean = 0,
betaPriorVar = 1),
Initial = list( mccUse=FALSE,
pers=1/3,
S.i.start = results$cluster,
Beta.start = toStartBeta ),
Mcmc = list( kNo=2,
M=100,
M0=50,
mOut=10,
mSave=50,
showAcc=TRUE,
monitor=FALSE,
seed=sample(1:100000, 1) # 564847
)
)
str(outList)
#outFileName <- outList$workspaceFile
#outFileName
#results <- load(outFileName)
#results
if (outList$Prior$H > 1) {
apply( outList$xi_h_m[,,,seq(outList$Mcmc$M0, outList$Mcmc$M, 1)], c(1,2,3), mean)
} else {
apply(outList$xi_h_m[,,,seq(outList$Mcmc$M0,outList$Mcmc$M,1)], c(1, 2), mean)
}
allocList <- calcAllocationsDMCExt(outList, thin=1, maxi=50)
str(allocList)
myTransProbs <- calcTransProbs(outList, estGroupSize=allocList$estGroupSize, thin=1,
printXtable=FALSE, printSd=FALSE, printTogether=TRUE )
# grLabels=paste("Group", 1:Prior$H), plotPaths=TRUE
str(myTransProbs)
myTransList <- plotTransProbs(outList, estTransProb=myTransProbs$estTransProb,
estGroupSize=allocList$estGroupSize, class=allocList$class, plotPooled=TRUE,
plotContTable=TRUE, printContTable=TRUE, plotContPooled=TRUE)
# , grLabels=paste("Group", 1:Prior$H)
str(myTransList)
(equiDist <- calcEquiDist(outList, thin=1, maxi=50))
# , printEquiDist=TRUE, plotEquiDist=TRUE, grLabels=paste("Group", 1:Prior$H)
myVariation <- calcVariationDMC(outList, thin=1, maxi=50)
# , printVarE=TRUE, printUnobsHet=TRUE, printUnobsHetSd=TRUE,
# printUnobsHetAll=TRUE, printAllTogether=TRUE, grLabels=paste("Group", 1:Prior$H)
str(myVariation)
myPars <- calcParMatDMC(outList, thin=1)
# , grLabels=paste("Group", 1:Prior$H), printPar=TRUE
str(myPars)
myRegCoeffs <- calcRegCoeffs(outList, hBase=2, thin=1)
#, M0=Mcmc$M0, grLabels=paste("Group", 1:Prior$H), printHPD=TRUE,
# plotPaths=TRUE, plotACFs=TRUE
str(myRegCoeffs)
myLongRunDistList <- calcLongRunDist(outList, initialStateData=initialState,
class=allocList$class, equiDist=equiDist, maxi=2)
# , printLongRunDist=TRUE
str(myLongRunDistList)
myTypicalMembs <- plotTypicalMembers(outList, myObsList=MCCExtExampleData$obsList,
classProbs=allocList$classProbs)
# , noTypMemb=7, moreTypMemb=c(10,25,50,100,200,500,1000)
str(myTypicalMembs)
plotScatter(outList, thin=1, xi11=c(1,1), xi12=c(2,2), xi21=c(2,2),
xi22=c(3,3), xi31=c(1,1), xi32=c(3,3) )
mySegPower <- calcSegmentationPower(outList, classProbs=allocList$classProbs,
class=allocList$class, printXtable=TRUE, calcSharp=TRUE,
printSharpXtable=TRUE )
# , grLabels=paste("Group", 1:Prior$H)
str(mySegPower)
myEntropy <- calcEntropy(outList, classProbs=allocList$classProbs,
class=allocList$class, printXtable=TRUE )
# , grLabels=paste("Group", 1:Prior$H)
myEntropy
plotLikeliPaths(outList, from=10, by=1 )
myNumEffTables <- calcNumEff( outList, thin=1, printXi=TRUE, printE=TRUE,
printBeta=TRUE, grLabels=paste("Group", 1:outList$Prior$H) )
str(myNumEffTables)
myMSCrits <- calcMSCritDMCExt(workDir=myOutfilesDir, myLabel="dmClustExtended-Example",
myN0=paste("N0 =",outList$Prior$N0),
whatToDoList=c("postMode", "approxML", "approxMCL") )
str(myMSCrits)
setwd(oldDir)
# ==================================================================================
if (is.element("MCCExtExampleData$covariates", search())) {
detach(MCCExtExampleData$covariates)
}
# ==================================================================================
} # end if
# ==================================================================================
# ==================================================================================Run the code above in your browser using DataLab