1 Introdução

A qualidade do ar é um dos principais desafios ambientais enfrentados pelas grandes cidades modernas. O crescimento urbano, aliado ao aumento das emissões industriais e veiculares, contribui diretamente para o aumento da concentração de poluentes atmosféricos, afetando tanto a saúde pública quanto o equilíbrio ambiental.

Entre os principais poluentes atmosféricos destaca-se o ozônio, cuja formação depende fortemente de fatores climáticos como temperatura, velocidade do vento e radiação solar. Compreender essas relações é essencial para apoiar estratégias de monitoramento ambiental e tomada de decisão.

Nesse contexto, técnicas de aprendizado de máquina tornam-se ferramentas importantes para identificar padrões complexos presentes nos dados ambientais. Este trabalho utiliza o algoritmo Multivariate Adaptive Regression Splines (MARS) para modelar a concentração de ozônio atmosférico utilizando o conjunto de dados airquality da linguagem R.

Além da modelagem preditiva, o relatório busca aplicar conceitos de storytelling com dados, combinando narrativa, visualização e interpretação analítica para transformar resultados estatísticos em informações mais claras, acessíveis e relevantes.

1.1 Objetivo do Trabalho

Este trabalho tem como objetivo aplicar o algoritmo MARS na previsão da concentração de ozônio atmosférico utilizando variáveis climáticas presentes no dataset airquality da linguagem R.

1.2 O que é Storytelling com Dados?

Storytelling com dados é a prática de transformar dados brutos em narrativas compreensíveis por meio de análise estatística, visualizações e interpretação contextualizada.

Os três principais elementos do storytelling com dados são:

  • Dados;
  • Visualização;
  • Narrativa.

Essa abordagem permite comunicar insights de maneira clara, envolvente e persuasiva.

1.3 Por que utilizar o MARS?

O algoritmo MARS é especialmente útil em cenários onde:

  • As relações entre variáveis não são lineares;
  • Existem interações complexas entre atributos;
  • O comportamento dos dados muda em determinados intervalos;
  • É necessário manter interpretabilidade no modelo.

Exemplos de aplicações incluem:

  • Modelagem climática e ambiental;
  • Predição de poluição atmosférica;
  • Problemas educacionais;
  • Análises socioeconômicas;
  • Séries temporais.

2 Fundamentação Matemática

O núcleo matemático do MARS é baseado em funções de base, também chamadas de funções de dobradiça (hinge functions). Essas funções permitem alterar a inclinação da reta em pontos específicos do domínio.

2.1 Equação 1 — Função de Dobradiça

\[ f(x)=\max(0,x-c) \]

Essa função permite que o modelo altere o comportamento da reta após determinado ponto crítico.

2.2 Equação 2 — Função de Dobradiça Inversa

\[ f(x)=\max(0,c-x) \]

Representa a versão inversa da hinge function.

Onde:

  • \(x\) representa a variável independente;
  • \(c\) representa o ponto de corte (knot);
  • A função retorna zero antes do ponto crítico e cresce linearmente após ele.

2.3 Equação 3 — Modelo Geral do MARS

\[ \hat{y}=\beta_0+\sum_{m=1}^{M}\beta_m h_m(x) \]

Em que:

  • \(\beta_m\) são os coeficientes ajustados;
  • \(h_m(x)\) representam as funções de base;
  • \(M\) representa o número total de funções utilizadas.

3 Funcionamento do Algoritmo

O treinamento do modelo MARS ocorre em duas etapas principais.

3.1 Fase de Crescimento (Forward Pass)

Nesta etapa, o algoritmo adiciona sucessivamente pares de funções de base buscando minimizar o erro residual.

Características dessa fase:

  • Criação automática de novos nós;
  • Inserção de interações entre variáveis;
  • Construção de um modelo altamente flexível;
  • Tendência ao sobreajuste (overfitting).

3.2 Fase de Poda (Backward Pass)

Após o crescimento excessivo do modelo, inicia-se a etapa de simplificação.

Nessa fase:

  • Funções pouco relevantes são removidas;
  • O modelo é reduzido gradualmente;
  • Busca-se melhorar a capacidade de generalização.

3.3 Equação 4 — Validação Cruzada Generalizada (GCV)

\[ GCV=\frac{\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y}_i)^2} {\left(1-\frac{C(M)}{N}\right)^2} \]

Onde:

  • \(N\) representa o número de observações;
  • \(C(M)\) representa a penalização pela complexidade do modelo.

A métrica GCV é utilizada para encontrar equilíbrio entre desempenho e simplicidade do modelo.

4 Base de Dados

O conjunto de dados utilizado neste trabalho foi o dataset airquality, disponível nativamente na linguagem R.

Essa base reúne informações climáticas coletadas diariamente na cidade de Nova York entre os meses de maio e setembro de 1973. O dataset é amplamente utilizado em estudos introdutórios de estatística, análise de dados e aprendizado de máquina.

