Veamos como anda el clustering


In [1]:
#Primero leemos los datos
dat <- read.table('clean_cat.dat', header = TRUE)
summary(dat)


       ra             dec                               Id            J        
 Min.   :176.1   Min.   :-64.66   VVV-J114419.03-603025.9:  1   Min.   :13.63  
 1st Qu.:178.2   1st Qu.:-64.30   VVV-J114428.39-603158.4:  1   1st Qu.:15.86  
 Median :205.1   Median :-63.90   VVV-J114431.78-601626.8:  1   Median :16.55  
 Mean   :196.1   Mean   :-62.78   VVV-J114433.70-602742.8:  1   Mean   :16.36  
 3rd Qu.:206.9   3rd Qu.:-60.51   VVV-J114450.83-603356.9:  1   3rd Qu.:17.01  
 Max.   :207.7   Max.   :-59.72   VVV-J114453.09-601805.8:  1   Max.   :18.02  
                                  (Other)                :566                  
       H               Ks              J2              H2       
 Min.   :13.22   Min.   :13.18   Min.   :13.81   Min.   :13.29  
 1st Qu.:15.40   1st Qu.:15.23   1st Qu.:15.94   1st Qu.:15.42  
 Median :16.07   Median :15.86   Median :16.55   Median :16.06  
 Mean   :15.86   Mean   :15.63   Mean   :16.39   Mean   :15.84  
 3rd Qu.:16.50   3rd Qu.:16.23   3rd Qu.:16.98   3rd Qu.:16.43  
 Max.   :17.31   Max.   :16.65   Max.   :17.99   Max.   :17.32  
                                                                
      Ks2             R1.2             C              eps        
 Min.   :13.11   Min.   :1.010   Min.   :2.100   Min.   :0.0100  
 1st Qu.:15.14   1st Qu.:1.117   1st Qu.:2.587   1st Qu.:0.2300  
 Median :15.78   Median :1.285   Median :2.940   Median :0.3500  
 Mean   :15.59   Mean   :1.522   Mean   :2.966   Mean   :0.3498  
 3rd Qu.:16.17   3rd Qu.:1.623   3rd Qu.:3.300   3rd Qu.:0.4600  
 Max.   :16.73   Max.   :4.870   Max.   :4.440   Max.   :0.7900  
                                                                 
       n           visual   
 Min.   :0.300   False:482  
 1st Qu.:2.960   True : 90  
 Median :4.455              
 Mean   :4.725              
 3rd Qu.:6.492              
 Max.   :9.790              
                            

In [2]:
#Guardamos los datos q no vamos a usar para claisificar y los sacamos de la tabla
names <- dat$Id
visual <- dat$visual
ra <- dat$ra
dec <- dat$dec

dat <- dat[,-c(1,2,3,14)]

In [3]:
library('astrolibR')
gal.coord <- glactc(ra,dec, j = 1,, degree = TRUE, year = 2000)
l <- gal.coord$gl
b <- gal.coord$gb

In [10]:
#Hagamos un clustering!

library('mclust') #Cargamos la libreria

mc <- Mclust(dat, G = 1:2) #Probamos con una mixtura de gaussianas con 2 componentes como maximo

In [11]:
#Hagamos un par de graficos para ver como quedo
plot(mc,what='classification')



In [12]:
#Veamos si alguna de los clusters que encontro el mclust se corresponde con las confirmadas visualmente o las no 
#  confirmadas visualmente.

class <- mc$classification

dat_aux <- data.frame(dat, visual, class)

dat1 <- subset(dat_aux, dat_aux$class == 1)
dat2 <- subset(dat_aux, dat_aux$class == 2)

print('Cluster 1')
table(dat1$visual)
print('Cluster 2')
table(dat2$visual)


[1] "Cluster 1"
False  True 
  184    23 
[1] "Cluster 2"
False  True 
  298    67 

In [15]:
#Probemos ahora con un par mas de componentes

mc <- Mclust(dat, G = 1:5) #Probamos con una mixtura de gaussianas con 5 componentes como maximo
mc$G


5

In [14]:
#Hagamos un par de graficos para ver como quedo
plot(mc,what='classification')