Primeiro, importamos nossa base de dados “MerketingProduto” e a nomeamos como “dados”.

dados <- read_csv("MarketingProduto.csv")

Em seguida, criamos uma nova variável “dado” em que eliminamos as observações com dados faltantes (NAs).

dado <- na.omit(dados)

Interpretação dos coeficientes 1

Como sabemos, a equação de regressão do modelo logit é:

\[log(\frac{P_i}{1 - P_i}) = \beta_0 + \beta_1\times X_i\]

Em que, \(log(\frac{P_i}{1 - P_i})\) é o logaritmo das odds; \(\beta_0\) é o intercepto da regressão; e \(\beta_1\) é o coeficiente angular. Com exceção da parte à esquerda do símbolo de igual, essa equação é bastante conhecida e típica de modelos simples de regressão. Entretanto, a interpretação desses coeficientes já conhecidos não é tão simples quanto nos modelos simples já conhecidos.

Para motivar a interpretação dos coeficientes, trabalharemos com um modelo mais básico, no qual nosso regressando continua sendo “RESPONSE”, mas, agora, “GENDER” é nosso único regressor. Ou seja,

logit1 <- glm(RESPONSE ~ GENDER, family=binomial(link="logit"))
## 
## Call:
## glm(formula = RESPONSE ~ GENDER, family = binomial(link = "logit"))
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.311  -1.311   1.049   1.049   1.496  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.7228     0.1338  -5.403 6.55e-08 ***
## GENDER        1.0323     0.1549   6.663 2.68e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1282.1  on 924  degrees of freedom
## Residual deviance: 1235.3  on 923  degrees of freedom
## AIC: 1239.3
## 
## Number of Fisher Scoring iterations: 4

Que é o mesmo que,

\[log(\frac{P_i}{1 - P_i}) = \beta_0 + \beta_1\times GENDER_i\] Como podemos observar, \(\beta_0 = -0.72\), enquanto \(\beta_1 = 1.03\). Como esses ceficientes podem ser interpretados, dado que homem = 1 e mulher = 0?

A interpretação do intercepto é mais simples e é apenas o logaritmo da odd de um indíviduo do sexo feminino mostrar interesse no produto. Ou seja, -0.72 é o logaritmo da odd de uma mulher mostrar interesse no produto. Se utilizarmos a fórmula \(\frac{e^{-0.72}}{1 + e^{-0.72}}\), que obtemos isolando \(P_i\) na equação de regressão, alcaçamos a probabilidade de uma mulher clicar no link de propaganda. Resolvendo a equação supracitada, encontramos que a probabilidade de uma mulher clicar no link de propaganda é de 32.74%.

Esse resultado foi facilmente obtido e interpretado porque a parte \(\beta_1 \times GENDER\) foi “desatividada”, dado que GENDER = 0. Entretanto, como seria a interpretação dos coeficientes no caso em que \(\beta_1 \times GENDER\) está “ativado” (GENDER = 1)?

No caso em que estamos tratando da chance de um homem (GENDER = 1) clicar no anúncio, temos que \(log(\frac{P_i}{1 - P_i}) = \beta_0 + \beta_1\). Assim, o intercepto continuará sendo interpretado da forma já mencionada, entretanto, qual será a interpretação do coeficiente angular? Ele será simplismente a odd de clicar no anúncio, dado que o indivíduo é homem?

Não. A interpretação é um pouco mais complicada:

Temos que,

\[log(odd_H) = log(odd_M) + \Delta log(odd)\]

em que, \(log(odd_M)\) é o logaritmo da odd de ser mulher e \(log(odd_H)\) é o logaritmo da odd de ser homem. A parte do \(\Delta log(odd)\) se deve à interpretação do coeficiente angular como sendo a variação no regressando para uma dada variação marginal no regressor (que, no nosso caso, é igual a 1). Assim,

\[log(odd_H) = log(odd_M) + (log(odd_H) - log(odd_M))\]

Pelas propriedades do logaritmo, isso é igual a,

\[log(odd_H) = log(odd_M) + log(\frac{odd_H}{odd_M})\]

