Análise, Otimização e Classificação de Misturas para Pavimentação (AASHTO)

Author

RIBEIRO, M.C., MATOS, V.E., et al. - Projeto DOE + RSM + Classificação - versão Beta

1 1. Introdução

A estabilização de solos com ultrafino (UF) e aglomerante (Agl) visa melhorar o desempenho mecânico (CBR) e a estabilidade volumétrica (expansão). Este estudo adota uma abordagem de DOE fatorial, seguida de RSM e classificação automática alinhada à AASHTO, com objetivo final de construir uma ferramenta operacional confiável.

2 2. Pergunta do Projeto

Como UF e Agl influenciam CBR e expansão, qual combinação otimiza desempenho e custo, e como converter isso em uma ferramenta automática de classificação conforme AASHTO?

3 3. Objetivos

  • DOE (2²): efeitos e interação UF × Agl
  • Diagnóstico de resíduos
  • RSM: região ótima e overdesign
  • Classificação AASHTO (baseada em CBR; expansão como restrição)
  • Ranking custo/eficiência

4 4. Dados

library(tidyverse)

# Base tidy incorporada ao próprio relatório
dados <- tribble(
  ~amostra, ~traco,         ~uf, ~agl, ~cbr,   ~exp,  ~controle,
   1,       "solo_natural",  0,   0,   17.16,  0.06, TRUE,
   1,       "uf15_agl3",    15,   3,   85.85,  0.09, FALSE,
   1,       "uf15_agl5",    15,   5,  108.73,  0.01, FALSE,
   1,       "uf30_agl3",    30,   3,   88.00,  0.05, FALSE,
   1,       "uf30_agl5",    30,   5,  105.00,  0.00, FALSE,
   2,       "solo_natural",  0,   0,   34.04,  0.10, TRUE,
   2,       "uf15_agl3",    15,   3,   69.29,  0.05, FALSE,
   2,       "uf15_agl5",    15,   5,   81.45,  0.01, FALSE,
   2,       "uf30_agl3",    30,   3,   75.00,  0.02, FALSE,
   2,       "uf30_agl5",    30,   5,   88.00,  0.00, FALSE,
   3,       "solo_natural",  0,   0,   42.05,  0.09, TRUE,
   3,       "uf15_agl3",    15,   3,   45.87,  0.03, FALSE,
   3,       "uf15_agl5",    15,   5,   56.71,  0.01, FALSE,
   3,       "uf30_agl3",    30,   3,   78.42,  0.01, FALSE,
   3,       "uf30_agl5",    30,   5,   95.18,  0.00, FALSE,
   4,       "solo_natural",  0,   0,   22.46,  0.17, TRUE,
   4,       "uf15_agl3",    15,   3,   75.75,  0.04, FALSE,
   4,       "uf15_agl5",    15,   5,   97.10,  0.01, FALSE,
   4,       "uf30_agl3",    30,   3,   78.35,  0.03, FALSE,
   4,       "uf30_agl5",    30,   5,   99.12,  0.01, FALSE,
   5,       "solo_natural",  0,   0,   24.90,  0.13, TRUE,
   5,       "uf15_agl3",    15,   3,   94.99,  0.04, FALSE,
   5,       "uf15_agl5",    15,   5,  109.15,  0.01, FALSE,
   5,       "uf30_agl3",    30,   3,   91.45,  0.03, FALSE,
   5,       "uf30_agl5",    30,   5,  106.88,  0.01, FALSE,
   6,       "solo_natural",  0,   0,   30.65,  0.14, TRUE,
   6,       "uf15_agl3",    15,   3,   73.31,  0.12, FALSE,
   6,       "uf15_agl5",    15,   5,   75.55,  0.04, FALSE,
   6,       "uf30_agl3",    30,   3,   82.40,  0.05, FALSE,
   6,       "uf30_agl5",    30,   5,   74.15,  0.03, FALSE,
   7,       "solo_natural",  0,   0,   21.80,  0.52, TRUE,
   7,       "uf15_agl3",    15,   3,   72.79,  0.00, FALSE,
   7,       "uf15_agl5",    15,   5,   89.81,  0.00, FALSE,
   7,       "uf30_agl3",    30,   3,   75.45,  0.00, FALSE,
   7,       "uf30_agl5",    30,   5,   92.12,  0.00, FALSE,
   8,       "solo_natural",  0,   0,   12.36,  0.08, TRUE,
   8,       "uf15_agl3",    15,   3,   76.21,  0.21, FALSE,
   8,       "uf15_agl5",    15,   5,   79.35,  0.08, FALSE,
   8,       "uf30_agl3",    30,   3,   82.33,  0.10, FALSE,
   8,       "uf30_agl5",    30,   5,   88.65,  0.05, FALSE,
   9,       "solo_natural",  0,   0,   17.57,  0.09, TRUE,
   9,       "uf15_agl3",    15,   3,   73.95,  0.00, FALSE,
   9,       "uf15_agl5",    15,   5,   92.68,  0.00, FALSE,
   9,       "uf30_agl3",    30,   3,   69.40,  0.02, FALSE,
   9,       "uf30_agl5",    30,   5,   85.15,  0.01, FALSE,
  10,       "solo_natural",  0,   0,   17.24,  0.09, TRUE,
  10,       "uf15_agl3",    15,   3,   57.05,  0.02, FALSE,
  10,       "uf15_agl5",    15,   5,   73.15,  0.01, FALSE,
  10,       "uf30_agl3",    30,   3,   68.30,  0.01, FALSE,
  10,       "uf30_agl5",    30,   5,   82.15,  0.00, FALSE,
  11,       "solo_natural",  0,   0,   15.98,  0.07, TRUE,
  11,       "uf15_agl3",    15,   3,   55.45,  0.00, FALSE,
  11,       "uf15_agl5",    15,   5,   68.75,  0.00, FALSE,
  11,       "uf30_agl3",    30,   3,   84.50,  0.00, FALSE,
  11,       "uf30_agl5",    30,   5,   91.20,  0.00, FALSE,
  12,       "solo_natural",  0,   0,   45.37,  0.09, TRUE,
  12,       "uf15_agl3",    15,   3,   52.48,  0.00, FALSE,
  12,       "uf15_agl5",    15,   5,   83.55,  0.00, FALSE,
  12,       "uf30_agl3",    30,   3,  115.60,  0.00, FALSE,
  12,       "uf30_agl5",    30,   5,   78.20,  0.00, FALSE,
  13,       "solo_natural",  0,   0,   26.31,  0.00, TRUE,
  13,       "uf15_agl3",    15,   3,   76.77,  0.05, FALSE,
  13,       "uf15_agl5",    15,   5,   92.15,  0.02, FALSE,
  13,       "uf30_agl3",    30,   3,   68.50,  0.04, FALSE,
  13,       "uf30_agl5",    30,   5,   83.20,  0.02, FALSE,
  14,       "solo_natural",  0,   0,   20.57,  0.17, TRUE,
  14,       "uf15_agl3",    15,   3,   83.13,  0.03, FALSE,
  14,       "uf15_agl5",    15,   5,   95.78,  0.01, FALSE,
  14,       "uf30_agl3",    30,   3,   81.50,  0.02, FALSE,
  14,       "uf30_agl5",    30,   5,   89.60,  0.00, FALSE,
  15,       "solo_natural",  0,   0,   11.82,  0.05, TRUE,
  15,       "uf15_agl3",    15,   3,   63.18,  0.09, FALSE,
  15,       "uf15_agl5",    15,   5,   76.95,  0.03, FALSE,
  15,       "uf30_agl3",    30,   3,   75.40,  0.05, FALSE,
  15,       "uf30_agl5",    30,   5,   88.90,  0.02, FALSE,
  16,       "solo_natural",  0,   0,   26.22,  0.16, TRUE,
  16,       "uf15_agl3",    15,   3,   76.27,  0.09, FALSE,
  16,       "uf15_agl5",    15,   5,   89.75,  0.03, FALSE,
  16,       "uf30_agl3",    30,   3,   79.15,  0.05, FALSE,
  16,       "uf30_agl5",    30,   5,   94.50,  0.01, FALSE,
  17,       "solo_natural",  0,   0,   21.91,  0.28, TRUE,
  17,       "uf15_agl3",    15,   3,   47.90,  0.05, FALSE,
  17,       "uf15_agl5",    15,   5,   60.15,  0.02, FALSE,
  17,       "uf30_agl3",    30,   3,   72.40,  0.02, FALSE,
  17,       "uf30_agl5",    30,   5,   86.15,  0.00, FALSE,
  18,       "solo_natural",  0,   0,   35.54,  0.62, TRUE,
  18,       "uf15_agl3",    15,   3,  107.12,  0.49, FALSE,
  18,       "uf15_agl5",    15,   5,   92.25,  0.20, FALSE,
  18,       "uf30_agl3",    30,   3,  145.80,  0.05, FALSE,
  18,       "uf30_agl5",    30,   5,  112.40,  0.02, FALSE,
  19,       "solo_natural",  0,   0,   29.73,  0.09, TRUE,
  19,       "uf15_agl3",    15,   3,  113.04,  0.01, FALSE,
  19,       "uf15_agl5",    15,   5,   93.18,  0.00, FALSE,
  19,       "uf30_agl3",    30,   3,  108.50,  0.00, FALSE,
  19,       "uf30_agl5",    30,   5,   85.40,  0.00, FALSE,
  20,       "solo_natural",  0,   0,   18.56,  0.26, TRUE,
  20,       "uf15_agl3",    15,   3,   80.78,  0.10, FALSE,
  20,       "uf15_agl5",    15,   5,   91.25,  0.04, FALSE,
  20,       "uf30_agl3",    30,   3,   76.40,  0.08, FALSE,
  20,       "uf30_agl5",    30,   5,   88.15,  0.05, FALSE,
  21,       "solo_natural",  0,   0,   29.32,  0.13, TRUE,
  21,       "uf15_agl3",    15,   3,   62.11,  0.85, FALSE,
  21,       "uf15_agl5",    15,   5,   52.25,  1.05, FALSE,
  21,       "uf30_agl3",    30,   3,   72.50,  0.08, FALSE,
  21,       "uf30_agl5",    30,   5,   84.30,  0.03, FALSE,
  22,       "solo_natural",  0,   0,   33.69,  0.27, TRUE,
  22,       "uf15_agl3",    15,   3,   75.05,  0.03, FALSE,
  22,       "uf15_agl5",    15,   5,   86.15,  0.01, FALSE,
  22,       "uf30_agl3",    30,   3,   78.40,  0.02, FALSE,
  22,       "uf30_agl5",    30,   5,   91.25,  0.00, FALSE,
  23,       "solo_natural",  0,   0,   23.47,  0.00, TRUE,
  23,       "uf15_agl3",    15,   3,   68.03,  0.05, FALSE,
  23,       "uf15_agl5",    15,   5,   81.55,  0.01, FALSE,
  23,       "uf30_agl3",    30,   3,   86.50,  0.01, FALSE,
  23,       "uf30_agl5",    30,   5,   98.10,  0.00, FALSE,
  24,       "solo_natural",  0,   0,   20.79,  0.33, TRUE,
  24,       "uf15_agl3",    15,   3,   67.42,  0.04, FALSE,
  24,       "uf15_agl5",    15,   5,   79.95,  0.01, FALSE,
  24,       "uf30_agl3",    30,   3,   81.20,  0.02, FALSE,
  24,       "uf30_agl5",    30,   5,   93.45,  0.00, FALSE,
  25,       "solo_natural",  0,   0,   13.44,  0.30, TRUE,
  25,       "uf15_agl3",    15,   3,   88.56,  0.00, FALSE,
  25,       "uf15_agl5",    15,   5,   98.75,  0.00, FALSE,
  25,       "uf30_agl3",    30,   3,   82.10,  0.00, FALSE,
  25,       "uf30_agl5",    30,   5,   91.40,  0.00, FALSE
)

# Fatorial (exclui controle)
dados_fatorial <- dados |>
  filter(!controle) |>
  mutate(
    amostra = factor(amostra),
    uf = factor(uf),
    agl = factor(agl)
  )

5 5. EDA

summary(dados)
    amostra      traco                 uf          agl           cbr        
 Min.   : 1   Length:125         Min.   : 0   Min.   :0.0   Min.   : 11.82  
 1st Qu.: 7   Class :character   1st Qu.:15   1st Qu.:3.0   1st Qu.: 57.05  
 Median :13   Mode  :character   Median :15   Median :3.0   Median : 78.40  
 Mean   :13                      Mean   :18   Mean   :3.2   Mean   : 71.45  
 3rd Qu.:19                      3rd Qu.:30   3rd Qu.:5.0   3rd Qu.: 89.60  
 Max.   :25                      Max.   :30   Max.   :5.0   Max.   :145.80  
      exp          controle      
 Min.   :0.0000   Mode :logical  
 1st Qu.:0.0000   FALSE:100      
 Median :0.0300   TRUE :25       
 Mean   :0.0752                  
 3rd Qu.:0.0800                  
 Max.   :1.0500                  
dados_fatorial |>
  group_by(uf, agl) |>
  summarise(
    n = n(),
    cbr_media = mean(cbr),
    cbr_dp = sd(cbr),
    exp_media = mean(exp),
    exp_dp = sd(exp),
    .groups = "drop"
  )
