Clean

rm(list = ls()); graphics.off()

Set R packages path and load packages

.libPaths("C:/Rpack")
library(SensoMineR)
## Loading required package: FactoMineR
library(openxlsx)

Import data

sorting <- read.table("perfumes_sorting.csv", header = T, sep = "\t", row.names = 1)
rownames(sorting)[4] <- "Cinema"

run MCA using fast func.

res.fast <- fast(sorting, sep.words = ";", graph = F)
## Number of different words :  177

output

res.fast$ind #ind
## $coord
##                        Dim 1       Dim 2       Dim 3        Dim 4       Dim 5
## Angel              0.3954526  1.51711384  0.17272573 -0.865171134 -0.17817147
## Aromatics Elixir   1.4836495 -0.22323266 -0.21394964 -0.550797798 -0.21623535
## Chanel N5          1.3843400 -0.91069536  1.38741051  0.726426471 -0.01251468
## Cinema            -0.4476777  0.41025707  0.07157530  0.477447918  0.13971909
## Coco Mademoiselle -0.6544809  0.26099364  0.02100746  0.807177380  0.47342100
## J'adore EP        -0.7067233 -0.62592308  0.17146765 -0.694520407 -0.22017087
## J'adore ET        -0.6981726 -0.63594939  0.19467690 -0.508679141 -0.44473781
## L'instant         -0.4703961  0.13728699 -0.58883593  1.155987278 -1.08229473
## Lolita Lempicka   -0.1601233  1.39968241  0.69870786 -0.008770055  0.09073011
## Pleasures         -0.7233064 -0.85839579 -0.11835628 -0.611310184 -0.34486916
## Pure Poison       -0.4326015 -0.41923774 -0.15796241 -0.051669157  1.55758168
## Shalimar           1.0300395 -0.05189995 -1.63846714  0.123878830  0.23754219
## 
## $contrib
##                        Dim 1       Dim 2        Dim 3        Dim 4        Dim 5
## Angel              1.9775586 32.38669203  0.529741538 15.188224203  0.729840419
## Aromatics Elixir  27.8357675  0.70120616  0.812780154  6.155840356  1.074991424
## Chanel N5         24.2340558 11.67015147 34.179045024 10.707455546  0.003600734
## Cinema             2.5343789  2.36833104  0.090965413  4.625460377  0.448810598
## Coco Mademoiselle  5.4166960  0.95849555  0.007836047 13.220288193  5.152839843
## J'adore EP         6.3159595  5.51279930  0.522052720  9.787527146  1.114477574
## J'adore ET         6.1640490  5.69082662  0.672943814  5.250380954  4.547363919
## L'instant          2.7981301  0.26520946  6.156566491 27.114966151 26.930392848
## Lolita Lempicka    0.3242273 27.56698439  8.668445595  0.001560657  0.189258120
## Pleasures          6.6158420 10.36824883  0.248732542  7.582740946  2.734389192
## Pure Poison        2.3665548  2.47315298  0.443054842  0.054170858 55.776757133
## Shalimar          13.4167804  0.03790217 47.667835820  0.311384612  1.297278196
## 
## $cos2
##                        Dim 1       Dim 2       Dim 3        Dim 4        Dim 5
## Angel             0.03205503 0.471784506 0.006115351 1.534304e-01 6.507042e-03
## Aromatics Elixir  0.44709871 0.010121765 0.009297451 6.162049e-02 9.497169e-03
## Chanel N5         0.33947148 0.146914269 0.340979049 9.347620e-02 2.774324e-05
## Cinema            0.05695159 0.047828528 0.001455798 6.477790e-02 5.547360e-03
## Coco Mademoiselle 0.11956998 0.019014639 0.000123190 1.818721e-01 6.256382e-02
## J'adore EP        0.16291727 0.127793938 0.009590312 1.573397e-01 1.581205e-02
## J'adore ET        0.16736990 0.138866319 0.013013097 8.884637e-02 6.791410e-02
## L'instant         0.05259447 0.004479933 0.082414068 3.176281e-01 2.784222e-01
## Lolita Lempicka   0.00565339 0.431975304 0.107644333 1.695917e-05 1.815109e-03
## Pleasures         0.14036814 0.197696565 0.003758431 1.002645e-01 3.191043e-02
## Pure Poison       0.04678044 0.043934839 0.006237288 6.673460e-04 6.064430e-01
## Shalimar          0.21205491 0.000538362 0.536557206 3.067148e-03 1.127774e-02
res.fast$textual #words to describe each product
## $Angel
##         Intern %   glob % Intern freq Glob freq      p.value    v.test
## a       8.974359 2.883625           7         28 0.009815829  2.582251
## vanilla 8.974359 3.398558           7         33 0.025461332  2.234331
## too     5.128205 1.441813           4         14 0.041487594  2.038624
## heady   5.128205 1.441813           4         14 0.041487594  2.038624
## fresh   0.000000 4.531411           0         44 0.045993545 -1.995453
## light   0.000000 4.634398           0         45 0.042123538 -2.032298
## flower  1.282051 7.826982           1         76 0.021657883 -2.296315
## 
## $`Aromatics Elixir`
##             Intern %    glob % Intern freq Glob freq       p.value    v.test
## strong     18.604651 6.2821833          16         61 5.664307e-05  4.026376
## ammonia     3.488372 0.6179197           3          6 2.206385e-02  2.289267
## unpleasant  4.651163 1.1328527           4         11 2.336585e-02  2.267399
## spicy       8.139535 3.0895984           7         30 2.523958e-02  2.237716
## sweet       1.162791 6.3851699           1         62 3.901869e-02 -2.063990
## light       0.000000 4.6343975           0         45 2.780694e-02 -2.199999
## fruit       0.000000 5.9732235           0         58 7.763543e-03 -2.662184
## 
## $`Chanel N5`
##        Intern %   glob % Intern freq Glob freq       p.value    v.test
## soap  10.588235 2.162719           9         21 0.0000489968  4.060361
## sweet  1.176471 6.385170           1         62 0.0414884843 -2.038615
## fruit  0.000000 5.973223           0         58 0.0083073661 -2.639315
## 
## $Cinema
##         Intern %   glob % Intern freq Glob freq     p.value   v.test
## vanilla 8.235294 3.398558           7         33 0.04002347 2.053507
## 
## $`Coco Mademoiselle`
##       Intern %   glob % Intern freq Glob freq     p.value   v.test
## fresh 10.25641 4.531411           8         44 0.03958366 2.058067
## 
## $`J'adore EP`
##         Intern %   glob % Intern freq Glob freq      p.value    v.test
## flower 16.470588 7.826982          14         76 0.008152803  2.645675
## fruit  11.764706 5.973223          10         58 0.048088718  1.976584
## strong  1.176471 6.282183           1         61 0.045077719 -2.003929
## 
## $`J'adore ET`
## NULL
## 
## $`L'instant`
## NULL
## 
## $`Lolita Lempicka`
##          Intern %   glob % Intern freq Glob freq       p.value    v.test
## sweet   18.390805 6.385170          16         62 8.273369e-05  3.936340
## vanilla  8.045977 3.398558           7         33 4.509772e-02  2.003742
## flower   1.149425 7.826982           1         76 1.077786e-02 -2.549820
## 
## $Pleasures
##        Intern %   glob % Intern freq Glob freq       p.value   v.test
## flower 21.62162 7.826982          16         76 0.0001490918 3.792577
## fresh  10.81081 4.531411           8         44 0.0292271363 2.180409
## 
## $`Pure Poison`
##     Intern %    glob % Intern freq Glob freq     p.value   v.test
## man 4.166667 0.9268795           3          9 0.04749318 1.981875
## 
## $Shalimar
##        Intern %   glob % Intern freq Glob freq      p.value    v.test
## old    7.228916 1.853759           6         18 0.005243368  2.791689
## flower 1.204819 7.826982           1         76 0.014728970 -2.438975
## 
## attr(,"class")
## [1] "descfreq" "list"
res.fast$descriptor
##                    Occurrence
## flower                     76
## sweet                      62
## strong                     61
## fruit                      58
## soft                       53
## light                      45
## fresh                      44
## pleasant                   34
## vanilla                    33
## spicy                      30
## a                          28
## d                          25
## c                          24
## pepper                     22
## soap                       21
## old                        18
## prickly                    17
## very                       16
## aggressive                 15
## too                        14
## musk                       14
## heady                      14
## b                          14
## acid                       13
## woman                      12
## lily-of-the-valley         12
## f                          12
## e                          12
## wood                       11
## unpleasant                 11
## perfume                    11
## discreet                   11
## hot                        10
## odor                        9
## man                         9
## classical                   9
## baby                        9
## ancient                     9
## cream                       8
## character                   8
## weak                        7
## slightly-acid               7
## shower-gel                  7
## young                       6
## skin                        6
## heavy                       6
## enveloping                  6
## bitter                      6
## ammonia                     6
## vegetable                   5
## toilet                      5
## spring                      5
## sickly                      5
## sharp                       5
## rose                        5
## refined                     5
## neutral                     5
## captivating                 5
## attractive                  5
## voluptuousness              4
## smoothness                  4
## reassuring                  4
## present                     4
## powder                      4
## plant                       4
## oriental                    4
## ivy                         4
## h                           4
## green                       4
## g                           4
## eucalyptus                  4
## disturbing                  4
## coconut                     4
## cloud                       4
## bark                        4
## average                     4
## attic                       4
## alcohol                     4
## white                       3
## weak-odor                   3
## vivid                       3
## violet                      3
## tonic                       3
## toilets                     3
## synthetic                   3
## subtle                      3
## soothing                    3
## solvent                     3
## sirup                       3
## ordinary                    3
## mysterious                  3
## muffled                     3
## moisturizing                3
## milky                       3
## milk                        3
## liquorice                   3
## intense                     3
## honeysuckle                 3
## harmony                     3
## elegant                     3
## deodorant                   3
## cake                        3
## bathroom                    3
## animal                      3
## amber                       3
## winter                      2
## wind                        2
## violent                     2
## verdure                     2
## teenage                     2
## sun                         2
## summer                      2
## savoury                     2
## old-woman                   2
## old-fashioned               2
## odors                       2
## no                          2
## natural                     2
## mature                      2
## marble                      2
## malted                      2
## make-up-remover             2
## long-lasting                2
## litchi                      2
## liked                       2
## likeable                    2
## lemon                       2
## incense                     2
## flowerb                     2
## citrus                      2
## cinnamon                    2
## chestnut                    2
## chemical                    2
## autumn                      2
## ambiance                    2
## aerial                      2
## active                      2
## a-bit-strong                2
## womans                      1
## wake-up                     1
## tonality                    1
## toilet-water                1
## strongc                     1
## strongb                     1
## stronga                     1
## repulsive                   1
## raw                         1
## people                      1
## peach                       1
## out-of-date                 1
## orange                      1
## not-enough-fresh            1
## n5                          1
## moisturizinge               1
## mint                        1
## low-quality                 1
## lily                        1
## lavender                    1
## imperceptible               1
## high-quality                1
## hands                       1
## grass                       1
## grand-mother                1
## gingerbread                 1
## flowera                     1
## eau-cologne                 1
## eau                         1
## dull                        1
## complex                     1
## cologne                     1
## chocolate                   1
## childish                    1
## chanel                      1
## breed                       1
## balanced                    1
## astringent                  1
## artificial                  1

