Crear y evaluar un modelo de regresión lineal múltiple para predecir las ventas con datos simulados de una empresa dependiendo de las inversiones realizadas en publicidad
En la mayoría de los problemas de investigación en los que se aplica el análisis de regresión se necesita más de una variable independiente para el modelo de regresión.
La complejidad de la mayoría de mecanismos científicos es tal que, con el fin de predecir una respuesta importante, se requiere un modelo de regresión múltiple. Cuando un modelo es lineal en los coeficientes se denomina modelo de regresión lineal múltiple.
Para el caso de k variables independientes, \(x_1,x_2,x_3…,x_k\), y \(y\) como la variable dependiente.
\(x_1, x_2, x_3,...,x_k\) son las variable s que afectan a la variable dependiente en el modelo de regresión lineal múltiple.
Muchos problemas de investigación y de la industria, requieren la estimación de las relaciones existentes entre el patrón de variabilidad de una variable aleatoria y los valores de una o más variables aleatorias. [@urrutiamosquera2011]
Al generar un modelo de regresión lineal múltiple es importante identificar los estadísticos de R2, que se denomina coeficiente de determinación y es una medida de la proporción de la variabilidad explicada por el modelo ajustado.
De igual forma, el valor de R2 ajustado (R Square Adjusted) o coeficiente de determinación ajustado, es una variación de R2 que proporciona un ajuste para los grados de libertad [@walpole2012].
El estadístico R Ajustado está diseñado para proporcionar un estadístico que castigue un modelo sobreajustado, de manera que se puede esperar que favorezca al modelo [@walpole2012].
Una variable Y puede predecirse conforme y de acuerdo con la siguiente fórmula de la regresión múltiple.
\[ Y = b_0 + b_1{x_1} + b_2{x_2} + b_3{x_3}+ …..b_k{x_k} \]
library(dplyr)
library(ggplot2)
# library(plotly) # no se está usando
library(knitr)
library(PerformanceAnalytics) # Para correlaciones gráficas
library(caret) # Para particionar
library(Metrics) # Para determinar rmse
library(PerformanceAnalytics) # Para cor gráfica
datos <- read.csv("https://raw.githubusercontent.com/rpizarrog/Analisis-Inteligente-de-datos/main/datos/Advertising_Web.csv")
str(datos)
## 'data.frame': 200 obs. of 7 variables:
## $ X.1 : int 1 2 3 4 5 6 7 8 9 10 ...
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ TV : num 230.1 44.5 17.2 151.5 180.8 ...
## $ Radio : num 37.8 39.3 45.9 41.3 10.8 48.9 32.8 19.6 2.1 2.6 ...
## $ Newspaper: num 69.2 45.1 69.3 58.5 58.4 75 23.5 11.6 1 21.2 ...
## $ Web : num 306.6 302.7 49.5 257.8 195.7 ...
## $ Sales : num 22.1 10.4 9.3 18.5 12.9 7.2 11.8 13.2 4.8 10.6 ...
summary(datos)
## X.1 X TV Radio
## Min. : 1.00 Min. : 1.00 Min. : 0.70 Min. : 0.000
## 1st Qu.: 50.75 1st Qu.: 50.75 1st Qu.: 74.38 1st Qu.: 9.975
## Median :100.50 Median :100.50 Median :149.75 Median :22.900
## Mean :100.50 Mean :100.50 Mean :147.04 Mean :23.264
## 3rd Qu.:150.25 3rd Qu.:150.25 3rd Qu.:218.82 3rd Qu.:36.525
## Max. :200.00 Max. :200.00 Max. :296.40 Max. :49.600
## Newspaper Web Sales
## Min. : 0.30 Min. : 4.308 Min. : 1.60
## 1st Qu.: 12.75 1st Qu.: 99.049 1st Qu.:10.38
## Median : 25.75 Median :156.862 Median :12.90
## Mean : 30.55 Mean :159.587 Mean :14.02
## 3rd Qu.: 45.10 3rd Qu.:212.312 3rd Qu.:17.40
## Max. :114.00 Max. :358.247 Max. :27.00
Quitar las primeras columnas
datos <- select(datos, TV, Radio, Newspaper, Web, Sales)
cor(datos)
## TV Radio Newspaper Web Sales
## TV 1.00000000 0.05480866 0.05664787 0.01257597 0.78222442
## Radio 0.05480866 1.00000000 0.35410375 -0.12267338 0.57622257
## Newspaper 0.05664787 0.35410375 1.00000000 -0.05775877 0.22829903
## Web 0.01257597 -0.12267338 -0.05775877 1.00000000 0.00210779
## Sales 0.78222442 0.57622257 0.22829903 0.00210779 1.00000000
chart.Correlation(datos)
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
## Warning in par(usr): argument 1 does not name a graphical parameter
En caso necesario. No se observan datos extraños …. porque son pocos.
Aleatoriamente se reparten las observaciones con el 70% para datos de entrenamiento y el 30% para datos de validación.
Sembrar una semilla con set.seed()
set.seed(1280)
n <- nrow(datos) # cantidad de observaciones
entrena <- createDataPartition(y = datos$Sales, p = 0.70, list = FALSE, times = 1)
# Datos entrenamiento
datos.entrenamiento <- datos[entrena, ] # [renglones, columna]
# Datos validación
datos.validacion <- datos[-entrena, ]
datos.entrenamiento
## TV Radio Newspaper Web Sales
## 2 44.5 39.3 45.1 302.653070 10.4
## 3 17.2 45.9 69.3 49.498908 9.3
## 4 151.5 41.3 58.5 257.816893 18.5
## 6 8.7 48.9 75.0 22.072395 7.2
## 8 120.2 19.6 11.6 229.971459 13.2
## 9 8.6 2.1 1.0 144.617385 4.8
## 10 199.8 2.6 21.2 111.272264 10.6
## 11 66.1 5.8 24.2 45.359029 8.6
## 12 214.7 24.0 4.0 164.971764 17.4
## 13 23.8 35.1 65.9 87.921085 9.2
## 14 97.5 7.6 7.2 173.658035 9.7
## 15 204.1 32.9 46.0 245.774960 19.0
## 16 195.4 47.7 52.9 148.095134 22.4
## 17 67.8 36.6 114.0 202.638903 12.5
## 18 281.4 39.6 55.8 41.755313 24.4
## 19 69.2 20.5 18.3 210.489910 11.3
## 21 218.4 27.7 53.4 59.960554 18.0
## 22 237.4 5.1 23.5 296.952070 12.5
## 23 13.2 15.9 49.6 219.882776 5.6
## 24 228.3 16.9 26.2 51.170073 15.5
## 25 62.3 12.6 18.3 256.965240 9.7
## 26 262.9 3.5 19.5 160.562859 12.0
## 27 142.9 29.3 12.6 275.512483 15.0
## 28 240.1 16.7 22.9 228.157437 15.9
## 29 248.8 27.1 22.9 318.644967 18.9
## 30 70.6 16.0 40.8 61.324362 10.5
## 32 112.9 17.4 38.6 295.883989 11.9
## 33 97.2 1.5 30.0 139.781089 9.6
## 34 265.6 20.0 0.3 94.207255 17.4
## 36 290.7 4.1 8.5 181.983424 12.8
## 37 266.9 43.8 5.0 96.316829 25.4
## 38 74.7 49.4 45.7 56.536223 14.7
## 39 43.1 26.7 35.1 122.753591 10.1
## 40 228.0 37.7 32.0 196.483269 21.5
## 41 202.5 22.3 31.6 88.212823 16.6
## 42 177.0 33.4 38.7 147.859324 17.1
## 44 206.9 8.4 26.4 213.609610 12.9
## 45 25.1 25.7 43.3 245.764410 8.5
## 46 175.1 22.5 31.5 62.809264 14.9
## 47 89.7 9.9 35.7 216.504015 10.6
## 48 239.9 41.5 18.5 105.962913 23.2
## 49 227.2 15.8 49.9 75.269182 14.8
## 50 66.9 11.7 36.8 205.253501 9.7
## 52 100.4 9.6 3.6 41.335255 10.7
## 55 262.7 28.8 15.9 324.615179 20.2
## 56 198.9 49.4 60.0 204.418927 23.7
## 57 7.3 28.1 41.4 121.328525 5.5
## 58 136.2 19.2 16.6 60.454355 13.2
## 59 210.8 49.6 37.7 32.411740 23.8
## 60 210.7 29.5 9.3 138.895554 18.4
## 61 53.5 2.0 21.4 39.217153 8.1
## 62 261.3 42.7 54.7 224.832039 24.2
## 63 239.3 15.5 27.3 312.209555 15.7
## 65 131.1 42.8 28.9 124.382228 18.0
## 68 139.3 14.5 10.2 207.661990 13.4
## 69 237.4 27.5 11.0 291.548597 18.9
## 70 216.8 43.9 27.2 149.396103 22.3
## 71 199.1 30.6 38.7 210.752142 18.3
## 72 109.8 14.3 31.7 151.990733 12.4
## 74 129.4 5.7 31.3 61.306191 11.0
## 75 213.4 24.6 13.1 156.284261 17.0
## 76 16.9 43.7 89.4 70.234282 8.7
## 78 120.5 28.5 14.2 97.455125 14.2
## 79 5.4 29.9 9.4 4.308085 5.3
## 81 76.4 26.7 22.3 268.151320 11.8
## 82 239.8 4.1 36.9 169.946395 12.3
## 83 75.3 20.3 32.5 231.209829 11.3
## 84 68.4 44.5 35.6 78.393104 13.6
## 85 213.5 43.0 33.8 191.868374 21.7
## 86 193.2 18.4 65.7 223.578793 15.2
## 87 76.3 27.5 16.0 193.830894 12.0
## 91 134.3 4.9 9.3 258.355488 11.2
## 92 28.6 1.5 33.0 172.467947 7.3
## 93 217.7 33.5 59.0 150.962754 19.4
## 94 250.9 36.5 72.3 202.102158 22.2
## 95 107.4 14.0 10.9 151.990733 11.5
## 96 163.3 31.6 52.9 155.594877 16.9
## 98 184.9 21.0 22.0 253.300721 15.5
## 99 289.7 42.3 51.2 183.569585 25.4
## 100 135.2 41.7 45.9 40.600350 17.2
## 102 296.4 36.3 100.9 61.005251 23.8
## 103 280.2 10.1 21.4 49.808451 14.8
## 104 187.9 17.2 17.9 97.088630 14.7
## 105 238.2 34.3 5.3 112.155489 20.7
## 106 137.9 46.4 59.0 138.762632 19.2
## 107 25.0 11.0 29.7 15.938208 7.2
## 108 90.4 0.3 23.2 261.380879 8.7
## 109 13.1 0.4 25.6 252.391353 5.3
## 111 225.8 8.2 56.5 95.185762 13.4
## 112 241.7 38.0 23.2 180.511528 21.8
## 113 175.7 15.4 2.4 71.682551 14.1
## 115 78.2 46.8 34.5 76.770428 14.6
## 117 139.2 14.3 25.6 234.183118 12.2
## 120 19.4 16.0 22.3 112.892609 6.6
## 121 141.3 26.8 46.2 65.525461 15.5
## 122 18.8 21.7 50.4 63.854924 7.0
## 123 224.0 2.4 15.6 89.515821 11.6
## 124 123.1 34.6 12.4 15.757191 15.2
## 128 80.2 0.0 9.2 358.247042 8.8
## 129 220.3 49.0 3.2 187.437060 24.7
## 130 59.6 12.0 43.1 197.196554 9.7
## 132 265.2 2.9 43.0 172.156659 12.7
## 133 8.4 27.2 2.1 238.055219 5.7
## 135 36.9 38.6 65.6 81.246748 10.8
## 136 48.3 47.0 8.5 61.227323 11.6
## 138 273.7 28.9 59.7 288.260611 20.8
## 141 73.4 17.0 12.9 174.772137 10.9
## 144 104.6 5.7 34.4 336.571095 10.4
## 145 96.2 14.8 38.9 157.440047 11.4
## 146 140.3 1.9 9.0 231.883385 10.3
## 148 243.2 49.0 44.3 151.990733 25.4
## 150 44.7 25.8 20.6 235.622449 10.1
## 153 197.6 23.3 14.2 159.522559 16.6
## 155 187.8 21.1 9.5 63.071208 15.6
## 156 4.1 11.6 5.7 113.270712 3.2
## 157 93.9 43.5 50.5 74.361939 15.3
## 158 149.8 1.3 24.3 145.803211 10.1
## 163 188.4 18.1 25.6 158.461520 14.9
## 165 117.2 14.7 5.4 109.008763 11.9
## 166 234.5 3.4 84.8 135.024909 11.9
## 171 50.0 11.6 18.4 64.014805 8.4
## 172 164.5 20.9 47.4 96.180391 14.5
## 177 248.4 30.2 20.3 163.852044 20.2
## 178 170.2 7.8 35.2 104.917344 11.7
## 179 276.7 2.3 23.7 137.323772 11.8
## 180 165.6 10.0 17.6 151.990733 12.6
## 181 156.6 2.6 8.3 122.116470 10.5
## 182 218.5 5.4 27.4 162.387486 12.2
## 183 56.2 5.7 29.7 42.199287 8.7
## 184 287.6 43.0 71.8 154.309725 26.2
## 185 253.8 21.3 30.0 181.579051 17.6
## 186 205.0 45.1 19.6 208.692690 22.6
## 187 139.5 2.1 26.6 236.744035 10.3
## 188 191.1 28.7 18.2 239.275713 17.3
## 189 286.0 13.9 3.7 151.990733 15.9
## 190 18.7 12.1 23.4 222.906951 6.7
## 191 39.5 41.1 5.8 219.890583 10.8
## 194 166.8 42.0 3.6 192.246211 19.6
## 196 38.2 3.7 13.8 248.841073 7.6
## 197 94.2 4.9 8.1 118.041856 9.7
## 198 177.0 9.3 6.4 213.274671 12.8
## 199 283.6 42.0 66.2 237.498063 25.5
datos.validacion
## TV Radio Newspaper Web Sales
## 1 230.1 37.8 69.2 306.634752 22.1
## 5 180.8 10.8 58.4 195.660076 12.9
## 7 57.5 32.8 23.5 246.811598 11.8
## 20 147.3 23.9 19.1 268.735384 14.6
## 31 292.9 28.3 43.2 121.464347 21.4
## 35 95.7 1.4 7.4 321.174609 9.5
## 43 293.6 27.7 1.8 174.716820 20.7
## 51 199.8 3.1 34.6 151.990733 11.4
## 53 216.4 41.7 39.6 161.802512 22.6
## 54 182.6 46.2 58.7 176.050052 21.2
## 64 102.7 29.6 8.4 183.009750 14.0
## 66 69.0 9.3 0.9 205.993485 9.3
## 67 31.5 24.6 2.2 216.471397 9.5
## 73 26.8 33.0 19.3 211.990907 8.8
## 77 27.5 1.6 20.7 117.101925 6.9
## 80 116.0 7.7 23.1 120.053504 11.0
## 88 110.7 40.6 63.2 107.430521 16.0
## 89 88.3 25.5 73.4 260.101928 12.9
## 90 109.8 47.8 51.4 162.727890 16.7
## 97 197.6 3.5 5.9 139.830544 11.7
## 101 222.4 4.3 49.8 125.627143 11.7
## 110 255.4 26.9 5.5 273.454125 19.8
## 114 209.6 20.6 10.7 42.883796 15.9
## 116 75.1 35.0 52.7 204.276714 12.6
## 118 76.4 0.8 14.8 234.384501 9.4
## 119 125.7 36.9 79.2 187.840415 15.9
## 125 229.5 32.3 74.2 88.080721 19.7
## 126 87.2 11.8 25.9 121.090982 10.6
## 127 7.8 38.9 50.6 209.471977 6.6
## 131 0.7 39.6 8.7 162.902591 1.6
## 134 219.8 33.5 45.1 171.478018 19.6
## 137 25.6 39.0 9.3 77.230797 9.5
## 139 43.0 25.9 20.5 181.368740 9.6
## 140 184.9 43.9 1.7 106.253829 20.7
## 142 193.7 35.4 75.6 152.284937 19.2
## 143 220.5 33.2 37.9 6.007436 20.1
## 147 240.1 7.3 8.7 23.496943 13.2
## 149 38.0 40.3 11.9 75.207978 10.9
## 151 280.7 13.9 37.0 81.040617 16.1
## 152 121.0 8.4 48.7 103.255212 11.6
## 154 171.3 39.7 37.7 155.016224 19.0
## 159 11.7 36.9 45.2 185.866079 7.3
## 160 131.7 18.4 34.6 196.370304 12.9
## 161 172.5 18.1 30.7 207.496801 14.4
## 162 85.7 35.8 49.3 188.933530 13.3
## 164 163.5 36.8 7.4 82.228794 18.0
## 167 17.9 37.6 21.6 99.936953 8.0
## 168 206.8 5.2 19.4 115.371957 12.2
## 169 215.4 23.6 57.6 203.431267 17.1
## 170 284.3 10.6 6.4 157.900110 15.0
## 173 19.6 20.1 17.0 155.583662 7.6
## 174 168.4 7.1 12.8 218.180829 11.7
## 175 222.4 3.4 13.1 144.525662 11.5
## 176 276.9 48.9 41.8 151.990733 27.0
## 192 75.5 10.8 6.0 301.481194 9.9
## 193 17.2 4.1 31.6 265.028644 5.9
## 195 149.7 35.6 6.0 99.579981 17.3
## 200 232.1 8.6 8.7 151.990733 13.4
El modelo se construye con datos de entrenamiento
Modelo de Regresión Múltiple o Multivarido
\[ Y <- \beta_0 + \beta_1 \cdot X_1 + \beta_2\cdot X_2 +\beta\cdot X_3 +...+ \beta_n\cdot X_n \]
modelo_rm <- lm(data = datos.entrenamiento, formula = Sales ~ TV + Radio + Newspaper + Web)
summary(modelo_rm)
##
## Call:
## lm(formula = Sales ~ TV + Radio + Newspaper + Web, data = datos.entrenamiento)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.0618 -0.8707 0.2627 1.0978 2.7681
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.591862 0.434971 5.959 2.04e-08 ***
## TV 0.044297 0.001550 28.576 < 2e-16 ***
## Radio 0.200563 0.009530 21.045 < 2e-16 ***
## Newspaper -0.008063 0.006547 -1.232 0.2202
## Web 0.003701 0.001665 2.222 0.0279 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.558 on 137 degrees of freedom
## Multiple R-squared: 0.9162, Adjusted R-squared: 0.9138
## F-statistic: 374.5 on 4 and 137 DF, p-value: < 2.2e-16
Los coeficientes TV y Radio presentan niveles de confianza por encima del 99.9%; Newspaper no presenta un nivel de confianza por encima del 90%, por lo cual puede pensarse en despreciar esa variable para futuros análisis; el coeficiente para WEB presenta un nivel de confianza del 95%.
Fómula Rsquare Ajustado
El valor del R Square se interpreta que tanto las variables la variabilidad de las ventas. El valor del R Square ajustado es expresa que hay buen ajuste entre los datos reales y los datos modelados de predicción [@urrutiamosquera2011].
El valor de R Square ajustado en este modelo sobrepasa el 85% que significa que las variables independientes representan o explican aproximadamente el 85% el valor de la variable dependiente (Sales).
Ese valor, se compara contra un métrica inicial esperada que seguramente se define para hablar de que si esta conforme a lo esperado. Por ejemplo se esperaba que este valor estuviera por encima del 70% de tal forma que el modelo si cumple con esa expectativa y el modelo se acepta.
Se hacen predicciones con los datos de validación.
predicciones <- predict(object = modelo_rm, newdata = datos.validacion)
# predicciones
Construir un data frame llamado comparaciones para comparar los datos reales contra los datos predichos y servirán para identificar el estadístico rmse.
comparaciones <- data.frame(datos.validacion, predicciones)
comparaciones
## TV Radio Newspaper Web Sales predicciones
## 1 230.1 37.8 69.2 306.634752 22.1 20.942836
## 5 180.8 10.8 58.4 195.660076 12.9 13.020151
## 7 57.5 32.8 23.5 246.811598 11.8 12.441394
## 20 147.3 23.9 19.1 268.735384 14.6 14.750883
## 31 292.9 28.3 43.2 121.464347 21.4 21.343646
## 35 95.7 1.4 7.4 321.174609 9.5 8.240911
## 43 293.6 27.7 1.8 174.716820 20.7 21.785198
## 51 199.8 3.1 34.6 151.990733 11.4 12.347730
## 53 216.4 41.7 39.6 161.802512 22.6 20.820776
## 54 182.6 46.2 58.7 176.050052 21.2 20.124802
## 64 102.7 29.6 8.4 183.009750 14.0 13.687431
## 66 69.0 9.3 0.9 205.993485 9.3 8.268734
## 67 31.5 24.6 2.2 216.471397 9.5 9.704498
## 73 26.8 33.0 19.3 211.990907 8.8 11.026574
## 77 27.5 1.6 20.7 117.101925 6.9 4.397440
## 80 116.0 7.7 23.1 120.053504 11.0 9.532738
## 88 110.7 40.6 63.2 107.430521 16.0 15.526443
## 89 88.3 25.5 73.4 260.101928 12.9 11.988505
## 90 109.8 47.8 51.4 162.727890 16.7 17.230424
## 97 197.6 3.5 5.9 139.830544 11.7 12.516891
## 101 222.4 4.3 49.8 125.627143 11.7 13.369394
## 110 255.4 26.9 5.5 273.454125 19.8 20.268202
## 114 209.6 20.6 10.7 42.883796 15.9 16.080567
## 116 75.1 35.0 52.7 204.276714 12.6 13.269409
## 118 76.4 0.8 14.8 234.384501 9.4 6.884759
## 119 125.7 36.9 79.2 187.840415 15.9 15.617421
## 125 229.5 32.3 74.2 88.080721 19.7 18.963965
## 126 87.2 11.8 25.9 121.090982 10.6 9.060553
## 127 7.8 38.9 50.6 209.471977 6.6 11.106568
## 131 0.7 39.6 8.7 162.902591 1.6 11.097916
## 134 219.8 33.5 45.1 171.478018 19.6 19.318239
## 137 25.6 39.0 9.3 77.230797 9.5 11.758661
## 139 43.0 25.9 20.5 181.368740 9.6 10.197183
## 140 184.9 43.9 1.7 106.253829 20.7 19.966636
## 142 193.7 35.4 75.6 152.284937 19.2 18.226211
## 143 220.5 33.2 37.9 6.007436 20.1 18.734709
## 147 240.1 7.3 8.7 23.496943 13.2 14.708520
## 149 38.0 40.3 11.9 75.207978 10.9 12.540227
## 151 280.7 13.9 37.0 81.040617 16.1 17.815497
## 152 121.0 8.4 48.7 103.255212 11.6 9.626044
## 154 171.3 39.7 37.7 155.016224 19.0 18.412054
## 159 11.7 36.9 45.2 185.866079 7.3 10.834372
## 160 131.7 18.4 34.6 196.370304 12.9 12.563956
## 161 172.5 18.1 30.7 207.496801 14.4 14.383733
## 162 85.7 35.8 49.3 188.933530 13.3 13.870034
## 164 163.5 36.8 7.4 82.228794 18.0 17.459809
## 167 17.9 37.6 21.6 99.936953 8.0 11.121653
## 168 206.8 5.2 19.4 115.371957 12.2 13.066012
## 169 215.4 23.6 57.6 203.431267 17.1 17.155243
## 170 284.3 10.6 6.4 157.900110 15.0 17.844288
## 173 19.6 20.1 17.0 155.583662 7.6 7.930155
## 174 168.4 7.1 12.8 218.180829 11.7 12.179790
## 175 222.4 3.4 13.1 144.525662 11.5 13.554729
## 176 276.9 48.9 41.8 151.990733 27.0 24.890748
## 192 75.5 10.8 6.0 301.481194 9.9 9.169798
## 193 17.2 4.1 31.6 265.028644 5.9 4.902193
## 195 149.7 35.6 6.0 99.579981 17.3 16.683340
## 200 232.1 8.6 8.7 151.990733 13.4 15.090440
rmse Root Mean Stándard Error (Root-mean-square deviation), este valor normalmente se compara contra otro modelo y el que esté mas cerca de cero es mejor.
La raiz del Error Cuadrático Medio (rmse) es una métrica que dice qué tan lejos están los valores predichos de los valores observados o reales en un análisis de regresión, en promedio. Se calcula como:
\[ rmse = \sqrt{\frac{\sum(predicho_i - real_i)^{2}}{n}} \]
RMSE es una forma útil de ver qué tan bien un modelo de regresión puede ajustarse a un conjunto de datos.
Cuanto mayor sea el rmse, mayor será la diferencia entre los valores predichos y reales, lo que significa que peor se ajusta un modelo de regresión a los datos. Por el contrario, cuanto más pequeño sea el rmse, mejor podrá un modelo ajustar los datos.
rmse <- rmse(actual = comparaciones$Sales, predicted = comparaciones$predicciones)
rmse
## [1] 1.931155
El gráfico lineal en color azul refleja las predicciones reales y en color amarillo las predicciones hechas por el modelo, las diferencias son las que se cocentran en el estadístico rmse.
ggplot(data = comparaciones) +
geom_line(aes(x = 1:nrow(comparaciones), y = Sales), col='blue') +
geom_line(aes(x = 1:nrow(comparaciones), y = predicciones), col='yellow') +
ggtitle(label="Valores reales vs predichos Adverstising")
Se hacen predicciones con datos nuevos.
TV <- c(140, 160)
Radio <- c(60, 40)
Newspaper <- c(80, 90)
Web <- c(120, 145)
nuevos <- data.frame(TV, Radio, Newspaper, Web)
nuevos
## TV Radio Newspaper Web
## 1 140 60 80 120
## 2 160 40 90 145
Y.predicciones <- predict(object = modelo_rm, newdata = nuevos)
Y.predicciones
## 1 2
## 20.62633 17.51292
Pendiente …
Con este modelo y con estos datos interprete lo siguiente:
Se han reunido una cantidad definida de datos que representan, de manera simulada, las inversiones que se han efectuado y por medio de las cuales es posible predecir el rumbo de las ventas y expedir conclusiones de acuerdo a los valores que se obtengan.
Se analizan 200 observaciones en este caso. Por otro lado, las variables de interés están conformadas por TV, Radio, Newspaper, Web y Sales.
Las variables de interés están nuevamente conformadas por dos campos, las independientes que son TV, Radio, Newspaper y Web. Mientras tanto, la única variable dependiente es Sales. Cabe señalar que, analizandolo a detalle, tiene sentido que una variable como Sales o Ventas sea dependiente de más de una o dos variables independientes, tal como puede llegar a suceder en un caso real.
Los datos de entrenamiento están en un 70% y los datos de validación en un 30%.
En términos generales, si los coeficientes poseen un valor por encima del 90% si son confiables para hacer prediciones. En este caso, no todos los coeficientes poseen esa característica.
Las coeficientes de TV y Radio se encuentran por encima del 99.9% de confiabilidad para realizar predicciones. Sin embargo, el coeficiente de Newspaper no es confiable debido a que posee un valor negativo. Por otro lado el coeficiente Web también tiene un porcentaje por debajo del 90%, siendo así los coeficientes con más probabilidades de ser desechados.
El valor es de 0.9138, pero en porcentaje corresponde a un 91.38%. El valor de R Square ajustado en este modelo sobrepasa el 85, lo que significa que las variables independientes explican aproximadamente el 91.38% del valor de la variable dependiente (Sales).
El valor es de 1.931155. Este valor representa la dispersión o variabilidad que puede llegar a persistir entre los datos reales y los datos que son predichos a partir del modelo utilizado. Dicho esto se puede inquirir en que la cantidad no es demasiado pronunciada y existe una ligera diferencia entre los diferentes valores. Apesar de ello, el valor sigue siendo más alto que en caso anterior, lo que puede afectar a su confiabilidad.
Generalmente el modelo de regresión lineal múltiple es el óptimo para casi cualquier modelo cientifico debido a la complejidad que representan estos y la prevalencia de más de 2 variables independientes. A diferencia de los demás modelos que se han visto, que solo trabajan con 2 variables independientes, este continua siendo el más práctico para estos datos.
Podemos basarnos a partir del valor que nos ha arrojado el RMSE, donde a simple vista podemos decir que la cantidad es realmente baja. Sin embargo, la cantidad es mucho más alta que en el anterior modelo realizado con la semilla “2022”, lo que significa que hay mayor margen de errror y no resulta tan confiable de la misma manera.