# A tibble: 4 × 7
  uf    agl       n cbr_media cbr_dp exp_media exp_dp
  <fct> <fct> <int>     <dbl>  <dbl>     <dbl>  <dbl>
1 15    3        25      73.7  16.4     0.0992 0.186 
2 15    5        25      84.2  14.5     0.0644 0.209 
3 30    3        25      83.9  16.9     0.0304 0.0276
4 30    5        25      90.9   8.68    0.0104 0.0154
# Boxplot CBR
ggplot(dados_fatorial, aes(x = interaction(uf, agl), y = cbr)) +
  geom_boxplot() +
  labs(x = "Tratamento (UF, Agl)", y = "CBR")

# Boxplot Expansão
ggplot(dados_fatorial, aes(x = interaction(uf, agl), y = exp)) +
  geom_boxplot() +
  labs(x = "Tratamento (UF, Agl)", y = "Expansão")

# Relação CBR x Exp
ggplot(dados_fatorial, aes(x = cbr, y = exp, color = interaction(uf, agl))) +
  geom_point(size = 2) +
  geom_smooth(method = "lm", se = FALSE, color = "grey40") +
  labs(color = "Tratamento")

5.0.1 Interpretação da EDA

Os valores médios por tratamento mostram um padrão muito favorável à estabilização:

  • uf15_agl3: CBR médio = 73,69; expansão média = 0,099.

  • uf15_agl5: CBR médio = 84,24; expansão média = 0,064.

  • uf30_agl3: CBR médio = 83,90; expansão média = 0,030.

  • uf30_agl5: CBR médio = 90,90; expansão média = 0,010.

  • Controle: CBR médio = 24,52; expansão média = 0,172.

A leitura técnica inicial é clara: todos os tratamentos melhoram fortemente o CBR em relação ao solo natural e todos reduzem a expansão média. uf30_agl5 emerge como a alternativa mais robusta em desempenho médio, enquanto uf30_agl3aparece como candidato muito forte em custo/eficiência.

Nesta etapa, a leitura inicial deve responder três pontos:

  1. Quais tratamentos elevam mais o CBR em relação ao controle.

  2. Quais tratamentos mantêm a expansão em níveis baixos.

  3. Se há indício visual de compromisso entre desempenho mecânico e estabilidade.

A interpretação técnica será feita sempre de forma comparativa. Se um tratamento elevar muito o CBR sem penalizar expansão, ele se torna candidato forte para base potencial. Se o ganho de CBR vier acompanhado de aumento relevante de expansão ou custo, surge a hipótese de solução menos eficiente ou até de overdesign.

6 6. DOE e ANOVA

6.1 6.1 CBR

mod_cbr <- lm(cbr ~ amostra + uf * agl, data = dados_fatorial)
anova(mod_cbr)
Analysis of Variance Table

Response: cbr
          Df  Sum Sq Mean Sq F value    Pr(>F)    
amostra   24 11742.9  489.29  4.1545 1.437e-06 ***
uf         1  1778.4 1778.39 15.1001 0.0002244 ***
agl        1  1925.4 1925.37 16.3481 0.0001307 ***
uf:agl     1    78.7   78.66  0.6679 0.4164855    
Residuals 72  8479.7  117.77                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod_cbr)

Call:
lm(formula = cbr ~ amostra + uf * agl, data = dados_fatorial)

Residuals:
    Min      1Q  Median      3Q     Max 
-23.200  -6.138   0.191   5.253  32.426 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   87.403      5.743  15.220  < 2e-16 ***
amostra2     -18.460      7.674  -2.406 0.018716 *  
amostra3     -27.850      7.674  -3.629 0.000528 ***
amostra4      -9.315      7.674  -1.214 0.228762    
amostra5       3.723      7.674   0.485 0.629082    
amostra6     -20.542      7.674  -2.677 0.009194 ** 
amostra7     -14.352      7.674  -1.870 0.065502 .  
amostra8     -15.260      7.674  -1.989 0.050547 .  
amostra9     -16.600      7.674  -2.163 0.033845 *  
amostra10    -26.732      7.674  -3.484 0.000846 ***
amostra11    -21.920      7.674  -2.856 0.005595 ** 
amostra12    -14.437      7.674  -1.881 0.063959 .  
amostra13    -16.740      7.674  -2.181 0.032415 *  
amostra14     -9.392      7.674  -1.224 0.224951    
amostra15    -20.787      7.674  -2.709 0.008430 ** 
amostra16    -11.977      7.674  -1.561 0.122947    
amostra17    -30.245      7.674  -3.941 0.000186 ***
amostra18     17.498      7.674   2.280 0.025561 *  
amostra19      3.135      7.674   0.409 0.684093    
amostra20    -12.750      7.674  -1.662 0.100960    
amostra21    -29.105      7.674  -3.793 0.000307 ***
amostra22    -14.182      7.674  -1.848 0.068683 .  
amostra23    -13.350      7.674  -1.740 0.086186 .  
amostra24    -16.390      7.674  -2.136 0.036093 *  
amostra25     -6.692      7.674  -0.872 0.386038    
uf30          10.208      3.070   3.326 0.001391 ** 
agl5          10.550      3.070   3.437 0.000981 ***
uf30:agl5     -3.548      4.341  -0.817 0.416486    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.85 on 72 degrees of freedom
Multiple R-squared:  0.6468,    Adjusted R-squared:  0.5143 
F-statistic: 4.882 on 27 and 72 DF,  p-value: 3.852e-08

6.1.1 Interpretação do modelo de CBR

No modelo em blocos por amostra, os resultados numéricos indicam:

  • UF significativo para CBR, com F ≈ 15,10.

  • Agl significativo para CBR, com F ≈ 16,35.

  • Interação UF × Agl fraca, com F ≈ 0,67.

Em termos práticos, aumentar ultrafino e aumentar aglomerante elevam o CBR de forma consistente, mas o ganho conjunto é aproximadamente aditivo. Em média, elevar Agl de 3% para 5% aumenta o CBR em cerca de 8,78 pontos, e elevar UF de 15% para 30% aumenta o CBR em cerca de 8,43 pontos.

Isso é muito positivo para uma futura ferramenta operacional, porque facilita a construção de regras confiáveis e menos sensíveis a combinações muito específicas.

A ANOVA para CBR deverá ser lida em três níveis:

  • efeito de UF: indica se aumentar ultrafino altera o suporte médio;

  • efeito de Agl: indica se aumentar aglomerante de 3% para 5% produz ganho consistente;

  • interação UF × Agl: indica se o efeito do aglomerante depende do nível de UF.

Na prática de engenharia, a interação costuma ser a informação mais valiosa, porque mostra se um aumento de aglomerante só vale a pena em certas composições. Se o efeito de 5% sobre 3% for pequeno ou inconsistente, isso é sinal de possível ganho marginal decrescente.

6.2 6.2 Expansão

mod_exp <- lm(exp ~ amostra + uf * agl, data = dados_fatorial)
anova(mod_exp)
Analysis of Variance Table

Response: exp
          Df  Sum Sq  Mean Sq F value    Pr(>F)    
amostra   24 1.01450 0.042271  3.4240 2.857e-05 ***
uf         1 0.09425 0.094249  7.6342  0.007265 ** 
agl        1 0.01877 0.018769  1.5203  0.221586    
uf:agl     1 0.00137 0.001369  0.1109  0.740102    
Residuals 72 0.88889 0.012346                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(mod_exp)

Call:
lm(formula = exp ~ amostra + uf * agl, data = dados_fatorial)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.4318 -0.0258  0.0038  0.0257  0.5342 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.08560    0.05879   1.456   0.1498    
amostra2    -0.01750    0.07857  -0.223   0.8244    
amostra3    -0.02500    0.07857  -0.318   0.7513    
amostra4    -0.01500    0.07857  -0.191   0.8491    
amostra5    -0.01500    0.07857  -0.191   0.8491    
amostra6     0.02250    0.07857   0.286   0.7754    
amostra7    -0.03750    0.07857  -0.477   0.6346    
amostra8     0.07250    0.07857   0.923   0.3592    
amostra9    -0.03000    0.07857  -0.382   0.7037    
amostra10   -0.02750    0.07857  -0.350   0.7273    
amostra11   -0.03750    0.07857  -0.477   0.6346    
amostra12   -0.03750    0.07857  -0.477   0.6346    
amostra13   -0.00500    0.07857  -0.064   0.9494    
amostra14   -0.02250    0.07857  -0.286   0.7754    
amostra15    0.01000    0.07857   0.127   0.8991    
amostra16    0.00750    0.07857   0.095   0.9242    
amostra17   -0.01500    0.07857  -0.191   0.8491    
amostra18    0.15250    0.07857   1.941   0.0562 .  
amostra19   -0.03500    0.07857  -0.445   0.6573    
amostra20    0.03000    0.07857   0.382   0.7037    
amostra21    0.46500    0.07857   5.918 1.01e-07 ***
amostra22   -0.02250    0.07857  -0.286   0.7754    
amostra23   -0.02000    0.07857  -0.255   0.7998    
amostra24   -0.02000    0.07857  -0.255   0.7998    
amostra25   -0.03750    0.07857  -0.477   0.6346    
uf30        -0.06880    0.03143  -2.189   0.0318 *  
agl5        -0.03480    0.03143  -1.107   0.2718    
uf30:agl5    0.01480    0.04444   0.333   0.7401    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1111 on 72 degrees of freedom
Multiple R-squared:  0.5595,    Adjusted R-squared:  0.3943 
F-statistic: 3.387 on 27 and 72 DF,  p-value: 1.966e-05

6.2.1 Interpretação do modelo de expansão

No modelo em blocos por amostra, os resultados indicam:

  • UF significativo para expansão, com F ≈ 7,63.

  • Agl com efeito fraco/modesto na expansão, com F ≈ 1,52.

  • Interação UF × Agl desprezível, com F ≈ 0,11.

A leitura técnica é que elevar UF reduz expansão de forma mais clara do que simplesmente elevar o teor de aglomerante. Em média, passar de UF = 15% para UF = 30% reduz a expansão média de 0,0818 para 0,0204; já passar de Agl = 3% para Agl = 5% reduz de 0,0648 para 0,0374.

Portanto, para controle volumétrico, o ultrafino parece ser o fator mais decisivo neste conjunto.

A expansão entra como resposta crítica de segurança e estabilidade. A leitura deve observar se algum tratamento reduz a expansão de forma sistemática e se existe combinação problemática. Um tratamento que aumente CBR mas também aumente a expansão pode não ser a escolha ótima, especialmente em uma ferramenta voltada à recomendação operacional.

6.3 6.3 Interação

interaction.plot(dados_fatorial$uf, dados_fatorial$agl, dados_fatorial$cbr)

interaction.plot(dados_fatorial$uf, dados_fatorial$agl, dados_fatorial$exp)

6.3.1 Interpretação dos gráficos de interação

A leitura esperada é de interação fraca, especialmente para CBR. O ganho de aumentar Agl de 3% para 5% foi positivo nos dois níveis de UF, mas com magnitude um pouco maior quando UF = 15% do que quando UF = 30%.

Em termos médios:

  • com UF = 15%, elevar Agl de 3% para 5% aumenta o CBR em cerca de 10,55 pontos;

  • com UF = 30%, esse ganho cai para cerca de 7,00 pontos.

Isso sugere leve ganho marginal decrescente do aglomerante quando o ultrafino já está em nível elevado. Para expansão, o padrão também aponta redução com aumento de UF e, em menor grau, com aumento de Agl, sem interação estrutural forte.

  • Linhas aproximadamente paralelas sugerem pouca interação.

  • Linhas divergentes ou cruzadas sugerem interação relevante.

  • Se a distância entre 3% e 5% variar muito entre UF = 15 e UF = 30, isso reforça a hipótese de comportamento não aditivo.

Essa leitura é central para a etapa seguinte de RSM e para a discussão de eficiência de mistura.

7 7. Diagnóstico dos Resíduos

par(mfrow = c(2, 2))
plot(mod_cbr)

par(mfrow = c(2, 2))
plot(mod_exp)

shapiro.test(residuals(mod_cbr))

    Shapiro-Wilk normality test

data:  residuals(mod_cbr)
W = 0.95943, p-value = 0.003662
shapiro.test(residuals(mod_exp))

    Shapiro-Wilk normality test

data:  residuals(mod_exp)
W = 0.58753, p-value = 2.511e-15

7.0.1 Interpretação do diagnóstico

A expectativa, à luz dos dados, é distinta entre as duas respostas:

  • para CBR, o comportamento tende a ser mais regular, embora existam valores altos em algumas amostras, como 145,80 e 115,60, que podem influenciar alavancagem;

  • para expansão, a assimetria tende a ser mais forte, principalmente por causa de observações como 0,85 e 1,05, o que pode comprometer a normalidade dos resíduos.

Assim, a leitura recomendada é:

  • CBR: o modelo linear em blocos parece bem plausível como primeira aproximação;

  • expansão: convém tratar os resultados com mais cautela e considerar, em etapa posterior, transformação ou análise robusta, caso os gráficos de resíduos confirmem forte assimetria.

O diagnóstico não será tratado como decisão mecânica baseada apenas em p-valor. A interpretação correta combina gráficos e testes.

  • Resíduos vs ajustados: avalia padrão e heterocedasticidade.

  • QQ-plot: avalia aderência aproximada à normalidade.

  • Scale-location: reforça a leitura de homogeneidade de variâncias.

  • Resíduos vs leverage: ajuda a detectar observações influentes.

Se os resíduos apresentarem comportamento aceitável, a ANOVA fica bem sustentada. Se surgirem desvios moderados, a análise continua válida com cautela interpretativa. Se surgirem desvios fortes, será necessário aplicar transformação, método robusto ou análise de sensibilidade.

8 8. Interpretação AASHTO

Classificação baseada em CBR:

  • CBR < 10 → material fraco

  • 10–30 → subleito/sub-base inferior

  • 30–80 → sub-base

  • 80 → base potencial

Expansão será usada como restrição.

8.0.1 Interpretação normativa

Com base nas médias observadas:

  • uf15_agl3 fica na faixa de sub-base alta / transição para base potencial;

  • uf15_agl5 já entra em base potencial por CBR médio;

  • uf30_agl3 também entra em base potencial por CBR médio;

  • uf30_agl5 é a alternativa mais robusta, com CBR médio mais alto e expansão média mais baixa.

Além das médias, a robustez operacional também importa. Pelo comportamento observado, uf30_agl5 apresenta o perfil mais consistente para classificação como base potencial, enquanto uf30_agl3 surge como alternativa fortíssima para sub-base superior ou base potencial de melhor custo/eficiência.

Nesta fase do projeto, a classificação AASHTO será operacionalizada principalmente a partir do CBR, usando a expansão como filtro complementar de segurança. Em uma etapa posterior, a ferramenta poderá incorporar parâmetros adicionais, como granulometria, limite de liquidez e índice de plasticidade, para aproximar a classificação de um enquadramento AASHTO ainda mais completo.

9 9. RSM (inicial)

dados_cont <- dados_fatorial |>
  mutate(
    uf = as.numeric(as.character(uf)),
    agl = as.numeric(as.character(agl))
  )

mod_rsm_cbr <- lm(cbr ~ uf + agl + uf:agl, data = dados_cont)
mod_rsm_exp <- lm(exp ~ uf + agl + uf:agl, data = dados_cont)

summary(mod_rsm_cbr)

Call:
lm(formula = cbr ~ uf + agl + uf:agl, data = dados_cont)

Residuals:
    Min      1Q  Median      3Q     Max 
-31.994  -7.553  -1.537   7.026  61.898 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  42.3402    18.9238   2.237   0.0276 *
uf            1.0353     0.7979   1.298   0.1976  
agl           7.0486     4.5897   1.536   0.1279  
uf:agl       -0.1183     0.1935  -0.611   0.5426  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 14.51 on 96 degrees of freedom
Multiple R-squared:  0.1576,    Adjusted R-squared:  0.1312 
F-statistic: 5.985 on 3 and 96 DF,  p-value: 0.0008768
summary(mod_rsm_exp)

Call:
lm(formula = exp ~ uf + agl + uf:agl, data = dados_cont)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.0992 -0.0544 -0.0104 -0.0004  0.9856 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.2424000  0.1835917   1.320    0.190
uf          -0.0060667  0.0077409  -0.784    0.435
agl         -0.0248000  0.0445275  -0.557    0.579
uf:agl       0.0004933  0.0018774   0.263    0.793

Residual standard error: 0.1408 on 96 degrees of freedom
Multiple R-squared:  0.05669,   Adjusted R-squared:  0.02721 
F-statistic: 1.923 on 3 and 96 DF,  p-value: 0.131

9.1 9.1 Superfícies preditas iniciais

grade_pred <- tidyr::crossing(
  uf = seq(15, 30, by = 1),
  agl = seq(3, 5, by = 0.1)
) |>
  mutate(
    cbr_pred = predict(mod_rsm_cbr, newdata = cur_data()),
    exp_pred = predict(mod_rsm_exp, newdata = cur_data())
  )

ggplot(grade_pred, aes(x = uf, y = agl, fill = cbr_pred)) +
  geom_tile() +
  geom_contour(aes(z = cbr_pred), color = "white", alpha = 0.5) +
  labs(x = "UF (%)", y = "Aglomerante (%)", fill = "CBR predito")

ggplot(grade_pred, aes(x = uf, y = agl, fill = exp_pred)) +
  geom_tile() +
  geom_contour(aes(z = exp_pred), color = "white", alpha = 0.5) +
  labs(x = "UF (%)", y = "Aglomerante (%)", fill = "Expansão predita")

9.1.1 Interpretação da modelagem contínua

Os resultados do DOE sugerem uma superfície inicial simples:

  • aumentar UF desloca a resposta de forma consistente para maior CBR e menor expansão;

  • aumentar Agl também melhora o CBR, mas com sinais de ganho marginal decrescente quando UF já está alto;

  • a interação é fraca, o que sugere uma superfície relativamente suave e favorável à modelagem contínua inicial.

A implicação prática é importante: o caminho para otimização não parece depender de efeitos altamente instáveis entre os fatores. Ao mesmo tempo, o conjunto atual ainda é pequeno para um RSM quadrático pleno; será muito útil adicionar pontos centrais e níveis intermediários para capturar curvatura real.