A base contém:

4.1 Variáveis Utilizadas

4.1.1 Variável Alvo

  • Ozone: concentração de ozônio atmosférico.

4.1.2 Variáveis Preditoras

  • Solar.R: radiação solar;
  • Wind: velocidade do vento;
  • Temp: temperatura ambiente.

A escolha dessas variáveis permite analisar como diferentes fatores climáticos interagem e afetam diretamente os níveis de poluição atmosférica.

5 Implementação Técnica no R

O experimento foi desenvolvido utilizando o pacote earth, principal implementação do algoritmo MARS na linguagem R.

5.1 Carregamento das Bibliotecas

# Copyright (c) 2026 Jose Edson Amorim Sebastiao
# Todos os direitos reservados.
# Identificador: UFRPE_JEAS_MARS_FINAL_PROJECT

library(earth)
library(caret)
library(DT)
library(dplyr)

6 Carregamento e Manipulação dos Dados

Antes da construção do modelo preditivo, foi necessário realizar uma etapa de preparação e organização dos dados.

6.1 Carregamento da Base

data(airquality)

dados_limpos <- na.omit(airquality)

head(dados_limpos)

6.2 Criação de Nova Variável

Foi criada uma variável categórica chamada Temp_Categoria, responsável por classificar os dias conforme a temperatura observada.

dados_limpos <- dados_limpos %>%
  mutate(
    Temp_Categoria = case_when(
      Temp < 70 ~ "Frio",
      Temp >= 70 & Temp < 85 ~ "Ameno",
      TRUE ~ "Quente"
    )
  )

head(dados_limpos)

6.3 Ordenação dos Dados

dados_ordenados <- dados_limpos %>%
  arrange(desc(Ozone))

head(dados_ordenados)

6.4 Interpretação dos Resultados

A manipulação dos dados permitiu identificar padrões importantes relacionados ao comportamento do ozônio atmosférico.

Observou-se que:

  • Dias mais quentes apresentaram maiores níveis de ozônio;
  • Ventos fortes contribuíram para dispersão dos poluentes;
  • A radiação solar influencia reações químicas atmosféricas.

Esses comportamentos reforçam a necessidade de utilizar modelos não lineares para representar adequadamente fenômenos ambientais.

7 Tabela Interativa com DT

A tabela abaixo apresenta os dados utilizados no estudo de forma interativa.

O pacote DT permite:

datatable(
  dados_limpos,
  options = list(
    pageLength = 5,
    autoWidth = TRUE
  ),
  caption = "Tabela Interativa do Dataset Airquality"
)

8 Storytelling dos Resultados

Os resultados obtidos revelam um comportamento importante relacionado à qualidade do ar.

Durante dias com temperaturas mais elevadas, observou-se aumento significativo na concentração de ozônio atmosférico. Esse comportamento sugere que condições climáticas mais quentes favorecem processos químicos responsáveis pela formação do poluente.

Ao mesmo tempo, velocidades maiores do vento demonstraram efeito contrário, contribuindo para dispersão dos poluentes e redução da concentração de ozônio.

O modelo MARS conseguiu identificar automaticamente essas mudanças de comportamento, demonstrando que relações ambientais raramente seguem padrões lineares simples.

9 Divisão Treino/Teste

set.seed(2026)

treino_idx <- sample(
  1:nrow(dados_limpos),
  0.7 * nrow(dados_limpos)
)

treino <- dados_limpos[treino_idx, ]
teste  <- dados_limpos[-treino_idx, ]

dim(treino)
## [1] 77  7
dim(teste)
## [1] 34  7

10 Treinamento do Modelo MARS

modelo_mars <- earth(
  Ozone ~ Solar.R + Wind + Temp,
  data = treino,
  degree = 2,
  pmethod = "backward"
)

summary(modelo_mars)
## Call: earth(formula=Ozone~Solar.R+Wind+Temp, data=treino, pmethod="backward",
##             degree=2)
## 
##                             coefficients
## (Intercept)                   12.7011375
## h(8.6-Wind)                   21.2796138
## h(Temp-71)                     2.9385291
## h(224-Solar.R) * h(Temp-71)   -0.0152645
## h(8.6-Wind) * h(Temp-76)      -0.8560471
## 
## Selected 5 of 16 terms, and 3 of 3 predictors
## Termination condition: Reached nk 21
## Importance: Wind, Temp, Solar.R
## Number of terms at each degree of interaction: 1 2 2
## GCV 266.0054    RSS 15048.3    GRSq 0.7859416    RSq 0.8385668

11 Avaliação do Modelo

11.1 Predições

predicoes <- predict(
  modelo_mars,
  newdata = teste
)

head(predicoes)
##         Ozone
## [1,] 26.78940
## [2,] 12.70114
## [3,] 12.70114
## [4,] 12.70114
## [5,] 12.70114
## [6,] 12.70114

