Ejercicio de aplicación: predecir la dureza del hormigón con R

| Última modificación: 26 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabías que se puede predecir la dureza del hormigón con R? En este artículo te mostraremos un ejercicio de aplicación en el que podremos predecir la dureza del hormigón con R, algo que puede ser de suma utilidad en la ingeniería civil.

Predecir la dureza del hormigón con R

El hormigón es el material más importante en la ingeniería civil. La resistencia a la compresión del hormigón es una función altamente no lineal de la edad y los ingredientes.

Características de los datos

Para predecir la dureza del hormigón con R es necesario saber las características de los datos.

La resistencia a la compresión real del hormigón (MPa) para una mezcla dada bajo una edad especifica (días) se determinó a partir del laboratorio. Los datos están en forma cruda (no a escala).

Resumen estadístico

En el ejercicio de predecir la dureza del hormigón con R se presenta un resumen estadístico.

Número de instancias (observaciones): 1030

Cantidad de Atributos: 9

Desglose de atributos: 8 variables de entrada cuantitativas y 1 variable de salida cuantitativa

Faltan valores de atributo: ninguno

  • Cemento (componente 1) – cuantitativo – kg en una mezcla m3 – Variable de entrada.
  • Escoria de alto horno (componente 2) – cuantitativa – kg en una mezcla de m3 – Variable de entrada.
  • Cenizas volantes (componente 3) – cuantitativo – kg en una mezcla m3 – Variable de entrada.
  • Agua (componente 4) – cuantitativa – kg en una mezcla m3 – Variable de entrada.
  • Superplastificante (componente 5) – cuantitativo – kg en una mezcla m3 – Variable de entrada.
  • Agregado grueso (componente 6) – cuantitativo – kg en una mezcla m3 – Variable de entrada.
  • Agregado fino (componente 7) – cuantitativo – kg en una mezcla m3 – Variable de entrada.
  • Edad cuantitativa – Día (1~365) – Variable de entrada.
  • Resistencia a la compresión del hormigón – cuantitativa – MPa -Variable de salida.
In [ ] : concrete <- read.csv ("data/Concrete_Data.csv",
col.names = c ("cemento", "escoria", "cenizas", "agua", "plastificante", "aggrueso", "agfino", "edad", "res")
head (concrete)
cementoescoriacenizasaguaplastificanteaggruesoagfinoedadresistencia
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
1540.00.001622.51040.0676.02879.99
2540.00.001622.51055.0676.02861.89
3332.5142.502280.0932.0594.027040.27
4332.5142.502280.0932.0594.036541.05
5198.6132..401920.0978.4825.536044.30
6266.0114.002280.0932.0670.09047.03
In [ ] : ggpairs(concrete,
lower = list (continuous = wrap ("density", alpha = 0.8, size = 0.2, color = "blue'))
#lower = list (continuous = wrap ("points, alpha = 0.3, size = 0. 1, color = 'blue'))
)
Predecir la dureza del hormigón con R: resultado 1
In [87]: set.seed(12)
idx <- sample (1:nrow (concrete), nrow (concrete) * 0.7)
train.df <- concrete [idx,]
test.df <- concrete [-idx,]

In [91]: model <- lm (resistencia ~.~ agfino - jaggrueso, train.df) summary (model)

Call:

lm (formula = resistencia ~ . ~ agfino – aggrueso, data = train.df)

Residuals:

Min: -28.723

1Q: -6.407

Median: 0.920

3Q: 6.713

Max: 32.034

Coefficients:

EstimateStd.Errort valuePr (> ltl)
(Intercept)29.6723864.9489515.9963.22e – 09 ***
cemento0.1082100.00500121.638< 2e – 16 ***
escoria0.0883630.00592314.918< 2e – 16 ***
cenizas0.0717470.0090237.9517.21e – 15 ***
agua0.2265350.024983-9.068< 2e – 16 ***
plastificante0.2224320.0995992.2330.0258 *
edad0.1126760.00634117.769< 2e – 16 ***

Residual standard error: 10.5 on 714 degrees of freedom

Multiple R-squared: 0.6294

Adjusted R-squared: 0.6263

F-statistic: 202.1 on 6 and 714 DF, p-value: < 2.2e – 16

In [94]: paste ("R^2 testing:", myrsquared (test.df$resistencia, predict (model, test.df)))
plot (train.df$resistencia, train.df$resistencia - predict (model, train.df))
plot (test.df$resistencia, test.df$resistencia - predict (model, test.df))
hist (test.df$resistencia - predict (model, test.df))

‘R^2 testing: 0.564544320934332

Predecir la dureza del hormigón con R: resultado 2

Siguiendo con el ejercicio de predecir la dureza del hormigón con R, en este punto, en el que se muestra la tendencia del modelo, es donde empezamos a ver problemas con el mismo.

El R^2 testing es más bajo que el training (0.6294), con lo cual se intuye que el modelo no está generalizando bien.

Predecir la dureza del hormigón con R: resultado 3

Tanto para el training como para el test se observa la misma tendencia.

Predecir la dureza del hormigón con R: resultado 4

Los resultados del histograma en el ejercicio de predecir la dureza del hormigón con R muestran que los residuos, al principio, tienen una tendencia gaussiana. No obstante, en las representaciones del testing y el training, se está perdiendo mucho, ya que no se observan patrones.

Una de las formas en las que se puede corregir esto es aumentar el grado del polinomio y calcular con distintos valores, cómo sería para distintos grados de distintos polinomios y combinaciones entre training y test. La gráfica quedaría así:

Predecir la dureza del hormigón con R: resultado 5

Observamos que, al parecer, el óptimo está en dos, ya que a partir de este número empiezan a darse discrepancias y los grados fluctúan bastante.

Con esto ya tenemos terminado el ejercicio de predecir la dureza del hormigón en R.

El ejercicio de aplicación acerca de predecir la dureza del hormigón con R puede parecer difícil, por eso, si necesitas ayuda en este camino de aprendizaje, recuerda que en Keepcoding tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. En esta formación intensiva aprenderás en poco tiempo todo lo necesario para incursionar en un mercado laboral lleno de oportunidades. ¡Anímate a pedir información!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado