Introdução e Tratamento dos Dados

Usaremos o conjunto de pacotes "tidyverse" para realizar algumas operações, sobretudo utilizando recursos gráficos.

##### ----- Importando Pacotes ------ #####

library("tidyverse")
## Warning: package 'ggplot2' was built under R version 4.0.5
## Warning: package 'readr' was built under R version 4.0.4
library("tidyquant")
library("Quandl")
library("timetk")
## Warning: package 'timetk' was built under R version 4.0.5
library("devtools")
library("readxl")
library("AER")
library("fBasics")
library("readr")


Importação e Construção da Base de Dados:


##### ------ Importando Dados ------ #####

dados <- read_csv("D:/Dropbox/UFMG/Programação/R/Métodos/Ativ Prát 5/MarketingProduto.csv")

dados <- dados %>% na.omit()

# RESPONSE = clicou ou não no anúncio
# GENDER = sexo do usuário
# ACTIVITY = interações passadas com a página
# AGE = idade do usuário
# AGE2 = idade do usuário ao quadrado


QUESTÃO 1:


# Estipulando modelo de regressão LOGIT: 

logit <- glm(RESPONSE ~ GENDER + ACTIVITY + AGE + AGE2,
             data = dados,
             family = binomial(link = "logit"))

summary(logit)
## 
## Call:
## glm(formula = RESPONSE ~ GENDER + ACTIVITY + AGE + AGE2, family = binomial(link = "logit"), 
##     data = dados)
## 
## 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:


multiplicador_1 <- exp(summary(logit)$coefficients[2])-1
print(multiplicador_1)
## [1] 1.59528

A mudança no gênero de uma pessoa multiplica a razão de chances por aproximadamente 160% tendo em vista a natureza da função logística (razão de chances = exp(beta * x))


QUESTÃO 3:


multiplicador_2 <- exp(summary(logit)$coefficients[3])-1
print(multiplicador_2)
## [1] 1.493651

O fato de a pessoa ter tido uma interação passada com a comunidade multiplica a razão de chances por aproximadamente 149% tendo em vista a natureza da função logística (razão de chances = exp(beta * x))


QUESTÃO 4:


A partir da função de distribuição logística, temos que P(Y=1) = exp(alfa + beta1 * x1…)/(1 + exp(alfa + beta1 * x1…)). Logo, a probabilidade da variável dependente assumir o valor 1 (ocorrer o evento desejado), mantendo tudo mais constante, é de:

prob1 <- exp(summary(logit)$coefficients[1] + 20*summary(logit)$coefficients[4] + 1*summary(logit)$coefficients[3])
prob1 <- prob1/(1+prob1)
print(prob1)
## [1] 0.4561865


QUESTÃO 5:


Similarmente ao raciocínio abordado na questão anterior:

prob2 <- exp(summary(logit)$coefficients[1] + (40*summary(logit)$coefficients[4]) + (0*summary(logit)$coefficients[3]))
prob2 <- prob2/(1+prob2)
print(prob2)
## [1] 0.5767516


QUESTÃO 6:


Para maximizar a probabilidade dada a idade da pessoa, utilizaremos uma regressão logística que utiliza uma nova forma funcional mantendo tudo constante, analisaremos AGE e AGE^2, que representaria uma função de segundo grau (ax^2 + bx + c). Para maximizá-la, basta encontrar o x do seu vértice, dado por -b/2a. Maximizando a função, temos que ao isolar a probabilidade, maximizaremos o termo exponencial e assim teremos o valor que apresenta a maior probabilidade.


Função: y = AGE^2 + AGE + alfa

vertice <- -summary(logit)$coefficients[4]/(2*summary(logit)$coefficients[5])
print(vertice)
## [1] 50.91223

Logo, a idade de 51 anos maximiza a prob de o indivíduo responder ao anúncio