Tarefa 4

Guilherme Vivan e Nicolas Hess

28 de agosto de 2023

O gerente de marketing de um banco suspeita de que o número de vendas de um determinado produto é influenciado pela estratégia de venda utilizada e pela taxa de juros associada a esse produto. Ele selecionou três taxas de juros – 10%, 15% e 20%– e três tipos de estratégia (A, B e C). Ao longo de 4 dias foram computadas quantas vendas foram realizadas desse produto utilizando-se cada uma das combinações de estratégia e taxa de juros. Como os diferentes dias podem acarretar em uma variabilidade adicional, os mesmos foram adicionados ao experimento como blocos. Os dados estão descritos abaixo:

dados <- read.csv("tarefa4.csv")
attach(dados)

dados$Dias <- as.factor(dados$Dias)
dados$Estrategia <- as.factor(dados$Estrategia)

kable(dados)
Dias Estrategia Juros Vendas
1 A 10 130
1 A 15 34
1 A 20 20
1 B 10 150
1 B 15 136
1 B 20 25
1 C 10 138
1 C 15 174
1 C 20 96
2 A 10 155
2 A 15 40
2 A 20 70
2 B 10 188
2 B 15 122
2 B 20 70
2 C 10 110
2 C 15 120
2 C 20 104
3 A 10 74
3 A 15 80
3 A 20 82
3 B 10 159
3 B 15 106
3 B 20 58
3 C 10 168
3 C 15 150
3 C 20 82
4 A 10 180
4 A 15 75
4 A 20 58
4 B 10 126
4 B 15 115
4 B 20 45
4 C 10 160
4 C 15 139
4 C 20 60

(a) Descreva o experimento (delineamento, fatores de tratamentos e seus níveis, repetições):

Este experimento fatorial cruzado possui um delineamento de blocos casualizados. O primeiro fator de tratamento é a Estratégia (níveis: A, B e C), o segundo é a Taxa de Juros (níveis: 10%, 15% e 20%) e o terceiro é o Dia/Bloco (níveis: 1, 2, 3 e 4). São 4 repetições de cada combinação entre cada Estratégia com cada Taxa de Juros.

(b) Apresente e teste as hipóteses apropriadas, usando a análise de variância com \(\alpha\) = 5%.

A partir da descrição anterior, temos o modelo: \[y_{ijk} = \mu + \alpha_i + \beta_j + \alpha\beta_{ij} + R_k + \epsilon_{ijk}\]

Temos as seguintes hipóteses nulas:

\(H_0\): a mudança da Estratégia gera o mesmo efeito sobre a mudança dos três diferentes níveis da Taxa , assim como a mudança na Taxa gera o mesmo efeito sobre a mudança dos três níveis diferentes da Estratégia;

\(H_0\): a quantidade média de produtos vendidos esperada não muda conforme a mudança de nível da Estratégia;

\(H_0\): a quantidade média de produtos vendidos esperada não muda conforme a mudança de nível da Taxa.

Em outras palavras:

\(H_0\): \(\alpha\beta_{ij} = 0\) ;

\(H_0\): \(\alpha_i = 0\) ;

\(H_0\): \(\beta_j = 0\)

Vamos utilizar a ANOVA para fazer estes testes.

anova <- aov(Vendas ~ as.factor(Dias) + (Estrategia)*as.factor(Juros))
summary(anova)
##                             Df Sum Sq Mean Sq F value   Pr(>F)    
## as.factor(Dias)              3    355     118   0.159  0.92292    
## Estrategia                   2  10684    5342   7.172  0.00362 ** 
## as.factor(Juros)             2  39119   19559  26.260 9.06e-07 ***
## Estrategia:as.factor(Juros)  4   9614    2403   3.227  0.02971 *  
## Residuals                   24  17876     745                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Podemos observar pelo resultado da ANOVA que temos um p-valor significativo considerando um \(\alpha = 0.05\) para as variáveis Estratégia e Taxa de Juros e também para a sua interação. Os blocos não são significativos.

(c) Analise graficamente a interação.

par(mfrow=c(1, 2))
par(mar = c(4, 3, 4, 3))


interaction.plot(Estrategia, Juros, Vendas, col = c("red", "darkblue", "gray30"), lty = 5)

interaction.plot(Juros, Estrategia, Vendas, col = c("red", "darkblue", "gray30"), lty = 5)

Fazendo uma análise gráfica, percebemos que, no primeiro gráfico, os traçados de cada Taxa não estão paralelos, o que leva a crer que o efeito da Estratégia depende dos Juros. Podemos afirmar que há um efeito acentuado em 15%.

Já no segundo gráfico, observamos que, assim como antes, os traçados de cada Estratégia não estão paralelos, e dessa forma entendemos que o efeito dos Juros depende de Estratégia. Percebemos que a quantidade de vendas, no geral, diminui conforme os Juros aumentam, sendo a queda mais acentuada na Estratégia B.

Quanto à interação, percebemos que os traçados se cruzam em ambos os gráficos, o que indica, de fato, a interação.

(d) Analise os resíduos deste experimento e suas pressuposições.