Ou seja, temos que o intercepto é o logaritmo da odd de clicar no anúncio sendo mulher, enquanto o coeficiente angular é o logartimo da razão da odd de ser homem pela odd de ser mulher. Dessa forma, temos que o intercepto é o logaritmo das odds e o \(\beta_1\) é logaritmo do odds ratio. Em outras palavras, o coeficiente angular é o logaritmo da razão da odd de um homem clicar no anúncio pela odd de uma mulher clicar no anúncio.

Assim, se queremos encontrar a odd de um homem clicar no anúncio, calculamos o exponencial dos dois lados da equação:

\[e^{log(odd_H)} = e^{log(odd_M) + log(\frac{odd_H}{odd_M})}\] Isso é igual a,

\[odd_H = e^{log(odd_M)} \times e^{log(\frac{odd_H}{odd_M})}\]

Ou seja,

\[odd_H = e^{\beta_0} \times e^{\beta_1} \]

e, se queremos encontrar a odd de uma mulher clicar no anúncio,

\[odd_M = e^{\beta_0} \]

Concluindo, temos que a odd de clicar no anúncio sendo homem \(e^{-0.72} \times e^{1.03} = 1.36\) . Enquanto que a probabilidade de um homem clicar no anúncio é de \(\frac{1.36}{1 + 1.36} = 0.5763\). Ou seja, 57.63%.

Questão 1

Criamos um modelo (“logit”) no qual “RESPONSE” é nosso regressando e “GENDER”, “ACTIVITY”, “AGE” e “AGE2” são nossos regressores:

\[log(\frac{P_i}{1 - P_i}) = \beta_0 + \beta_1GENDER_i + \beta_2ACTIVITY + \beta_3AGE + \beta_4AGE2\]

logit <- glm(RESPONSE ~ GENDER + ACTIVITY + AGE + AGE2, family=binomial(link="logit"))
## 
## Call:
## glm(formula = RESPONSE ~ GENDER + ACTIVITY + AGE + AGE2, family = binomial(link = "logit"))
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.6926  -1.2156   0.7389   1.0982   1.8473  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -2.4883577  0.8899914  -2.796  0.00517 ** 
## GENDER       0.9536944  0.1581826   6.029 1.65e-09 ***
## ACTIVITY     0.9137479  0.1847787   4.945 7.61e-07 ***
## AGE          0.0699453  0.0356054   1.964  0.04948 *  
## AGE2        -0.0006869  0.0003410  -2.015  0.04394 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1282.1  on 924  degrees of freedom
## Residual deviance: 1203.7  on 920  degrees of freedom
## AIC: 1213.7
## 
## Number of Fisher Scoring iterations: 4

Questão 2

O coeficiente angular da equação de regressão nos indica qual a variação no regressando para uma dada variação no regressor. Tomando \(\beta_1\) como exemplo, esse coeficente nada mais é que a derivada de log(odds) em relação ao gênero, ou seja,

\[\beta_1 = \frac{\delta[log(odd)]}{\delta GENDER}\] Utilizando a regra da cadeia e sabendo que a derivada do logaritmo de uma função é a função elevada a menos 1, temos,

\[\beta_1 = \frac{\Delta odd}{odd}\] Ou seja, \(\beta_1\) é (quase)2 simplismente a variação percentual na odd.

Gujarati, pág. 181

Dessa forma, aplicando a correção da nota de rodapé, temos que a variação percentual nas odds de demonstrar interesse no produto, pelo fato de ser homem, é \(e^{\beta_2} - 1\).

Criando a variável “logit.coef” para armazenar os coeficientes, temos que,

logit.coef <- coef(logit)

E que a variação percentual nas odds de demonstrar interesse no produto, pelo fato de ser homem, é,

(exp((logit.coef[2])) - 1) * 100
##  GENDER 
## 159.528

Questão 3

Seguindo o mesmo raciocínio da questão anterior, a variação percentual nas odds de demonstrar interesse no produto, pelo fato de já ter interagido com a página, é,

(exp((logit.coef[3])) - 1) * 100
## ACTIVITY 
## 149.3651

Questão 4

