Tonalidades de Base no Mercado Global: Um Estudo Comparativo entre EUA, Japão, Nigéria e Índia

Pacotes

library(dplyr)
library(tidyverse)
library(psych)
library(corrplot)
library(nortest)
library(reactable)
library(ggplot2)
library(corrplot)
library(flextable)

Base de dados

shades <- read.csv("C:/Users/Mamede/Desktop/Bia/shades.csv")

Introdução

Este relatório descreve a abordagem metodológica que será utilizada na análise de dados sobre as tonalidades de maquiagem oferecidas por diferentes marcas e grupos de produtos. O foco é explorar como as variáveis hue (matiz), saturation (saturação), value (valor) e lightness (clareza) influenciam as preferências de produtos e como essas distribuições variam entre categorias. O estudo busca compreender as relações culturais e de mercado que afetam a diversidade de tons oferecidos.

Detalhamento do Método de Análise

1. Exploração Inicial dos Dados

A primeira etapa da análise consiste em realizar uma Análise Exploratória de Dados (EDA) para obter uma compreensão inicial das variáveis:

- Estatísticas descritivas: calcular média, desvio padrão, valores mínimo e máximo para as variáveis hue, saturation, value e lightness.

- Visualização de distribuições: criar histogramas e boxplots para cada uma das variáveis com o objetivo de identificar padrões gerais e potenciais outliers.

- Verificação de valores nulos: analisar a presença de dados ausentes e decidir sobre a melhor abordagem para tratamento.

result <- shades %>%
  group_by(brand) %>%
  summarise(
    media = mean(H), 
    desvio_padrao = sd(H),
    minimo = min(H),
    meadiana = median(H),
    maximo = max(H))

print(result, n = Inf)
## # A tibble: 36 × 6
##    brand            media desvio_padrao minimo meadiana maximo
##    <chr>            <dbl>         <dbl>  <int>    <dbl>  <int>
##  1 Addiction         27.1          1.85     25     27       30
##  2 Beauty Bakerie    29.2          6.22     18     29.5     45
##  3 Bharat & Doris    33.6          4.28     29     33       42
##  4 Black Opal        20.3          3.77     13     21       25
##  5 Black Up          21.8          6.41      8     23.5     30
##  6 Blue Heaven       27            4.24     24     27       30
##  7 Bobbi Brown       27.1          4.53     17     28       33
##  8 Colorbar          25.7          1.15     25     25       27
##  9 Covergirl + Olay  NA           NA        NA     NA       NA
## 10 Dior              26.8          3.37     24     25.5     32
## 11 Elsas Pro         18.7          5.12     10     20       26
## 12 Estée Lauder      26.0          3.13     20     25       33
## 13 Fenty             25.7          2.86     19     26       33
## 14 Hegai and Ester   18.8          9.44      4     20       34
## 15 House of Tara     23            5.08     14     23       29
## 16 IPSA              24.8          4.07     19     24       30
## 17 Iman              28.4          3.81     25     27.5     36
## 18 Kate              26.5          3.02     23     26       32
## 19 Kuddy             23.6          4.16     21     22       31
## 20 L'Oréal           23.8          4.37     13     24       30
## 21 Lakmé             25            4.40     20     25       30
## 22 Lancôme           25.4          4.41     14     26       32
## 23 Laws of Nature    21.6          5.76     10     23       29
## 24 Lotus Herbals     27.2          2.75     24     27.5     30
## 25 MAC               28.8          3.19     22     29       36
## 26 Make Up For Ever  20.2          6.17      5     20.5     37
## 27 Maybelline        24.7          3.97     12     24.5     32
## 28 NARS              28.9          2.60     26     28       35
## 29 Nykaa             22.8          1.79     21     23       25
## 30 Olivia            25.2          2.99     21     26       28
## 31 RMK               28.1          6.75     12     29       36
## 32 Revlon            21.5          3.78     14     21       31
## 33 Shiseido          23.8          2.32     21     23.5     27
## 34 Shu Uemera        30.9          5.19     21     30       37
## 35 Trim & Prissy     25.8          3.65     20     28       30
## 36 bareMinerals      29.3          2.44     26     29       35
result <- shades %>% group_by(brand) %>% summarise(media=mean(S),
                                         desvio_padrao=sd(S),
                                         minimo=min(S),
                                         meadiana=median(S),
                                         maximo=max(S))