9.2 9.2 Otimização multicritério inicial

# Funções de desejabilidade iniciais

desej_cbr <- function(x, alvo = 80, maximo = max(dados_cont$cbr)) {
  pmax(0, pmin(1, (x - alvo) / (maximo - alvo)))
}

desej_exp <- function(x, limite = 0.10) {
  pmax(0, pmin(1, 1 - (x / limite)))
}

desej_custo <- function(uf, agl, custo_uf = 1, custo_agl = 4) {
  custo_rel <- custo_uf * uf + custo_agl * agl
  1 / custo_rel
}

grade_opt <- grade_pred |>
  mutate(
    d_cbr = desej_cbr(cbr_pred),
    d_exp = desej_exp(exp_pred),
    d_custo = desej_custo(uf, agl),
    d_global = (d_cbr * d_exp * d_custo)^(1 / 3)
  ) |>
  arrange(desc(d_global))

grade_opt |> slice_head(n = 10)
# A tibble: 10 × 8
      uf   agl cbr_pred exp_pred d_cbr d_exp d_custo d_global
   <dbl> <dbl>    <dbl>    <dbl> <dbl> <dbl>   <dbl>    <dbl>
 1    30   5       90.9   0.0104 0.166 0.896  0.02      0.144
 2    30   4.9     90.6   0.0114 0.160 0.886  0.0202    0.142
 3    29   5       90.5   0.0140 0.159 0.860  0.0204    0.141
 4    30   4.8     90.2   0.0124 0.155 0.876  0.0203    0.140
 5    29   4.9     90.1   0.0150 0.153 0.850  0.0206    0.139
 6    30   4.7     89.9   0.0134 0.150 0.866  0.0205    0.139
 7    28   5       90.0   0.0176 0.152 0.824  0.0208    0.138
 8    29   4.8     89.7   0.0161 0.148 0.839  0.0207    0.137
 9    30   4.6     89.5   0.0144 0.144 0.856  0.0207    0.137
10    28   4.9     89.6   0.0187 0.147 0.813  0.0210    0.136

9.2.1 Interpretação da otimização inicial

A desejabilidade global é uma ponte entre análise estatística e ferramenta operacional. Ela permite combinar três ideias ao mesmo tempo:

  • desempenho mecânico;

  • segurança volumétrica;

  • custo relativo.

Neste ponto do projeto, os pesos de custo ainda são ilustrativos. Isso significa que a ordenação final ainda não deve ser tomada como decisão definitiva. Mesmo assim, a tendência esperada é que soluções próximas de UF = 30% dominem a parte técnica, enquanto a escolha entre Agl = 3% e 5% dependa principalmente do custo real do aglomerante e do nível de segurança exigido.

10 10. Overdesign

Avaliar ganho marginal de 5% vs 3% de aglomerante.

10.0.1 Interpretação de overdesign

Neste conjunto, o aumento de 3% para 5% de aglomerante melhora o desempenho médio, portanto não há evidência de que 5% seja simplesmente desperdício em todas as situações. No entanto, há sinais de ganho marginal decrescente, especialmente quando UF = 30%.

Em resumo:

  • uf30_agl5 é a melhor solução média em desempenho;

  • uf30_agl3 pode ser a melhor solução de custo/eficiência se o custo adicional do aglomerante for relevante;

  • uf15_agl5 melhora bem o suporte, mas não supera uf30_agl3 em estabilidade média.

Ou seja, não há um overdesign absoluto, mas há uma forte hipótese de que parte do ganho obtido com 5% de aglomerante possa não compensar economicamente em alguns cenários.

Overdesign será caracterizado quando o incremento de aglomerante elevar o custo sem produzir ganho proporcional em CBR ou sem contribuir para reduzir expansão. Em termos operacionais, isso significa que a melhor solução não precisa ser a de maior resistência absoluta, mas sim a de melhor compromisso entre desempenho, segurança e custo.

11 11. Classificação Automática

classificar_cbr <- function(cbr) {
  case_when(
    cbr < 10 ~ "Fraco",
    cbr < 30 ~ "Subleito",
    cbr < 80 ~ "Sub-base",
    TRUE ~ "Base"
  )
}

classificar_exp <- function(exp, limite = 0.10) {
  if_else(exp <= limite, "Aceitável", "Crítica")
}

dados_class <- dados_fatorial |>
  mutate(
    classe_cbr = classificar_cbr(cbr),
    classe_exp = classificar_exp(exp),
    classe_final = case_when(
      classe_cbr == "Base" & classe_exp == "Aceitável" ~ "Base potencial",
      classe_cbr == "Sub-base" & classe_exp == "Aceitável" ~ "Sub-base potencial",
      classe_exp == "Crítica" ~ "Requer atenção",
      TRUE ~ "Uso restrito"
    )
  )

dados_class |>
  count(classe_final, sort = TRUE)
# A tibble: 3 × 2
  classe_final           n
  <chr>              <int>
1 Base potencial        56
2 Sub-base potencial    38
3 Requer atenção         6

11.0.1 Interpretação da classificação

A leitura inicial indica:

  • uf30_agl5 como classe dominante de base potencial;

  • uf30_agl3 como classe muito competitiva, especialmente para solução otimizada por custo;

  • uf15_agl5 como alternativa intermediária forte;

  • uf15_agl3 como solução claramente superior ao controle, mas menos robusta que as demais para uso operacional em nível de base.