Primeiro, calculamos o logaritmo da odd de que uma mulher de 20 anos e que já interagiu com a página demonstre interesse no produto e armazenamos o resultado na variável “log.odd.1”.

log.odd.1 <- logit.coef[1] + logit.coef[3] + logit.coef[4]*20 + logit.coef[5]*(20^2)

Para obtermos apenas a odd tiramos o exponencial dos dois lados e armazenamos o resultado na variável “odd.1”.

odd.1 <- exp(log.odd.1)

Por fim, para obter a probabilidade, utilizamos a fórmula (já utilizada anteriormente) \(\frac{odd}{1 + odd}\),

odd.1/(1 + odd.1)
## (Intercept) 
##   0.3892484

Ou seja, a probabilidade de que uma mulher de 20 anos e que já interagiu com a página demonstre interesse no produto é de 38.92%.

Questão 5

Similarmente à questão anterior, primeiro, calculamos o logaritmo da odd de que um homem de 40 anos e que nunca interagiu com a página demonstre interesse no produto e armazenamos o resultado na variável “log.odd.2”

log.odd.2 <- logit.coef[1] + logit.coef[2] + logit.coef[4]*40 + logit.coef[5]*(40^2)

Para obtermos apenas a odd tiramos o exponencial dos dois lados e armazenamos o resultado na variável “odd.2”.

odd.2 <- exp(log.odd.2)

Por fim, para obter a probabilidade, utilizamos a fórmula (já utilizada anteriormente) \(\frac{odd}{1 + odd}\),

odd.2/(1 + odd.2)
## (Intercept) 
##   0.5409269

Ou seja, a probabilidade de que um homem de 40 anos e que nunca interagiu com a página demonstre interesse no produto é de 54.09%.

Questão 6

Assumindo que Gender e Activity são iguais a 0, temos

\[log(\frac{P_i}{1 - P_i}) = \beta_0 + \beta_3AGE + \beta_4AGE2\]

Se queremos encontrar a probabilidade, primeiro exponenciamos os dois lados da equação:

\[\frac{P_i}{1 - P_i} = e^{\beta_0 + \beta_3AGE + \beta_4AGE2} \]

Que, pelas propriedades do logaritmo é,

\[\frac{P_i}{1 - P_i} = e^{\beta_0} \times e^{\beta_3AGE} \times e^{\beta_4AGE2} \]

Chamando \(e^{\beta_0} \times e^{\beta_3AGE} \times e^{\beta_4AGE2}\) de Z, temos que,

\[P_i = \frac{Z}{1 + Z}\]

Dessa forma, criamos uma função “prob.idade” que implementa a ideia acima e aceita a idade (“AGE”) como argumento.

prob.idade <- function(AGE){

  Z <- exp(logit.coef[1]) * exp(logit.coef[4]*AGE) * exp(logit.coef[5]*(AGE^2))
  
  P_i <- Z/(1 + Z)
  
  P_i
}

Como queremos a probabilidade máxima, utilizamos a função “optimize”.

optimize(prob.idade, interval = c(0, 100), maximum = TRUE)
## $maximum
## [1] 50.91223
## 
## $objective
## (Intercept) 
##     0.33008

Dessa forma, sabemos que a idade que gera a maior probabilidade do usuário demonstrar interesse no produto é aproximadamente 50 anos e 11 meses.

Por fim, apresentamos, em um gráfico, a evolução da probabilidade do usuário demonstrar interesse no produto para cada idade.


  1. Para uma explicação mais aprofundada e didática do tema, recomenda-se assistir alguns vídeos do canal do YouTube “StatQuest”. Mais especificamente os vídeo sobres log(odds), log(odds ratio), coeficientes e regressão logística no R. Existem vários outros vídeos sobre esse assunto nesse canal e é válido assistir todos eles.

  2. “O coeficiente da variável de tendência do modelo de crescimento, \(\beta_2\), dá a taxa de crescimento instantânea (em um ponto do tempo), não a composta (ao longo de um período de tempo). Mas essa última pode ser obtida com facilidade tomando-se o antilogaritmo do \(\beta_2\) estimado, subtraindo-o de um e multiplicando a diferença por 100.”