class: right, top, my-title, title-slide .title[ # Modelagem Preditiva e Análise dos Determinantes de Tarifas de Transporte por Aplicativo ] .author[ ### Luís Felipe ] .date[ ### Agosto de 2025 ] --- <style type="text/css"> pre { max-height: 450px; overflow-y: auto; } pre[class] { max-height: 450px; } </style> ## Roteiro 1. Introdução e Motivação 2. Visão Geral da Metodologia 3. Os Dados 4. Análise Exploratória 5. Desenvolvimento do Modelo 6. Refinamento 7. O Modelo Final Proposto 8. Avaliação do Modelo 9. Validação 10. Discussão 11. Conclusão --- ## Introdução e Motivação .pull-left[ - A mobilidade urbana foi redefinida pela ascensão de plataformas como a Uber, que hoje são parte integral do ecossistema de transporte. - O coração do seu modelo de negócio é a **precificação dinâmica**: as tarifas não são estáticas, mas flutuam em resposta a uma complexa interação de fatores. - *Distância, duração, demanda, tráfego, sazonalidade...* - Isso torna o cálculo da tarifa um desafio analítico multifacetado. - **Questão Central:** > "Quais são os principais fatores que determinam o valor de uma corrida em Nova York e como podemos construir um modelo preditivo robusto para estimar essa tarifa?" ] .pull-right[ <img src="libs/Uber-Emblema.jpg" width="80%" style="display: block; margin: auto;" /> ] --- ## Visão Geral da Metodologia Nosso processo de análise seguiu um fluxo de trabalho estruturado em 7 etapas: 1. **Carga e Limpeza Inicial:** Carregamento dos dados brutos e remoção de inconsistências. -- 2. **Engenharia de Atributos:** Criação de variáveis explicativas como `distancia_km` e `periodo_dia`. -- 3. **Análise Exploratória:** Investigação das distribuições e relações entre as variáveis. -- 4. **Pré-processamento Avançado:** - Transformação logarítmica para corrigir assimetrias. - Tratamento robusto de outliers (Z-Score e Distância de Mahalanobis). -- 5. **Divisão Treino/Teste:** Separação dos dados para garantir uma avaliação honesta do modelo. -- 6. **Modelagem Iterativa:** Construção e refinamento do modelo de regressão. -- 7. **Diagnóstico e Validação:** Análise de resíduos e avaliação da performance final. --- ## Os Dados .pull-left[ ### Fonte e Descrição - **Fonte:** "Uber Fares Dataset" público, disponibilizado na plataforma Kaggle. - **Volume:** O conjunto de dados original contém **200.000 observações**. - **Variáveis Originais:** - `fare_amount` (tarifa) - `pickup_datetime` (data/hora) - Coordenadas de partida e destino - `passenger_count` ] .pull-right[ ### Preparação e Engenharia de Atributos - **Limpeza:** Remoção de dados ausentes e coordenadas geográficas inválidas. - **Novas Variáveis Criadas:** - `distancia_km`: Calculada com a fórmula de Haversine. - `hora`, `mes`, `estacao` - `periodo_dia`: "dia", "noite" e "madrugada". - **Tratamento de Outliers:** Filtros aplicados em `fare_amount` e `distancia_km` para remover valores não realistas e sem sentido. ] --- ## Análise Exploratória: Variáveis Numéricas .pull-left[ #### Distribuição da Tarifa (`fare_amount`) <img src="slidesTVC2_files/figure-html/hist_fare-1.png" style="display: block; margin: auto;" /> **Observação:** A tarifa apresenta forte assimetria positiva, com a maioria das corridas concentradas em valores mais baixos e uma cauda longa de valores altos, indicando a presença de outliers. ] .pull-right[ #### Distribuição da Distância (`distancia_km`) <img src="slidesTVC2_files/figure-html/dist_plot-1.png" style="display: block; margin: auto;" /> **Observação:** A distância também é assimétrica. A média é maior que a mediana, confirmando que corridas muito longas, embora menos frequentes, "puxam" a média para cima. ] --- ## Análise Exploratória: Variáveis Categóricas .pull-left[ <img src="slidesTVC2_files/figure-html/cat-plots-1.png" style="display: block; margin: auto;" /> ] .pull-right[ ### Observações: - A maior parte das corridas ocorre durante o **dia**. - Há um equilíbrio na quantidade de corridas entre as **estações**. - A grande maioria das viagens é feita com apenas **um passageiro**. ] --- ## Análise Exploratória: Padrões Temporais .pull-left[ <img src="slidesTVC2_files/figure-html/fig-temporal-hora-1.png" style="display: block; margin: auto;" /> ] .pull-right[ ### Observação: A tarifa média flutua ao longo do dia, com dois picos claros: um pela **manhã (7h-9h)** e outro no **final da tarde (17h-19h)**. Estes picos coincidem com os horários de maior movimento, sugerindo que a demanda e o tráfego são componentes de preço importantes. ] --- ## Desenvolvimento do Modelo: O Ponto de Partida A primeira abordagem foi um modelo linear simples com as variáveis originais. `lm(fare_amount ~ passenger_count + distancia_km + periodo_dia + estacao)` ``` ## ## Call: ## lm(formula = fare_amount ~ passenger_count + distancia_km + periodo_dia + ## estacao, data = dados.modelo) ## ## Residuals: ## Min 1Q Median 3Q Max ## -70.69 -5.31 -2.89 1.22 486.93 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 1.093e+01 5.561e-02 196.641 < 2e-16 *** ## passenger_count 7.331e-02 1.594e-02 4.598 4.27e-06 *** ## distancia_km 8.988e-04 8.212e-05 10.945 < 2e-16 *** ## periodo_diamadrugada 7.343e-01 6.880e-02 10.674 < 2e-16 *** ## periodo_dianoite -4.084e-01 4.851e-02 -8.418 < 2e-16 *** ## estacaooutono 6.784e-01 6.366e-02 10.657 < 2e-16 *** ## estacaoprimavera 3.314e-01 6.085e-02 5.446 5.16e-08 *** ## estacaoverao 3.040e-01 6.358e-02 4.782 1.74e-06 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 9.799 on 196193 degrees of freedom ## Multiple R-squared: 0.0026, Adjusted R-squared: 0.002564 ## F-statistic: 73.05 on 7 and 196193 DF, p-value: < 2.2e-16 ``` --- ## Desenvolvimento do Modelo: Diagnóstico Inicial A primeira abordagem, um modelo linear simples, revelou-se fundamentalmente inadequada. .pull-left[ ### Análise de Resíduos <!-- --> - O gráfico de **Resíduos vs. Valores Ajustados** indica que a variância dos erros não é constante. ] .pull-right[ ### Problemas Críticos - **R² Ajustado de 0.0025:** O modelo explica apenas 0.25% da variabilidade da tarifa. É estatisticamente inútil para previsão. - **Heterocedasticidade Severa:** A violação da premissa de variância constante torna os testes de hipótese (p-valores) e os intervalos de confiança não confiáveis. - **Resíduos Não-Normais:** Outra violação de premissa que invalida as inferências estatísticas do modelo. .center[**Conclusão: O modelo inicial precisa de uma reestruturação completa.**] ] --- ## Desenvolvimento do Modelo: O Caminho do Refinamento Com base no diagnóstico, o caminho para um modelo robusto exigiu a correção sequencial dos problemas identificados. .pull-left[ ### 1. Corrigir a Assimetria e Estabilizar a Variância - **Problema:** As distribuições de `fare_amount` e `distancia_km` eram fortemente assimétricas, causando a heterocedasticidade. ] .pull-right[ ### 2. Mitigar a Influência de Outliers - **Problema:** Mesmo após a transformação, pontos extremos poderiam distorcer os coeficientes do modelo. ] --- ## Refinamento - Passo 1: Transformação e Outliers Para corrigir os problemas de assimetria e a influência de outliers, realizamos um pré-processamento robusto. .pull-left[ ### Transformação Logarítmica - Aplicamos a **transformação logarítmica** em `fare_amount` e `distancia_km`. - **Objetivo:** Estabilizar a variância e linearizar a relação entre as variáveis. - O resultado são as novas variáveis `log_fare_amount` e `log_distancia`. ] .pull-right[ ### Tratamento de Outliers em 2 Fases 1. **Filtro Univariado (Z-Score):** - Removemos observações com Z-Score > 3 nas variáveis transformadas. 2. **Filtro Multivariado (Dist. Mahalanobis):** - Removemos observações com combinações raras de preditores (ex: viagem curta com muitos passageiros), que poderiam ter alta alavancagem. ] --- ## Refinamento - Passo 2: Complexidade e Parcimônia Com os dados limpos, o modelo foi refinado para capturar melhor a realidade, mantendo-o o mais simples possível. .pull-left[ ### Simplificação - Após a limpeza, a variável `passenger_count` **perdeu sua significância estatística**. - Seu efeito anterior era provavelmente um artefato causado por outliers. - Optei também por unir a Variável `estacao` em apenas `verao` e `naoverao`, abrindo mão do excesso de variáveis ] .pull-right[ ### Capturando Efeitos Complexos - A análise de resíduos ainda sugeria padrões. Para corrigi-los, adicionamos: - **Termo Polinomial Quadrático:** `I(log_distancia^2)` para modelar a relação curva entre distância e tarifa. - **Termos de Interação:** `log_distancia * periodo_dia` para testar se o custo da distância varia conforme o período do dia. ] --- ## O Modelo Final Proposto O processo iterativo culminou em um modelo que é, ao mesmo tempo, complexo e parcimonioso, explicando **78.6%** da variabilidade da tarifa. `lm(log_fare_amount ~ log_distancia * periodo_dia + I(log_distancia^2) + estacao)` .pull-left[ ### Melhorias Chave: - **R² Ajustado de 0.786:** Alto poder preditivo. - **Resíduos com comportamento adequado:** Validação das premissas. - **Coeficientes significativos:** Todos os termos contribuem para o modelo. ] .pull-right[ ### Insights Gerados: - O modelo agora captura que o preço da distância **aumenta de forma acelerada** (efeito quadrático). - E que o "preço por quilômetro" é **diferente de dia, de noite e de madrugada** (efeito de interação). ] --- ## Avaliação do Modelo: Homocedasticidade O gráfico de **Resíduos vs. Valores Ajustados** compara o comportamento dos erros entre os modelos. <img src="slidesTVC2_files/figure-html/fig-residuos-comparativo-1.png" style="display: block; margin: auto;" /> - **Painel A (Inicial):** Mostra o padrão de **cone** (heterocedasticidade), onde a variância dos erros aumenta com o valor previsto. - **Painel B (Final):** O padrão de cone foi atenuado. Os pontos distribuem-se de forma muito mais **aleatória e centralizada** em torno da linha zero, validando a correção. --- ## Avaliação do Modelo: Normalidade dos Resíduos O **Gráfico Quantil-Quantil (QQ-Plot)** compara os resíduos do modelo com uma distribuição normal perfeita. <img src="slidesTVC2_files/figure-html/fig-qqplot-comparativo-1.png" style="display: block; margin: auto;" /> - **Painel A (Inicial):** Revela uma severa violação da normalidade. Os pontos desviam-se drasticamente da linha, indicando caudas muito pesadas. - **Painel B (Final):** A grande maioria dos pontos agora alinha-se quase perfeitamente com a linha, demonstrando que o tratamento de dados corrigiu eficazmente o problema. --- ## Avaliação do Modelo: Pontos Influentes A **Distância de Cook** mede o impacto de cada observação nos coeficientes do modelo. <img src="slidesTVC2_files/figure-html/fig-cooks-distance-1.png" style="display: block; margin: auto;" /> - A esmagadora maioria dos pontos possui uma Distância de Cook muito próxima de zero e bem abaixo do limiar de referência (linha vermelha). - **Conclusão:** O modelo final é **robusto** e não sofre de influência indevida de observações individuais, validando o tratamento de outliers. --- ## Validação de Performance: Treino vs. Teste A etapa final é validar o desempenho do modelo em dados não vistos para garantir sua capacidade de generalização. .pull-left[ <!-- --> ] .pull-right[ ### Análise - **RMSE (Erro Quadrático Médio):** Penaliza erros maiores. - **MAE (Erro Absoluto Médio):** Erro médio de previsão. A análise mostra que os valores de RMSE e MAE para o conjunto de **Teste** são muito próximos dos valores para o conjunto de **Treino**. **Conclusão:** A pequena diferença entre os erros confirma que o modelo **generaliza bem** para novos dados e não sofre de *overfitting*. ] --- ## Validação Amostral: Observado vs. Previsto Uma inspeção visual em casos individuais também pode fornecer insights valiosos. <img src="slidesTVC2_files/figure-html/validacao-amostral-1.png" style="display: block; margin: auto;" /> **Conclusão:** O gráfico ilustra a superioridade do `Modelo Final` (verde). Os seus pontos estão consistentemente mais próximos dos valores `Observados` (preto), validando a inclusão dos termos de interação e quadrático. --- ## Discussão: Interpretação dos Resultados O insight mais relevante do modelo final é a **relação não-linear e contextual da distância sobre a tarifa**. O custo marginal da distância não é constante, mas sim moderado por outros fatores. <img src="slidesTVC2_files/figure-html/fig-predicao-interacao-1.png" style="display: block; margin: auto;" /> - **Efeito Quadrático:** A significância do termo `log(Distância)²` indica que o preço aumenta de forma **acelerada** para viagens mais longas. O custo de cada quilómetro adicional não é constante. - **Efeito de Interação:** As curvas para 'noite' e 'madrugada' são mais baixas e menos íngremes. Isto prova que o "preço por quilómetro" é **reduzido** nesses períodos, possivelmente refletindo menor tráfego e uma estratégia para incentivar o uso em horários de menor demanda. --- ## Discussão: Performance e Validade do Modelo .pull-left[ ### Forte Poder Preditivo - O **R² ajustado de 0.786** indica que o modelo explica 78,6% da variabilidade no logaritmo da tarifa. - Este é um valor considerado **muito alto** para dados socioeconômicos, que são inerentemente ruidosos, atestando a forte capacidade preditiva do modelo. - A performance consistente entre os dados de treino e teste valida ainda mais a sua utilidade para previsões em novos dados. ] .pull-right[ ### Validade e Robustez - A validade das inferências foi garantida pelo rigoroso processo de diagnóstico: - A análise de resíduos não apresentou padrões sistemáticos preocupantes após o refinamento. - O uso de **erros padrão robustos** (não mostrado no `summary` simples, mas usado na análise do relatório) corrigiu o efeito da heterocedasticidade remanescente. - A ausência de multicolinearidade (VIF) e de pontos excessivamente influentes (Distância de Cook) reforçam a **estabilidade e a robustez** do modelo final. ] --- ## Conclusão .pull-left[ ### Síntese do Estudo - Este estudo propôs-se a desenvolver um modelo de regressão para **prever e interpretar** as tarifas de transporte por aplicativo em Nova York. - Através de um processo iterativo de tratamento de dados, engenharia de atributos e refinamento, foi possível construir um modelo final **robusto e com alto poder preditivo**. ### Limitações Apesar do forte desempenho, o estudo não incluiu variáveis importantes como **condições de tráfego em tempo real**, a **duração da viagem** e o multiplicador do **preço dinâmico (`surge pricing`)**. ] .pull-right[ ### Principais Contribuições - A análise demonstrou que a **distância** é o principal determinante da tarifa, mas a sua influência é complexa: - A relação é **não-linear**, com o custo marginal a aumentar para viagens mais longas. - O efeito da distância é **moderado pelo período do dia**, sendo menos acentuado em horários de baixa demanda. - O trabalho não apenas entrega um modelo preditivo funcional, mas também valida a regressão linear, quando aplicada com rigor diagnóstico, como uma ferramenta **poderosa e transparente** para extrair insights detalhados de fenómenos socioeconómicos complexos. ] --- class: center, middle, inverse # Obrigado! ### Perguntas? #### Contato: santosluisfelipe57@gmail.com