Por: Daniel Lopes
Uma equipe da Marketing utilizou um questionário para coletar dados sobre os clientes de uma grande rede de Petshop. O objetivo é realizar uma cluster analysis para identificar segmentos do mercado ao caracterizar grupos de clientes homogêneos.
Itens do questionário:
Indique o seu grau de concordância com as seguintes afirmações (1 - discordo totalmente; 2 - discordo parcialmente; 3 - não concordo e nem discordo; 4 concordo parcialmente; 5 - concordo totalmente)
Carregando a base de dados
dados <- read.csv2("C:/Users/Daniel/Desktop/Projetos/Clusters/dados.csv")
head(dados)
Normalizando as variáveis.
dadosNorm <- scale(dados)
summary(dadosNorm[,1:10])
## ï..Idade Homem Cao Gato
## Min. :-1.6727 Min. :-0.8598 Min. :-1.0511 Min. :-0.6437
## 1st Qu.:-0.7660 1st Qu.:-0.8598 1st Qu.:-1.0511 1st Qu.:-0.6437
## Median : 0.0218 Median :-0.8598 Median : 0.9197 Median :-0.6437
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.7056 3rd Qu.: 1.1243 3rd Qu.: 0.9197 3rd Qu.: 1.5019
## Max. : 1.6569 Max. : 1.1243 Max. : 0.9197 Max. : 1.5019
## Passaro Roedor Outro Racao
## Min. :-0.6437 Min. :-0.4397 Min. :-0.3277 Min. :-1.77196
## 1st Qu.:-0.6437 1st Qu.:-0.4397 1st Qu.:-0.3277 1st Qu.:-1.03364
## Median :-0.6437 Median :-0.4397 Median :-0.3277 Median : 0.07383
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000 Mean : 0.00000
## 3rd Qu.: 1.5019 3rd Qu.:-0.4397 3rd Qu.:-0.3277 3rd Qu.: 1.18131
## Max. : 1.5019 Max. : 2.1985 Max. : 2.9496 Max. : 1.18131
## Banho Vet
## Min. :-1.5776 Min. :-1.0542
## 1st Qu.:-0.8816 1st Qu.:-1.0542
## Median : 0.5104 Median :-0.2219
## Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.5104 3rd Qu.: 0.6103
## Max. : 1.2064 Max. : 2.2749
Calculando a distância entre as variáveis e agrupando os respondentes.
d <- dist(dadosNorm, method = "euclidean")
w <- hclust(d, method="ward.D")
Plotando o Dendograma.
plot(w, hang = -1, xlab = "Clientes") # Desenha o dendograma
abline(h=16, lty=c(2)) # Linha de corte para 2 grupos
abline(h=13.5, lty=c(2)) # Linha de corte para 3 grupos
abline(h=11, lty=c(2)) # Linha de corte para 4 grupos
Ao traçar uma linha próxima ao valor 11, é possível notar que existem 4 grupos razoavelmente homogêneos.
plot(w, hang = -1, xlab = "Clientes")
rect.hclust(w, k=4)
Calculando a quantidade de clientes por grupo.
grupos <- cutree(w, k=4)
table(grupos) # Mostra a quantidade de respondentes de cada grupo
## grupos
## 1 2 3 4
## 15 6 5 4
Cuidado! Interpretar levando em conta a escala original (idade, dummy e likert de 5 pontos)
resultados <- lapply(split(dados, grupos), colMeans)
resultados <- data.frame(resultados)
resultados
O grupo 1 é formado tanto por homens como por mulheres, próximos aos 40 anos de idade, que no geral têm cães, compram ração na loja e utilizam o programa de fidelidade. Eles têm pouco interesse por plantas, mas aproveitam para ir ao shopping e ao supermercado sempre que vão até a loja.
O grupo 2 é formado majoritariamente por mulheres que têm cães. Diferente do grupo 1, o grupo 2 não utiliza a loja para comprar ração, mas para levar o cão ao banho. A adoção é uma causa muito importane no ponto de vista delas e elas também utilizam o programa de fidelidade.
O grupo 3 é formado por mulheres mais velhas que têm gatos.Elas não fazem compras online e têm como o principal objetivo comprar produtos de farmácia para os seus animais. Curiosamente, não gostam de comprar plantas na loja.
O grupo 4 é formado tanto por homens como por mulheres que tem pássaros e roedores. Eles compram ração e brinquedos para os seus animais e também plantas. Além disso, aproveitam a loja para um passeio. Banhos e o uso do veterinário não são importantes para eles.