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(1279)
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
## 1 230.1 37.8 69.2 306.63475 22.1
## 2 44.5 39.3 45.1 302.65307 10.4
## 3 17.2 45.9 69.3 49.49891 9.3
## 4 151.5 41.3 58.5 257.81689 18.5
## 5 180.8 10.8 58.4 195.66008 12.9
## 6 8.7 48.9 75.0 22.07240 7.2
## 8 120.2 19.6 11.6 229.97146 13.2
## 11 66.1 5.8 24.2 45.35903 8.6
## 13 23.8 35.1 65.9 87.92109 9.2
## 15 204.1 32.9 46.0 245.77496 19.0
## 16 195.4 47.7 52.9 148.09513 22.4
## 17 67.8 36.6 114.0 202.63890 12.5
## 18 281.4 39.6 55.8 41.75531 24.4
## 19 69.2 20.5 18.3 210.48991 11.3
## 20 147.3 23.9 19.1 268.73538 14.6
## 21 218.4 27.7 53.4 59.96055 18.0
## 22 237.4 5.1 23.5 296.95207 12.5
## 23 13.2 15.9 49.6 219.88278 5.6
## 24 228.3 16.9 26.2 51.17007 15.5
## 26 262.9 3.5 19.5 160.56286 12.0
## 27 142.9 29.3 12.6 275.51248 15.0
## 28 240.1 16.7 22.9 228.15744 15.9
## 30 70.6 16.0 40.8 61.32436 10.5
## 32 112.9 17.4 38.6 295.88399 11.9
## 33 97.2 1.5 30.0 139.78109 9.6
## 36 290.7 4.1 8.5 181.98342 12.8
## 38 74.7 49.4 45.7 56.53622 14.7
## 40 228.0 37.7 32.0 196.48327 21.5
## 41 202.5 22.3 31.6 88.21282 16.6
## 43 293.6 27.7 1.8 174.71682 20.7
## 45 25.1 25.7 43.3 245.76441 8.5
## 47 89.7 9.9 35.7 216.50402 10.6
## 48 239.9 41.5 18.5 105.96291 23.2
## 49 227.2 15.8 49.9 75.26918 14.8
## 50 66.9 11.7 36.8 205.25350 9.7
## 52 100.4 9.6 3.6 41.33526 10.7
## 53 216.4 41.7 39.6 161.80251 22.6
## 54 182.6 46.2 58.7 176.05005 21.2
## 56 198.9 49.4 60.0 204.41893 23.7
## 57 7.3 28.1 41.4 121.32853 5.5
## 59 210.8 49.6 37.7 32.41174 23.8
## 60 210.7 29.5 9.3 138.89555 18.4
## 61 53.5 2.0 21.4 39.21715 8.1
## 64 102.7 29.6 8.4 183.00975 14.0
## 65 131.1 42.8 28.9 124.38223 18.0
## 66 69.0 9.3 0.9 205.99349 9.3
## 68 139.3 14.5 10.2 207.66199 13.4
## 69 237.4 27.5 11.0 291.54860 18.9
## 70 216.8 43.9 27.2 149.39610 22.3
## 71 199.1 30.6 38.7 210.75214 18.3
## 73 26.8 33.0 19.3 211.99091 8.8
## 74 129.4 5.7 31.3 61.30619 11.0
## 75 213.4 24.6 13.1 156.28426 17.0
## 77 27.5 1.6 20.7 117.10193 6.9
## 78 120.5 28.5 14.2 97.45513 14.2
## 80 116.0 7.7 23.1 120.05350 11.0
## 81 76.4 26.7 22.3 268.15132 11.8
## 82 239.8 4.1 36.9 169.94640 12.3
## 83 75.3 20.3 32.5 231.20983 11.3
## 84 68.4 44.5 35.6 78.39310 13.6
## 87 76.3 27.5 16.0 193.83089 12.0
## 88 110.7 40.6 63.2 107.43052 16.0
## 89 88.3 25.5 73.4 260.10193 12.9
## 91 134.3 4.9 9.3 258.35549 11.2
## 93 217.7 33.5 59.0 150.96275 19.4
## 94 250.9 36.5 72.3 202.10216 22.2
## 96 163.3 31.6 52.9 155.59488 16.9
## 97 197.6 3.5 5.9 139.83054 11.7
## 98 184.9 21.0 22.0 253.30072 15.5
## 99 289.7 42.3 51.2 183.56958 25.4
## 100 135.2 41.7 45.9 40.60035 17.2
## 101 222.4 4.3 49.8 125.62714 11.7
## 102 296.4 36.3 100.9 61.00525 23.8
## 104 187.9 17.2 17.9 97.08863 14.7
## 106 137.9 46.4 59.0 138.76263 19.2
## 107 25.0 11.0 29.7 15.93821 7.2
## 108 90.4 0.3 23.2 261.38088 8.7
## 109 13.1 0.4 25.6 252.39135 5.3
## 111 225.8 8.2 56.5 95.18576 13.4
## 112 241.7 38.0 23.2 180.51153 21.8
## 113 175.7 15.4 2.4 71.68255 14.1
## 114 209.6 20.6 10.7 42.88380 15.9
## 116 75.1 35.0 52.7 204.27671 12.6
## 117 139.2 14.3 25.6 234.18312 12.2
## 118 76.4 0.8 14.8 234.38450 9.4
## 120 19.4 16.0 22.3 112.89261 6.6
## 121 141.3 26.8 46.2 65.52546 15.5
## 122 18.8 21.7 50.4 63.85492 7.0
## 123 224.0 2.4 15.6 89.51582 11.6
## 124 123.1 34.6 12.4 15.75719 15.2
## 126 87.2 11.8 25.9 121.09098 10.6
## 127 7.8 38.9 50.6 209.47198 6.6
## 129 220.3 49.0 3.2 187.43706 24.7
## 130 59.6 12.0 43.1 197.19655 9.7
## 131 0.7 39.6 8.7 162.90259 1.6
## 132 265.2 2.9 43.0 172.15666 12.7
## 133 8.4 27.2 2.1 238.05522 5.7
## 136 48.3 47.0 8.5 61.22732 11.6
## 137 25.6 39.0 9.3 77.23080 9.5
## 138 273.7 28.9 59.7 288.26061 20.8
## 142 193.7 35.4 75.6 152.28494 19.2
## 144 104.6 5.7 34.4 336.57109 10.4
## 146 140.3 1.9 9.0 231.88339 10.3
## 147 240.1 7.3 8.7 23.49694 13.2
## 148 243.2 49.0 44.3 151.99073 25.4
## 151 280.7 13.9 37.0 81.04062 16.1
## 153 197.6 23.3 14.2 159.52256 16.6
## 154 171.3 39.7 37.7 155.01622 19.0
## 157 93.9 43.5 50.5 74.36194 15.3
## 158 149.8 1.3 24.3 145.80321 10.1
## 159 11.7 36.9 45.2 185.86608 7.3
## 160 131.7 18.4 34.6 196.37030 12.9
## 162 85.7 35.8 49.3 188.93353 13.3
## 163 188.4 18.1 25.6 158.46152 14.9
## 164 163.5 36.8 7.4 82.22879 18.0
## 165 117.2 14.7 5.4 109.00876 11.9
## 166 234.5 3.4 84.8 135.02491 11.9
## 167 17.9 37.6 21.6 99.93695 8.0
## 168 206.8 5.2 19.4 115.37196 12.2
## 169 215.4 23.6 57.6 203.43127 17.1
## 170 284.3 10.6 6.4 157.90011 15.0
## 171 50.0 11.6 18.4 64.01480 8.4
## 172 164.5 20.9 47.4 96.18039 14.5
## 173 19.6 20.1 17.0 155.58366 7.6
## 175 222.4 3.4 13.1 144.52566 11.5
## 176 276.9 48.9 41.8 151.99073 27.0
## 177 248.4 30.2 20.3 163.85204 20.2
## 178 170.2 7.8 35.2 104.91734 11.7
## 179 276.7 2.3 23.7 137.32377 11.8
## 183 56.2 5.7 29.7 42.19929 8.7
## 184 287.6 43.0 71.8 154.30972 26.2
## 185 253.8 21.3 30.0 181.57905 17.6
## 187 139.5 2.1 26.6 236.74404 10.3
## 188 191.1 28.7 18.2 239.27571 17.3
## 189 286.0 13.9 3.7 151.99073 15.9
## 190 18.7 12.1 23.4 222.90695 6.7
## 191 39.5 41.1 5.8 219.89058 10.8
## 194 166.8 42.0 3.6 192.24621 19.6
## 196 38.2 3.7 13.8 248.84107 7.6
## 197 94.2 4.9 8.1 118.04186 9.7
## 198 177.0 9.3 6.4 213.27467 12.8
## 200 232.1 8.6 8.7 151.99073 13.4
datos.validacion
## TV Radio Newspaper Web Sales
## 7 57.5 32.8 23.5 246.811598 11.8
## 9 8.6 2.1 1.0 144.617385 4.8
## 10 199.8 2.6 21.2 111.272264 10.6
## 12 214.7 24.0 4.0 164.971764 17.4
## 14 97.5 7.6 7.2 173.658035 9.7
## 25 62.3 12.6 18.3 256.965240 9.7
## 29 248.8 27.1 22.9 318.644967 18.9
## 31 292.9 28.3 43.2 121.464347 21.4
## 34 265.6 20.0 0.3 94.207255 17.4
## 35 95.7 1.4 7.4 321.174609 9.5
## 37 266.9 43.8 5.0 96.316829 25.4
## 39 43.1 26.7 35.1 122.753591 10.1
## 42 177.0 33.4 38.7 147.859324 17.1
## 44 206.9 8.4 26.4 213.609610 12.9
## 46 175.1 22.5 31.5 62.809264 14.9
## 51 199.8 3.1 34.6 151.990733 11.4
## 55 262.7 28.8 15.9 324.615179 20.2
## 58 136.2 19.2 16.6 60.454355 13.2
## 62 261.3 42.7 54.7 224.832039 24.2
## 63 239.3 15.5 27.3 312.209555 15.7
## 67 31.5 24.6 2.2 216.471397 9.5
## 72 109.8 14.3 31.7 151.990733 12.4
## 76 16.9 43.7 89.4 70.234282 8.7
## 79 5.4 29.9 9.4 4.308085 5.3
## 85 213.5 43.0 33.8 191.868374 21.7
## 86 193.2 18.4 65.7 223.578793 15.2
## 90 109.8 47.8 51.4 162.727890 16.7
## 92 28.6 1.5 33.0 172.467947 7.3
## 95 107.4 14.0 10.9 151.990733 11.5
## 103 280.2 10.1 21.4 49.808451 14.8
## 105 238.2 34.3 5.3 112.155489 20.7
## 110 255.4 26.9 5.5 273.454125 19.8
## 115 78.2 46.8 34.5 76.770428 14.6
## 119 125.7 36.9 79.2 187.840415 15.9
## 125 229.5 32.3 74.2 88.080721 19.7
## 128 80.2 0.0 9.2 358.247042 8.8
## 134 219.8 33.5 45.1 171.478018 19.6
## 135 36.9 38.6 65.6 81.246748 10.8
## 139 43.0 25.9 20.5 181.368740 9.6
## 140 184.9 43.9 1.7 106.253829 20.7
## 141 73.4 17.0 12.9 174.772137 10.9
## 143 220.5 33.2 37.9 6.007436 20.1
## 145 96.2 14.8 38.9 157.440047 11.4
## 149 38.0 40.3 11.9 75.207978 10.9
## 150 44.7 25.8 20.6 235.622449 10.1
## 152 121.0 8.4 48.7 103.255212 11.6
## 155 187.8 21.1 9.5 63.071208 15.6
## 156 4.1 11.6 5.7 113.270712 3.2
## 161 172.5 18.1 30.7 207.496801 14.4
## 174 168.4 7.1 12.8 218.180829 11.7
## 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
## 186 205.0 45.1 19.6 208.692690 22.6
## 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
## 199 283.6 42.0 66.2 237.498063 25.5
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
## -8.7188 -0.7986 0.3344 1.2454 2.8271
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.289377 0.528878 4.329 2.87e-05 ***
## TV 0.045929 0.001775 25.875 < 2e-16 ***
## Radio 0.190417 0.010795 17.640 < 2e-16 ***
## Newspaper 0.001841 0.007479 0.246 0.806
## Web 0.002705 0.002047 1.322 0.188
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.805 on 137 degrees of freedom
## Multiple R-squared: 0.8833, Adjusted R-squared: 0.8799
## F-statistic: 259.3 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
## 7 57.5 32.8 23.5 246.811598 11.8 11.886923
## 9 8.6 2.1 1.0 144.617385 4.8 3.477316
## 10 199.8 2.6 21.2 111.272264 10.6 12.301090
## 12 214.7 24.0 4.0 164.971764 17.4 17.173958
## 14 97.5 7.6 7.2 173.658035 9.7 8.697657
## 25 62.3 12.6 18.3 256.965240 9.7 8.278856
## 29 248.8 27.1 22.9 318.644967 18.9 19.780952
## 31 292.9 28.3 43.2 121.464347 21.4 21.538849
## 34 265.6 20.0 0.3 94.207255 17.4 18.551814
## 35 95.7 1.4 7.4 321.174609 9.5 7.833848
## 37 266.9 43.8 5.0 96.316829 25.4 23.157803
## 39 43.1 26.7 35.1 122.753591 10.1 9.749745
## 42 177.0 33.4 38.7 147.859324 17.1 17.249950
## 44 206.9 8.4 26.4 213.609610 12.9 14.018030
## 46 175.1 22.5 31.5 62.809264 14.9 14.843799
## 51 199.8 3.1 34.6 151.990733 11.4 12.531124
## 55 262.7 28.8 15.9 324.615179 20.2 20.746335
## 58 136.2 19.2 16.6 60.454355 13.2 12.394991
## 62 261.3 42.7 54.7 224.832039 24.2 23.130316
## 63 239.3 15.5 27.3 312.209555 15.7 17.126483
## 67 31.5 24.6 2.2 216.471397 9.5 9.010062
## 72 109.8 14.3 31.7 151.990733 12.4 10.524863
## 76 16.9 43.7 89.4 70.234282 8.7 11.741384
## 79 5.4 29.9 9.4 4.308085 5.3 8.259817
## 85 213.5 43.0 33.8 191.868374 21.7 20.864390
## 86 193.2 18.4 65.7 223.578793 15.2 15.392296
## 90 109.8 47.8 51.4 162.727890 16.7 16.969144
## 92 28.6 1.5 33.0 172.467947 7.3 4.415899
## 95 107.4 14.0 10.9 151.990733 11.5 10.319215
## 103 280.2 10.1 21.4 49.808451 14.8 17.255980
## 105 238.2 34.3 5.3 112.155489 20.7 20.074087
## 110 255.4 26.9 5.5 273.454125 19.8 19.891709
## 115 78.2 46.8 34.5 76.770428 14.6 15.063722
## 119 125.7 36.9 79.2 187.840415 15.9 15.742985
## 125 229.5 32.3 74.2 88.080721 19.7 19.355390
## 128 80.2 0.0 9.2 358.247042 8.8 6.958974
## 134 219.8 33.5 45.1 171.478018 19.6 19.310423
## 135 36.9 38.6 65.6 81.246748 10.8 11.674810
## 139 43.0 25.9 20.5 181.368740 9.6 9.724512
## 140 184.9 43.9 1.7 106.253829 20.7 19.431491
## 141 73.4 17.0 12.9 174.772137 10.9 9.394200
## 143 220.5 33.2 37.9 6.007436 20.1 18.824543
## 145 96.2 14.8 38.9 157.440047 11.4 10.023437
## 149 38.0 40.3 11.9 75.207978 10.9 11.933841
## 150 44.7 25.8 20.6 235.622449 10.1 9.930507
## 152 121.0 8.4 48.7 103.255212 11.6 9.815258
## 155 187.8 21.1 9.5 63.071208 15.6 15.120717
## 156 4.1 11.6 5.7 113.270712 3.2 5.003447
## 161 172.5 18.1 30.7 207.496801 14.4 14.276502
## 174 168.4 7.1 12.8 218.180829 11.7 11.989558
## 180 165.6 10.0 17.6 151.990733 12.6 12.242938
## 181 156.6 2.6 8.3 122.116470 10.5 10.322554
## 182 218.5 5.4 27.4 162.387486 12.2 13.842822
## 186 205.0 45.1 19.6 208.692690 22.6 20.893244
## 192 75.5 10.8 6.0 301.481194 9.9 8.640150
## 193 17.2 4.1 31.6 265.028644 5.9 4.635223
## 195 149.7 35.6 6.0 99.579981 17.3 16.224199
## 199 283.6 42.0 66.2 237.498063 25.5 24.076674
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.281093
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.61634 17.81262
Pendiente …
Con este modelo y con estos datos interprete lo siguiente:
¿Cuál es el contexto de los datos? Una empresa ocupa conocer la relacion de las ventas con la cantidad de dinero invertido en varios medios de comunicacion
¿Cuántas observaciones se analizan y cuáles son las variables de interés? Se tiene un total de 200 observaciones, las variables de interes son TV,RADIO,NEWSPAPER,WEB Y SALES
¿Cuáles son las variables independientes y dependientes? Las variables independientes son TV,RADIO NEWSPAPER Y WEB la variable dependiente es Sales
¿Cuál es el porcentaje de datos de entrenamiento y datos de validación ?
Se entrenara y validara con un 30% y un 70% de los datos para el entrenamiento y la validacion y la semilla a utilizar es 1279
¿Son los coeficientes confiables al menos al 90% para hacer predicciones?, Tv, Radio y Web tienen una confiabilidad de almenos 90%
¿Cuál nivel de confianza para cada coeficiente?
TV: 0.045929 con un 99.9999% Radio: 0.190417 con un 99.9999% Newspaper: 0.001841 con un 58.639% Web: 0.002705 con un 99.999%
0.8799 representa que el modelo tiene una certeza del 87.99%
1.281093 representa la cantidad de dispresion posible entre los datos presentados
So, podria ser una regresion linear multiple con mas de una variable dependiente o variables independientes
Según los datos de correlación, el R Square y el RMSE, puedo concluir que este modelo, con la semilla 1279, tiene un grado de confiabilidad muy alto # Bibliografía