print(result, n = Inf)
## # A tibble: 36 × 6
##    brand             media desvio_padrao minimo meadiana maximo
##    <chr>             <dbl>         <dbl>  <dbl>    <dbl>  <dbl>
##  1 Addiction         0.428        0.103    0.25    0.47    0.6 
##  2 Beauty Bakerie    0.415        0.201    0.12    0.4     0.77
##  3 Bharat & Doris    0.413        0.0690   0.29    0.41    0.49
##  4 Black Opal        0.54         0.0386   0.47    0.53    0.6 
##  5 Black Up          0.573        0.122    0.24    0.595   0.73
##  6 Blue Heaven       0.42         0.0141   0.41    0.42    0.43
##  7 Bobbi Brown       0.519        0.193    0.18    0.495   1   
##  8 Colorbar          0.377        0.0666   0.3     0.41    0.42
##  9 Covergirl + Olay NA           NA       NA      NA      NA   
## 10 Dior              0.288        0.0431   0.25    0.27    0.36
## 11 Elsas Pro         0.438        0.0487   0.37    0.44    0.54
## 12 Estée Lauder      0.535        0.152    0.25    0.545   0.76
## 13 Fenty             0.479        0.181    0.12    0.5     0.79
## 14 Hegai and Ester   0.625        0.0858   0.47    0.645   0.74
## 15 House of Tara     0.67         0.0789   0.52    0.68    0.76
## 16 IPSA              0.342        0.0313   0.31    0.34    0.39
## 17 Iman              0.661        0.250    0.27    0.695   0.94
## 18 Kate              0.403        0.0920   0.24    0.425   0.51
## 19 Kuddy             0.534        0.0297   0.5     0.52    0.57
## 20 L'Oréal           0.436        0.196    0.2     0.395   0.92
## 21 Lakmé             0.41         0.0516   0.35    0.41    0.47
## 22 Lancôme           0.485        0.150    0.1     0.475   0.86
## 23 Laws of Nature    0.534        0.183    0.22    0.55    0.86
## 24 Lotus Herbals     0.355        0.154    0.17    0.355   0.54
## 25 MAC               0.409        0.124    0.17    0.39    0.65
## 26 Make Up For Ever  0.351        0.0930   0.14    0.36    0.54
## 27 Maybelline        0.407        0.116    0.2     0.4     0.64
## 28 NARS              0.478        0.106    0.33    0.48    0.69
## 29 Nykaa             0.372        0.0835   0.26    0.4     0.45
## 30 Olivia            0.672        0.0670   0.61    0.67    0.74
## 31 RMK               0.426        0.110    0.26    0.39    0.59
## 32 Revlon            0.394        0.0475   0.31    0.38    0.49
## 33 Shiseido          0.412        0.0500   0.35    0.415   0.49
## 34 Shu Uemera        0.421        0.0960   0.24    0.42    0.58
## 35 Trim & Prissy     0.518        0.0707   0.34    0.55    0.6 
## 36 bareMinerals      0.448        0.122    0.25    0.42    0.65
result <- shades %>% group_by(brand) %>% summarise(media=mean(V),
                                         desvio_padrao=sd(V),
                                         minimo=min(V),
                                         meadiana=median(V),
                                         maximo=max(V))
