O Speed Dating surgiu em 1998 nos Estados Unidos. Seu criador foi o Rabino Yaacov Deyo, baseados na tradição judaica de ajudar jovens judeus solteiros a encontrarem o amor de suas vidas.

Trata-se de um modelo de encontros, onde um grupo se divide em casais temporários que têm um curto período de tempo para se conhecerem. No fim desse tempo os parceiros rotacionam. O objetivo é a formação de potenciais casais que tenham interesse em um encontro posterior.

Nossa tarefa aqui é analisar quais fatores têm maior relevancia na chance do casal ter um match.

## Parsed with column specification:
## cols(
##   .default = col_double(),
##   field = col_character(),
##   from = col_character(),
##   career = col_character(),
##   attr3_s = col_logical(),
##   sinc3_s = col_logical(),
##   intel3_s = col_logical(),
##   fun3_s = col_logical(),
##   amb3_s = col_logical(),
##   dec = col_character()
## )
## See spec(...) for full column specifications.
## Warning: 10220 parsing failures.
##  row      col           expected actual                                                                                                 file
## 1847 attr3_s  1/0/T/F/TRUE/FALSE  8.00  '/home/leal/Documentos/FPCC2/fpcc2-lab5-p2-MatheusHALeal/5-regressao/speed-dating/speed-dating2.csv'
## 1847 sinc3_s  1/0/T/F/TRUE/FALSE  10.00 '/home/leal/Documentos/FPCC2/fpcc2-lab5-p2-MatheusHALeal/5-regressao/speed-dating/speed-dating2.csv'
## 1847 intel3_s 1/0/T/F/TRUE/FALSE  9.00  '/home/leal/Documentos/FPCC2/fpcc2-lab5-p2-MatheusHALeal/5-regressao/speed-dating/speed-dating2.csv'
## 1847 fun3_s   1/0/T/F/TRUE/FALSE  10    '/home/leal/Documentos/FPCC2/fpcc2-lab5-p2-MatheusHALeal/5-regressao/speed-dating/speed-dating2.csv'
## 1847 amb3_s   1/0/T/F/TRUE/FALSE  10    '/home/leal/Documentos/FPCC2/fpcc2-lab5-p2-MatheusHALeal/5-regressao/speed-dating/speed-dating2.csv'
## .... ........ .................. ...... ....................................................................................................
## See problems(...) for more details.

EDA

Por curiosidade, vejamos qual a distribuição da diferença de idade entre os casais.

Embora a maior parte dos casais tenha uma diferença de idade abaixo de 5 anos, existe um volume considerável de casais entre 5 e 10 anos de diferença de idade. Iremos guardar essa informação como age_gap, a diferença em anos de idade dos casais.

Para nossa análise iremos utilizar as variáveis que indicam avaliações feitas de uma pessoa sobre outra que conheceu (attr, sinc, intel, fun, shar e like), além da correlação entre os interesses (int_corr), se ambos possuem a mesma raça (samerace) e a diferença de idade (age_gap). Nossa variável resposta é a dec, que indica se houve match ou não.

Vejamos como essas variáveis se relacionam:

Podemos perceber que, além da variável like, que indica que uma pessoa gostou da outra, a variável attr parece ter uma correlação positiva razoávelmente alta com dec, indicando que o match tem relação com o fato de uma pessoa achar outra atraente ou não.

Alguns fatos interessantes:

  • Correlação negativa razoável entre age_gap e fun, que pode nos dizer que as pessoas não se acham divertidas quando a diferença de idade é alta.
  • Correlação negativa razoável entre age_gap e like, pessoas parecem não gostar daquelas com diferença alta de idade.
  • Correlação positiva alta entre as variáveis (attr e fun) e like, aparentemente pessoas gostam daquelas que lhe aparentam mais atraentes e divertidas.

Modelo

Nós utilizaremos um modelo de regressão logística para prever se o casal deu match ou não, mas para isso precisamos checar o balanceamento das classes para que não interfiram em nosso modelo.

Embora pouca, existe sim uma diferença entre as classes da variável resposta, portanto, faremos um downsample para balancear as classes.

Agora com as classes balanceadas, vejamos o modelo.

term estimate std.error statistic p.value conf.low conf.high
(Intercept) 0.0039183 0.2889317 -19.1813188 0.0000000 0.0022059 0.0068483
int_corr 0.9468934 0.1401057 -0.3894827 0.6969191 0.7193766 1.2460932
samerace 0.9488102 0.0877432 -0.5988669 0.5492616 0.7987990 1.1268048
age_gap 1.0176036 0.0162384 1.0746415 0.2825353 0.9857774 1.0505907
attr 1.5123388 0.0331220 12.4889069 0.0000000 1.4179201 1.6145937
sinc 0.8288149 0.0355000 -5.2889706 0.0000001 0.7728233 0.8882652
intel 0.8332785 0.0409130 -4.4579332 0.0000083 0.7687798 0.9025594
fun 1.1143193 0.0346263 3.1260592 0.0017717 1.0412812 1.1927228
shar 1.1680758 0.0275257 5.6441028 0.0000000 1.1068408 1.2330037
like 1.9142859 0.0458704 14.1560738 0.0000000 1.7515614 2.0967454

As variáveis attr e like são as mais significativas, com valores estimados de 1.914 (IC [1.751, 2.097] com 95% de confiança) e 1.512 (IC [1.418, 1.614] com 95% de confiança) respectivamente. As outras apresentam estimativas mais modestas, embora todas elas possuam influência razoável no provável match.

Como utilizamos um modelo de regressão logística, não temos um R², mas podemos utilizar um pseudo R²:

## fitting null model for pseudo-r2
##           llh       llhNull            G2      McFadden          r2ML 
## -1645.7538368 -2378.4717643  1465.4358550     0.3080625     0.3474499 
##          r2CU 
##     0.4633658

Avaliando o modelo com o R² de McFadden vemos que o modelo explica 30% dos nossos dados.

Concluímos que, com os dados disponíveis e o nosso modelo, quanto mais uma pessoa acha outra atraente e gostar dela, maiores as chances do match acontecer.