update the output to have the classification
[valse.git] / pkg / R / plot_valse.R
index 05963c8..120196d 100644 (file)
@@ -2,18 +2,21 @@
 #'
 #' It is a function which plots relevant parameters
 #'
-#'
+#' @param model the model constructed by valse procedure
+#' @param n sample size
 #' @return several plots
 #'
 #' @examples TODO
 #'
 #' @export
 #'
-plot_valse = function(){
+plot_valse = function(model,n){
   require("gridExtra")
   require("ggplot2")
   require("reshape2")
+  require("cowplot")
   
+  K = length(model$pi)
   ## regression matrices
   gReg = list()
   for (r in 1:K){
@@ -45,23 +48,14 @@ plot_valse = function(){
   print(gCov )
   
   ### proportions
-  Gam = matrix(0, ncol = K, nrow = n)
-  gam  = Gam
-  for (i in 1:n){
-    for (r in 1:K){
-      sqNorm2 = sum( (Y[i,]%*%model$rho[,,r]-X[i,]%*%model$phi[,,r])^2 )
-      Gam[i,r] = model$pi[r] * exp(-0.5*sqNorm2)* det(model$rho[,,r])
-    }
-    gam[i,] = Gam[i,] / sum(Gam[i,])
-  }
-  affec = apply(gam, 1,which.max)
   gam2 = matrix(NA, ncol = K, nrow = n)
   for (i in 1:n){
-    gam2[i, ] = c(gam[i, affec[i]], affec[i])
+    gam2[i, ] = c(model$Gam[i, model$affec[i]], model$affec[i])
   }
+  
   bp <- ggplot(data.frame(gam2), aes(x=X2, y=X1, color=X2, group = X2)) +
-    geom_boxplot() + theme(legend.position = "none")
-  print(bp + background_grid(major = "xy", minor = "none"))
+    geom_boxplot() + theme(legend.position = "none")+ background_grid(major = "xy", minor = "none")
+  print(bp )
   
   ### Mean in each cluster
   XY = cbind(X,Y)