print(result, n = Inf)
## # A tibble: 36 × 6
##    brand             media desvio_padrao minimo meadiana maximo
##    <chr>             <dbl>         <dbl>  <dbl>    <dbl>  <dbl>
##  1 Addiction         0.913       0.0815    0.76    0.92    1   
##  2 Beauty Bakerie    0.787       0.205     0.31    0.875   0.98
##  3 Bharat & Doris    0.85        0.0455    0.8     0.84    0.93
##  4 Black Opal        0.518       0.164     0.3     0.48    0.74
##  5 Black Up          0.643       0.211     0.21    0.675   0.93
##  6 Blue Heaven       0.915       0.00707   0.91    0.915   0.92
##  7 Bobbi Brown       0.760       0.159     0.38    0.82    0.96
##  8 Colorbar          0.877       0.0681    0.8     0.9     0.93
##  9 Covergirl + Olay NA          NA        NA      NA      NA   
## 10 Dior              0.893       0.0301    0.84    0.895   0.93
## 11 Elsas Pro         0.619       0.153     0.45    0.55    0.85
## 12 Estée Lauder      0.761       0.170     0.37    0.815   1   
## 13 Fenty             0.783       0.178     0.35    0.835   0.99
## 14 Hegai and Ester   0.756       0.156     0.56    0.765   0.96
## 15 House of Tara     0.55        0.119     0.36    0.56    0.71
## 16 IPSA              0.925       0.0122    0.91    0.93    0.94
## 17 Iman              0.651       0.187     0.39    0.645   0.9 
## 18 Kate              0.873       0.0758    0.76    0.885   0.97
## 19 Kuddy             0.788       0.0642    0.7     0.78    0.88
## 20 L'Oréal           0.806       0.182     0.3     0.865   0.99
## 21 Lakmé             0.788       0.0574    0.74    0.77    0.87
## 22 Lancôme           0.777       0.182     0.22    0.84    0.99
## 23 Laws of Nature    0.63        0.182     0.2     0.65    0.87
## 24 Lotus Herbals     0.852       0.104     0.72    0.875   0.94
## 25 MAC               0.809       0.106     0.45    0.825   1   
## 26 Make Up For Ever  0.815       0.143     0.39    0.85    0.98
## 27 Maybelline        0.776       0.210     0.25    0.885   1   
## 28 NARS              0.892       0.0551    0.79    0.89    0.98
## 29 Nykaa             0.848       0.0476    0.8     0.83    0.92
## 30 Olivia            0.85        0.101     0.72    0.87    0.94
## 31 RMK               0.941       0.0729    0.76    0.97    0.99
## 32 Revlon            0.850       0.103     0.56    0.87    0.98
## 33 Shiseido          0.885       0.0524    0.8     0.91    0.93
## 34 Shu Uemera        0.877       0.0916    0.69    0.9     0.98
## 35 Trim & Prissy     0.718       0.154     0.47    0.69    0.99
## 36 bareMinerals      0.766       0.145     0.43    0.82    0.94
result <- shades %>% group_by(brand) %>% summarise(media=mean(L),
                                         desvio_padrao=sd(L),
                                         minimo=min(L),
                                         meadiana=median(L),
                                         maximo=max(L))
print(result, n = Inf)
## # A tibble: 36 × 6
##    brand            media desvio_padrao minimo meadiana maximo
##    <chr>            <dbl>         <dbl>  <int>    <dbl>  <int>
##  1 Addiction         77.3         9.44      60     77       90
##  2 Beauty Bakerie    68.9        22.9       22     76.5     94
##  3 Bharat & Doris    75           5.51      68     75       83
##  4 Black Opal        41.6        14.5       23     38.5     65
##  5 Black Up          50.4        20.2       16     53       86
##  6 Blue Heaven       77.5         0.707     77     77.5     78
##  7 Bobbi Brown       63.1        17.7       28     67       90
##  8 Colorbar          75.7         6.51      69     76       82
##  9 Covergirl + Olay  79.5         4.03      75     78.5     90
## 10 Dior              80           3.79      73     81       83
## 11 Elsas Pro         51.1        13.3       36     45       74
## 12 Estée Lauder      62.4        16.6       27     66       89
## 13 Fenty             65.6        19.1       25     67.5     94
## 14 Hegai and Ester   56.1        14.2       38     55       80
## 15 House of Tara     41.8        12.3       23     42       59
## 16 IPSA              80.2         3.31      75     80.5     84
## 17 Iman              52.8        19.3       27     50       80
## 18 Kate              74.8         9.37      61     75.5     88
## 19 Kuddy             62.8         6.42      54     62       72
## 20 L'Oréal           68.5        18.6       19     75.5     90
## 21 Lakmé             67.5         5.57      62     66.5     75
## 22 Lancôme           64.8        18.6       14     71.5     95
## 23 Laws of Nature    51          18.3       11     53       78
## 24 Lotus Herbals     74.8         7.85      67     75       82
## 25 MAC               70.3        11.3       36     72.5     90
## 26 Make Up For Ever  70.0        14.8       31     73.5     92
## 27 Maybelline        66.4        19.4       16     76       92
## 28 NARS              74.7         7.79      62     74       88
## 29 Nykaa             72.6         7.09      65     74       83
## 30 Olivia            63.5         7.77      54     64       72
## 31 RMK               79.8         9.97      58     82       90
## 32 Revlon            71.4         9.70      47     73       85
## 33 Shiseido          74.2         5.49      65     76.5     79
## 34 Shu Uemera        76.1         9.18      59     75       89
## 35 Trim & Prissy     59.1        14.0       39     57       87
## 36 bareMinerals      66.2        14.7       35     71       85