A evolução natural será incorporar expansão como restrição formal e, depois, custos e outros parâmetros geotécnicos. Com isso, a classificação deixará de ser apenas descritiva e passará a ser recomendatória.

11.1 11.1 Estrutura da regra da futura ferramenta

recomendar_traco <- function(cbr, exp, uf, agl, custo_uf, custo_agl,
                             alvo_cbr = 80, limite_exp = 0.10) {
  custo_total <- uf * custo_uf + agl * custo_agl

  classe_cbr <- case_when(
    cbr < 10 ~ "Fraco",
    cbr < 30 ~ "Subleito",
    cbr < 80 ~ "Sub-base",
    TRUE ~ "Base"
  )

  status_exp <- if_else(exp <= limite_exp, "Aceitável", "Crítica")

  score <- (cbr / alvo_cbr) - (exp / limite_exp) - 0.01 * custo_total

  recomendacao <- case_when(
    classe_cbr == "Base" & status_exp == "Aceitável" & score >= 0.8 ~ "Recomendado",
    classe_cbr %in% c("Base", "Sub-base") & status_exp == "Aceitável" ~ "Potencial",
    TRUE ~ "Não recomendado"
  )

  tibble(
    classe_cbr = classe_cbr,
    status_exp = status_exp,
    custo_total = custo_total,
    score = score,
    recomendacao = recomendacao
  )
}

11.1.1 Interpretação da arquitetura da regra

A regra acima não é o produto final, mas já define a espinha dorsal da futura ferramenta. A decisão deixa de depender apenas de uma variável e passa a integrar:

  • classe mecânica;

  • restrição de expansão;

  • custo total;

  • score de recomendação.

Essa arquitetura é importante porque é transparente, auditável e facilmente calibrável. Quando os custos reais forem informados e surgirem novos parâmetros geotécnicos, a regra pode ser refinada sem perder interpretabilidade.

12 12. Ranking Custo/Eficiência (placeholder)

dados_score <- dados_fatorial |>
  mutate(score = cbr - 10 * exp)

arrange(dados_score, desc(score)) |> head()
# A tibble: 6 × 8
  amostra traco     uf    agl     cbr   exp controle score
  <fct>   <chr>     <fct> <fct> <dbl> <dbl> <lgl>    <dbl>
1 18      uf30_agl3 30    3      146.  0.05 FALSE     145.
2 12      uf30_agl3 30    3      116.  0    FALSE     116.
3 19      uf15_agl3 15    3      113.  0.01 FALSE     113.
4 18      uf30_agl5 30    5      112.  0.02 FALSE     112.
5 5       uf15_agl5 15    5      109.  0.01 FALSE     109.
6 1       uf15_agl5 15    5      109.  0.01 FALSE     109.

12.0.1 Interpretação do score inicial

Mesmo com um score simples, a tendência observada é coerente com o DOE:

  • uf30_agl5 tende a permanecer entre as melhores soluções;

  • uf30_agl3 tende a aparecer muito bem posicionado quando se penaliza expansão e se pensa em eficiência;

  • uf15_agl5 pode ser competitivo, mas com maior sensibilidade em alguns casos;

  • uf15_agl3 parece funcionar mais como solução de entrada, não como solução ótima global.

Na versão operacional, esse score deverá ser substituído por uma função mais realista, incorporando custo unitário de UF, custo unitário de Agl, penalização formal por expansão e bonificação por atendimento às faixas de classificação do projeto.

Este score é apenas um ponto de partida e serve para mostrar a lógica da futura ferramenta. O raciocínio é simples: premiar desempenho mecânico e penalizar instabilidade.

Em versão operacional, esse score deverá ser substituído por uma função mais realista, incorporando:

  • custo unitário de UF;

  • custo unitário de Agl;

  • penalização formal por expansão;

  • bonificação por atendimento a faixas de classificação;

  • eventualmente critérios diferenciados conforme o objetivo do projeto, como base, sub-base ou material de reforço.

13 13. Próximos Passos

  • Validar se os limites operacionais de expansão adotados na ferramenta devem ser mais conservadores ou mais permissivos.

  • Incorporar custos reais de UF e Agl.

  • Refinar a ANOVA com testes complementares de premissas, se desejado.

  • Evoluir do RSM inicial para RSM quadrático com novos pontos experimentais.

  • Adicionar parâmetros AASHTO complementares quando disponíveis.

  • Transformar a função de recomendação em módulo reutilizável para Shiny.

14 14. O que será necessário para evoluir para a ferramenta operacional

Com base no que as análises já mostram, os itens mais importantes a providenciar nas próximas fases são:

  1. Custos reais dos insumos

    • custo unitário do UF;

    • custo unitário do aglomerante;

    • custo logístico, se relevante.

  2. Critérios técnicos de projeto

    • classe de tráfego ou objetivo da camada;

    • limite operacional de expansão a ser adotado na ferramenta;

    • eventual fator de segurança para recomendação conservadora.

  3. Parâmetros geotécnicos complementares

    • granulometria;

    • LL, LP e IP;

    • eventualmente equivalente de areia ou outros indicadores.

  4. Expansão do experimento para RSM completo

    • pontos centrais;

    • níveis intermediários de UF e Agl;

    • eventualmente novas amostras de validação.

  5. Base de validação externa

    • resultados independentes para verificar se a regra automatizada mantém bom desempenho fora do conjunto atual.