par(mfrow=c(1,2))
par(mar = c(4, 3, 4, 3))

plot(anova, which = c(1, 2))

Observamos pelo primeiro gráfico que temos a homocedasticidade da variância dos resíduos, já que os pontos estão dispersos de forma a não apresentar um padrão. Podemos confirmar pelo teste de Breusch-Pagan:

bptest(anova)
## 
##  studentized Breusch-Pagan test
## 
## data:  anova
## BP = 10.63, df = 11, p-value = 0.4748

O segundo gráfico mostra a normalidade dos resíduos já que os pontos estão próximos da linha. Podemos confirmar pelo teste de Shapiro-Wilk:

shapiro.test(anova$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  anova$residuals
## W = 0.97468, p-value = 0.5664

(e) Faça as devidas complementações da análise e conclua.

Agora vamos decompor os fatores.

Primeiramente, para Estratégia dentro de Juros:

decomp1 <- aov(Vendas ~ as.factor(Dias) + as.factor(Juros)/Estrategia)

lista_juros <- list("10%" = seq(1, by = 3, length.out = 2),
                         "15%" = seq(2, by = 3, length.out = 2),
                         "20%" = seq(3, by = 3, length.out = 2))
summary(decomp1, split = list("as.factor(Juros):Estrategia" = lista_juros))
##                                    Df Sum Sq Mean Sq F value   Pr(>F)    
## as.factor(Dias)                     3    355     118   0.159 0.922923    
## as.factor(Juros)                    2  39119   19559  26.260 9.06e-07 ***
## as.factor(Juros):Estrategia         6  20298    3383   4.542 0.003273 ** 
##   as.factor(Juros):Estrategia: 10%  2    886     443   0.595 0.559558    
##   as.factor(Juros):Estrategia: 15%  2  16553    8276  11.112 0.000384 ***
##   as.factor(Juros):Estrategia: 20%  2   2859    1429   1.919 0.168605    
## Residuals                          24  17876     745                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Decompondo os Juros, temos que apenas o nível de 15% é significativo. Ou seja, só há uma diferença significativa entre as Estratégias com os Juros em 15%.

lsmeans(anova, pairwise ~ Estrategia|as.factor(Juros))
## $lsmeans
## Juros = 10:
##  Estrategia lsmean   SE df lower.CL upper.CL
##  A           134.8 13.6 24    106.6    162.9
##  B           155.8 13.6 24    127.6    183.9
##  C           144.0 13.6 24    115.8    172.2
## 
## Juros = 15:
##  Estrategia lsmean   SE df lower.CL upper.CL
##  A            57.2 13.6 24     29.1     85.4
##  B           119.8 13.6 24     91.6    147.9
##  C           145.8 13.6 24    117.6    173.9
## 
## Juros = 20:
##  Estrategia lsmean   SE df lower.CL upper.CL
##  A            57.5 13.6 24     29.3     85.7
##  B            49.5 13.6 24     21.3     77.7
##  C            85.5 13.6 24     57.3    113.7
## 
## Results are averaged over the levels of: Dias 
## Confidence level used: 0.95 
## 
## $contrasts
## Juros = 10:
##  contrast estimate   SE df t.ratio p.value
##  A - B      -21.00 19.3 24  -1.088  0.5304
##  A - C       -9.25 19.3 24  -0.479  0.8817
##  B - C       11.75 19.3 24   0.609  0.8167
## 
## Juros = 15:
##  contrast estimate   SE df t.ratio p.value
##  A - B      -62.50 19.3 24  -3.239  0.0094
##  A - C      -88.50 19.3 24  -4.586  0.0003
##  B - C      -26.00 19.3 24  -1.347  0.3838
## 
## Juros = 20:
##  contrast estimate   SE df t.ratio p.value
##  A - B        8.00 19.3 24   0.415  0.9100
##  A - C      -28.00 19.3 24  -1.451  0.3317
##  B - C      -36.00 19.3 24  -1.865  0.1705
## 
## Results are averaged over the levels of: Dias 
## P value adjustment: tukey method for comparing a family of 3 estimates

Entre as comparações de Estratégias para cada Juro (lembrando que apenas o nível de 15% é significativo), temos como significativa apenas a comparação de A e B, além de A e C. Isso se dá por causa dos baixos valores de vendas na Estratégia A, como podemos ver na coluna lsmeans.

E agora, vamos decompor Juros dentro da Estratégia:

decomp2 <- aov(Vendas ~ as.factor(Dias) + Estrategia/as.factor(Juros))

lista_estrategia <- list("A" = seq(1, by = 3, length.out = 2),
                         "B" = seq(2, by = 3, length.out = 2),
                         "C" = seq(3, by = 3, length.out = 2))

summary(decomp2, split = list("Estrategia:as.factor(Juros)" = lista_estrategia))
##                                  Df Sum Sq Mean Sq F value   Pr(>F)    
## as.factor(Dias)                   3    355     118   0.159 0.922923    
## Estrategia                        2  10684    5342   7.172 0.003616 ** 
## Estrategia:as.factor(Juros)       6  48732    8122  10.905 7.19e-06 ***
##   Estrategia:as.factor(Juros): A  2  15965    7983  10.717 0.000472 ***
##   Estrategia:as.factor(Juros): B  2  23360   11680  15.682 4.40e-05 ***
##   Estrategia:as.factor(Juros): C  2   9407    4704   6.315 0.006259 ** 
## Residuals                        24  17876     745                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Decompondo a Estratégia, temos que os seus 3 níveis são significativos. Ou seja, há uma diferença significativa entre os Juros para qualquer que seja a Estratégia.

lsmeans(anova, list(poly ~ as.factor(Juros)|Estrategia))
## $`lsmeans of Juros | Estrategia`
## Estrategia = A:
##  Juros lsmean   SE df lower.CL upper.CL
##     10  134.8 13.6 24    106.6    162.9
##     15   57.2 13.6 24     29.1     85.4
##     20   57.5 13.6 24     29.3     85.7
## 
## Estrategia = B:
##  Juros lsmean   SE df lower.CL upper.CL
##     10  155.8 13.6 24    127.6    183.9
##     15  119.8 13.6 24     91.6    147.9
##     20   49.5 13.6 24     21.3     77.7
## 
## Estrategia = C:
##  Juros lsmean   SE df lower.CL upper.CL
##     10  144.0 13.6 24    115.8    172.2
##     15  145.8 13.6 24    117.6    173.9
##     20   85.5 13.6 24     57.3    113.7
## 
## Results are averaged over the levels of: Dias 
## Confidence level used: 0.95 
## 
## $`polynomial contrasts of Juros | Estrategia`
## Estrategia = A:
##  2         estimate   SE df t.ratio p.value
##  linear       -77.2 19.3 24  -4.003  0.0005
##  quadratic     77.8 33.4 24   2.326  0.0288
## 
## Estrategia = B:
##  2         estimate   SE df t.ratio p.value
##  linear      -106.2 19.3 24  -5.506  <.0001
##  quadratic    -34.2 33.4 24  -1.025  0.3157
## 
## Estrategia = C:
##  2         estimate   SE df t.ratio p.value
##  linear       -58.5 19.3 24  -3.031  0.0058
##  quadratic    -62.0 33.4 24  -1.855  0.0759
## 
## Results are averaged over the levels of: Dias

Agora testamos os efeitos lineares ou quadráticos possíveis para cada Estratégia. Nesse caso, os efeitos significativos foram lineares para B e C e quadrático para A.

par(mfrow=c(1,3))
par(mar = c(4, 3, 4, 3))

#########
modelo_1 <- print(lm(Vendas ~ Juros + I(Juros^2), data = subset(dados, dados$Estrategia == "A")))
## 
## Call:
## lm(formula = Vendas ~ Juros + I(Juros^2), data = subset(dados, 
##     dados$Estrategia == "A"))
## 
## Coefficients:
## (Intercept)        Juros   I(Juros^2)  
##     523.000      -54.375        1.555
plot(dados$Juros, dados$Vendas, pch = 16, col = "blue", xlab = "Juros", ylab = "Vendas", main = "Ajuste da Regressão - A")

curve(predict(modelo_1, newdata = data.frame(Juros = x)), from = 10, to = 20, col = "red", add = TRUE, lwd = 2)

#########
modelo_2 <- print(lm(Vendas ~ Juros, data = subset(dados, dados$Estrategia == "B")))
## 
## Call:
## lm(formula = Vendas ~ Juros, data = subset(dados, dados$Estrategia == 
##     "B"))
## 
## Coefficients:
## (Intercept)        Juros  
##      267.71       -10.63
plot(dados$Juros, dados$Vendas, pch = 16, col = "blue", xlab = "Juros", ylab = "Vendas", main = "Ajuste da Regressão - B")

abline(modelo_2, col = "red", lwd = 2)

#########
modelo_3 <- print(lm(Vendas ~ Juros, data = subset(dados, dados$Estrategia == "C")))
## 
## Call:
## lm(formula = Vendas ~ Juros, data = subset(dados, dados$Estrategia == 
##     "C"))
## 
## Coefficients:
## (Intercept)        Juros  
##      212.83        -5.85
plot(dados$Juros, dados$Vendas, pch = 16, col = "blue", xlab = "Juros", ylab = "Vendas", main = "Ajuste da Regressão - C")

abline(modelo_3, col = "red", lwd = 2)

Evidentemente, como temos coeficientes negativos para o \(\beta_1\) dos modelos lineares, temos uma reta inclinada indicando que conforme aumentamos os Juros, diminuímos as vendas. Para a regressão do efeito quadrático, temos essa parábola mostrando que a quantidade maior de vendas foi com Juros iguais a 10%.

Concluindo, temos que, como a Taxa de Juros de 10% é melhor, então bastaria escolher qual das três Estratégias é melhor, ainda que não haja uma diferença significativa entre elas com esses Juros, mas, comparando estes últimos três gráficos, para maximizar suas vendas, escolheríamos a Estratégia B.