2. Testes de Normalidade

Antes de realizar comparações entre grupos, serão aplicados testes de normalidade:

- Teste de Shapiro-Wilk: para verificar se as variáveis seguem uma distribuição normal.

Interpretação: se o p-valor for menor que 0,05, a hipótese nula de normalidade será rejeitada, indicando uma distribuição não normal.

shapiro.test(shades$H)
## 
##  Shapiro-Wilk normality test
## 
## data:  shades$H
## W = 0.97394, p-value = 5.56e-09
shapiro.test(shades$S)
## 
##  Shapiro-Wilk normality test
## 
## data:  shades$S
## W = 0.98615, p-value = 1.464e-05
shapiro.test(shades$V)
## 
##  Shapiro-Wilk normality test
## 
## data:  shades$V
## W = 0.89754, p-value < 2.2e-16
shapiro.test(shades$L)
## 
##  Shapiro-Wilk normality test
## 
## data:  shades$L
## W = 0.93629, p-value = 1.095e-15

3. Análise de Correlação

Será calculada a matriz de correlação entre as variáveis hue, saturation, value e lightness para identificar relações lineares.

Visualizações de diagramas de dispersão ajudarão a explorar as relações bivariadas.

shades_selected <- shades[, c("H", "S", "V", "L")]

correlation_matrix <- cor(shades_selected, use = "complete.obs")
print(correlation_matrix)
##            H          S          V          L
## H  1.0000000 -0.1664362  0.4098312  0.4514155
## S -0.1664362  1.0000000 -0.7077968 -0.8106189
## V  0.4098312 -0.7077968  1.0000000  0.9806898
## L  0.4514155 -0.8106189  0.9806898  1.0000000
pairs(shades[, c("H", "S", "V", "L")], main="Diagrama de Dispersão")

corrplot(correlation_matrix, method = "circle")

4. Comparação de Grupos

Para comparar diferentes categorias de grupos de produtos:

  • Testes t para duas amostras independentes serão usados se as variáveis forem normalmente distribuídas.

  • Teste de Kruskal-Wallis será aplicado para distribuições não normais.

5. Homogeneidade das Variâncias

O teste de Levene verificará se as variâncias entre grupos são homogêneas, um requisito para muitos testes paramétricos.

6. Análise Específica de Hue e Saturation

A variável hue será estudada com base em médias, mínimos, máximos e desvios padrões para avaliar variações nas preferências de cor.

Saturation será analisada para entender sua influência sobre a intensidade das cores.

7. Visualizações Gráficas

Gráficos de barras e boxplots serão utilizados para facilitar a comparação visual das distribuições de tonalidades entre os diferentes grupos de produtos e marcas.

Histogramas

hist(shades$H, main="Distribuição de Hue", xlab="Hue", col="#dc2171")

hist(shades$S, main="Distribuição de Saturation", xlab="Saturation", col="#ff708f")

hist(shades$V, main="Distribuição de Value", xlab="Value", col="#a6c7ff")

hist(shades$L, main="Distribuição de Lightness", xlab="Lightness", col="#0071bc")

Boxplots para variáveis selecionadas

boxplot(shades$H, main="Boxplot de Hue", col="#006243")

boxplot(shades$S, main="Boxplot de Saturação", col="#19999f")

boxplot(shades$V, main="Boxplot de Value", col="#b9e878")

boxplot(shades$L, main="Boxplot de Lightness", col="#957ccb")

Conclusão

As técnicas descritas permitirão identificar tendências e diferenças significativas nas distribuições de tonalidades de maquiagem, proporcionando insights sobre a diversidade de produtos e suas relações com as preferências de consumo em diferentes contextos culturais e mercadológicos.