plot

plot.fast(res.fast, axes = c(1,2), invisible = "var") #hide the verbalization

con.ellip <- fast(sorting, alpha=0.05, B=200, sep.words=";") #confidence ellipses

## Number of different words :  177

MCA plots

individual plot

res.fast$acm
## **Results of the Multiple Correspondence Analysis (MCA)**
## The analysis was performed on 12 individuals, described by 60 variables
## *The results are available in the following objects:
## 
##    name              description                       
## 1  "$eig"            "eigenvalues"                     
## 2  "$var"            "results for the variables"       
## 3  "$var$coord"      "coord. of the categories"        
## 4  "$var$cos2"       "cos2 for the categories"         
## 5  "$var$contrib"    "contributions of the categories" 
## 6  "$var$v.test"     "v-test for the categories"       
## 7  "$ind"            "results for the individuals"     
## 8  "$ind$coord"      "coord. for the individuals"      
## 9  "$ind$cos2"       "cos2 for the individuals"        
## 10 "$ind$contrib"    "contributions of the individuals"
## 11 "$call"           "intermediate results"            
## 12 "$call$marge.col" "weights of columns"              
## 13 "$call$marge.li"  "weights of rows"
plot.MCA(res.fast$acm, choix = "ind", invisible = "ind",
         cex = 0.7, col.var = "grey30")

plot for subjects S2, S24

S2.select <- grep("S2_", rownames(res.fast$acm$var$coord))
S24.select <- grep("S24_", rownames(res.fast$acm$var$coord))

plot.MCA(res.fast$acm, choix="ind", 
         selectMod=c(S2.select,S24.select),
         col.ind="grey60", col.var="grey30", cex=0.7)
## Warning: ggrepel: 11 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

ind plot with coloured groups according to S30

plot.MCA(res.fast$acm, choix="ind", invisible="var", habillage="S30")

description of each dimension

res.dimdesc <- dimdesc(res.fast$acm)

relation ber. partition of each subject and all subjects

plot.fast(res.fast, choix="group")