11.2 Métricas de Desempenho

metricas <- postResample(
  predicoes,
  teste$Ozone
)

metricas
##       RMSE   Rsquared        MAE 
## 20.0168712  0.5436924 15.5220669

11.3 Equação 5 — Erro Quadrático Médio (RMSE)

\[ RMSE=\sqrt{\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y}_i)^2} \]

O RMSE mede o erro médio das previsões realizadas pelo modelo.

11.4 Interpretação das Métricas

O modelo apresentou:

  • \(R^2\) igual a 0.544;
  • RMSE igual a 20.02;
  • MAE igual a 15.52.

Os resultados indicam desempenho satisfatório para um problema ambiental com elevada variabilidade.

12 Importância das Variáveis

evimp(modelo_mars)
##         nsubsets   gcv    rss
## Wind           4 100.0  100.0
## Temp           3  49.0   50.7
## Solar.R        1  20.8   21.9

Os resultados indicam que:

13 Diagnóstico Gráfico do Modelo

Os gráficos abaixo apresentam os diagnósticos do modelo MARS treinado para previsão da concentração de ozônio atmosférico.

plot(modelo_mars)

Figura 1 — Diagnósticos do modelo MARS.

Fonte: Elaborado pelo autor (2026).

14 Figura 2 — Relação entre Temperatura e Concentração de Ozônio.

Figura 2 — Fluxo de Ciência de Dados.

Fonte: Adaptado de materiais de Ciência de Dados.

15 Comparação com Regressão Linear

A regressão linear assume comportamento constante entre as variáveis ao longo de todo o domínio dos dados.

O MARS, por outro lado:

Isso torna o modelo mais adequado para fenômenos ambientais complexos.

16 Explicabilidade do Modelo (XAI)

Uma das grandes vantagens do MARS é sua interpretabilidade.

Diferente de modelos considerados “caixa-preta”, como redes neurais profundas, o MARS permite:

Essa característica é extremamente importante em aplicações científicas, ambientais e educacionais.

17 Exercícios de Fixação

  1. Considere a seguinte função:

\[ h(Temp-70)=\max(0,Temp-70) \]

Qual será o resultado para:

  1. Explique por que o parâmetro degree = 2 é importante para modelar fenômenos climáticos.

  2. Descreva o papel da métrica GCV na etapa de poda do algoritmo MARS.

  3. Cite duas vantagens do MARS em relação à regressão linear tradicional.

18 Conclusão

Este trabalho apresentou a aplicação do algoritmo Multivariate Adaptive Regression Splines (MARS) na modelagem da concentração de ozônio atmosférico utilizando variáveis climáticas do dataset airquality.

Os resultados demonstraram que o modelo foi capaz de identificar relações não lineares importantes entre temperatura, velocidade do vento e radiação solar, apresentando desempenho satisfatório na previsão da concentração de ozônio.

Além da modelagem preditiva, o estudo também aplicou conceitos de storytelling com dados, combinando narrativa, visualização e análise estatística para comunicar os resultados de forma clara e interpretável.

Os gráficos, tabelas interativas e métricas apresentadas contribuíram para transformar dados ambientais em informações compreensíveis, reforçando o potencial das técnicas de ciência de dados na análise de problemas reais.

Por fim, conclui-se que o algoritmo MARS representa uma ferramenta eficiente para modelagem ambiental, especialmente em cenários caracterizados por relações complexas e não lineares entre variáveis.

19 Referências Bibliográficas

FRIEDMAN, Jerome H. Multivariate Adaptive Regression Splines. The Annals of Statistics, v. 19, n. 1, p. 1–67, 1991.

MILBORROW, Stephen. earth: Multivariate Adaptive Regression Splines. R Package Documentation, versão 5.3.4, 2024. Disponível em: https://cran.r-project.org/package=earth. Acesso em: 06 maio 2026.

KUHN, Max; JOHNSON, Kjell. Applied Predictive Modeling. New York: Springer, 2013.

JAMES, Gareth; WITTEN, Daniela; HASTIE, Trevor; TIBSHIRANI, Robert. An Introduction to Statistical Learning: with Applications in R. 2. ed. New York: Springer, 2021.

R CORE TEAM. R: A Language and Environment for Statistical Computing. Vienna: R Foundation for Statistical Computing, 2025. Disponível em: https://www.r-project.org/. Acesso em: 06 maio 2026.

KUHN, Max. caret: Classification and Regression Training. R Package Documentation, versão 7.0-1, 2025. Disponível em: https://cran.r-project.org/package=caret. Acesso em: 06 maio 2026.

ANDRADE, Ermeson. Computação para Análise de Dados. Universidade Federal Rural de Pernambuco (UFRPE), 2026. Material de aula disponibilizado na disciplina.