1 Objetivo

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

2 Descripción

  • Cargar librerías y datos
  • Limpiar datos si es necesario
  • Explorar datos
  • Partir los datos en datos de entrenamiento y datos de validación 70% y 30%
  • Crear modelo de regresión con los datos de entrenamiento
  • Evaluar modelo antes de predicciones con los estadísticos. R Square ajustado y Coeficientes
  • El modelo se acepta si presenta un valor de R Square ajustado por encima del 70%
  • Predicciones
  • Evaluar predicciones con respecto a datos reales
  • Determinar el estadístico rmse para evaluar con respecto a otros modelos
  • Interpretar el caso

3 Fundamento teórico

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} \]

4 Desarrollo

4.1 Cargar librerías

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

4.2 Cargar datos

datos <- read.csv("https://raw.githubusercontent.com/rpizarrog/Analisis-Inteligente-de-datos/main/datos/Advertising_Web.csv")

4.3 Explorar datos

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

4.3.1 Limpiar datos

Quitar las primeras columnas

datos <- select(datos, TV, Radio, Newspaper, Web, Sales)

4.3.2 Correlaciones lineal entre variables

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

4.3.3 Las variables de interés

  • x’s las variable independientes o predictoras son TV, Radio, Newspaper y Web
  • y la variable dependiente o resultado (Sales), es decir que depende de las variables x’s.

4.4 Limpiar datos

En caso necesario. No se observan datos extraños …. porque son pocos.

4.5 Partir datos

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(1264)
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, ]

4.5.1 Datos de entrenamiento

datos.entrenamiento
##        TV Radio Newspaper        Web Sales
## 1   230.1  37.8      69.2 306.634752  22.1
## 2    44.5  39.3      45.1 302.653070  10.4
## 4   151.5  41.3      58.5 257.816893  18.5
## 5   180.8  10.8      58.4 195.660076  12.9
## 9     8.6   2.1       1.0 144.617385   4.8
## 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
## 19   69.2  20.5      18.3 210.489910  11.3
## 20  147.3  23.9      19.1 268.735384  14.6
## 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
## 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
## 30   70.6  16.0      40.8  61.324362  10.5
## 31  292.9  28.3      43.2 121.464347  21.4
## 33   97.2   1.5      30.0 139.781089   9.6
## 34  265.6  20.0       0.3  94.207255  17.4
## 35   95.7   1.4       7.4 321.174609   9.5
## 36  290.7   4.1       8.5 181.983424  12.8
## 37  266.9  43.8       5.0  96.316829  25.4
## 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
## 43  293.6  27.7       1.8 174.716820  20.7
## 44  206.9   8.4      26.4 213.609610  12.9
## 45   25.1  25.7      43.3 245.764410   8.5
## 47   89.7   9.9      35.7 216.504015  10.6
## 48  239.9  41.5      18.5 105.962913  23.2
## 52  100.4   9.6       3.6  41.335255  10.7
## 53  216.4  41.7      39.6 161.802512  22.6
## 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
## 61   53.5   2.0      21.4  39.217153   8.1
## 63  239.3  15.5      27.3 312.209555  15.7
## 64  102.7  29.6       8.4 183.009750  14.0
## 66   69.0   9.3       0.9 205.993485   9.3
## 68  139.3  14.5      10.2 207.661990  13.4
## 69  237.4  27.5      11.0 291.548597  18.9
## 71  199.1  30.6      38.7 210.752142  18.3
## 74  129.4   5.7      31.3  61.306191  11.0
## 75  213.4  24.6      13.1 156.284261  17.0
## 77   27.5   1.6      20.7 117.101925   6.9
## 78  120.5  28.5      14.2  97.455125  14.2
## 79    5.4  29.9       9.4   4.308085   5.3
## 83   75.3  20.3      32.5 231.209829  11.3
## 85  213.5  43.0      33.8 191.868374  21.7
## 87   76.3  27.5      16.0 193.830894  12.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
## 92   28.6   1.5      33.0 172.467947   7.3
## 93  217.7  33.5      59.0 150.962754  19.4
## 96  163.3  31.6      52.9 155.594877  16.9
## 97  197.6   3.5       5.9 139.830544  11.7
## 98  184.9  21.0      22.0 253.300721  15.5
## 100 135.2  41.7      45.9  40.600350  17.2
## 101 222.4   4.3      49.8 125.627143  11.7
## 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
## 112 241.7  38.0      23.2 180.511528  21.8
## 114 209.6  20.6      10.7  42.883796  15.9
## 115  78.2  46.8      34.5  76.770428  14.6
## 116  75.1  35.0      52.7 204.276714  12.6
## 117 139.2  14.3      25.6 234.183118  12.2
## 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
## 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
## 128  80.2   0.0       9.2 358.247042   8.8
## 130  59.6  12.0      43.1 197.196554   9.7
## 131   0.7  39.6       8.7 162.902591   1.6
## 134 219.8  33.5      45.1 171.478018  19.6
## 135  36.9  38.6      65.6  81.246748  10.8
## 136  48.3  47.0       8.5  61.227323  11.6
## 137  25.6  39.0       9.3  77.230797   9.5
## 138 273.7  28.9      59.7 288.260611  20.8
## 139  43.0  25.9      20.5 181.368740   9.6
## 142 193.7  35.4      75.6 152.284937  19.2
## 143 220.5  33.2      37.9   6.007436  20.1
## 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
## 147 240.1   7.3       8.7  23.496943  13.2
## 148 243.2  49.0      44.3 151.990733  25.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
## 157  93.9  43.5      50.5  74.361939  15.3
## 158 149.8   1.3      24.3 145.803211  10.1
## 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
## 163 188.4  18.1      25.6 158.461520  14.9
## 164 163.5  36.8       7.4  82.228794  18.0
## 165 117.2  14.7       5.4 109.008763  11.9
## 166 234.5   3.4      84.8 135.024909  11.9
## 169 215.4  23.6      57.6 203.431267  17.1
## 170 284.3  10.6       6.4 157.900110  15.0
## 171  50.0  11.6      18.4  64.014805   8.4
## 172 164.5  20.9      47.4  96.180391  14.5
## 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
## 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
## 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
## 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
## 192  75.5  10.8       6.0 301.481194   9.9
## 194 166.8  42.0       3.6 192.246211  19.6
## 195 149.7  35.6       6.0  99.579981  17.3
## 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
## 200 232.1   8.6       8.7 151.990733  13.4

4.5.2 Datos de validación

datos.validacion
##        TV Radio Newspaper       Web Sales
## 3    17.2  45.9      69.3  49.49891   9.3
## 6     8.7  48.9      75.0  22.07240   7.2
## 7    57.5  32.8      23.5 246.81160  11.8
## 8   120.2  19.6      11.6 229.97146  13.2
## 10  199.8   2.6      21.2 111.27226  10.6
## 17   67.8  36.6     114.0 202.63890  12.5
## 18  281.4  39.6      55.8  41.75531  24.4
## 25   62.3  12.6      18.3 256.96524   9.7
## 29  248.8  27.1      22.9 318.64497  18.9
## 32  112.9  17.4      38.6 295.88399  11.9
## 38   74.7  49.4      45.7  56.53622  14.7
## 42  177.0  33.4      38.7 147.85932  17.1
## 46  175.1  22.5      31.5  62.80926  14.9
## 49  227.2  15.8      49.9  75.26918  14.8
## 50   66.9  11.7      36.8 205.25350   9.7
## 51  199.8   3.1      34.6 151.99073  11.4
## 54  182.6  46.2      58.7 176.05005  21.2
## 59  210.8  49.6      37.7  32.41174  23.8
## 60  210.7  29.5       9.3 138.89555  18.4
## 62  261.3  42.7      54.7 224.83204  24.2
## 65  131.1  42.8      28.9 124.38223  18.0
## 67   31.5  24.6       2.2 216.47140   9.5
## 70  216.8  43.9      27.2 149.39610  22.3
## 72  109.8  14.3      31.7 151.99073  12.4
## 73   26.8  33.0      19.3 211.99091   8.8
## 76   16.9  43.7      89.4  70.23428   8.7
## 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
## 84   68.4  44.5      35.6  78.39310  13.6
## 86  193.2  18.4      65.7 223.57879  15.2
## 91  134.3   4.9       9.3 258.35549  11.2
## 94  250.9  36.5      72.3 202.10216  22.2
## 95  107.4  14.0      10.9 151.99073  11.5
## 99  289.7  42.3      51.2 183.56958  25.4
## 110 255.4  26.9       5.5 273.45413  19.8
## 111 225.8   8.2      56.5  95.18576  13.4
## 113 175.7  15.4       2.4  71.68255  14.1
## 118  76.4   0.8      14.8 234.38450   9.4
## 119 125.7  36.9      79.2 187.84041  15.9
## 120  19.4  16.0      22.3 112.89261   6.6
## 121 141.3  26.8      46.2  65.52546  15.5
## 129 220.3  49.0       3.2 187.43706  24.7
## 132 265.2   2.9      43.0 172.15666  12.7
## 133   8.4  27.2       2.1 238.05522   5.7
## 140 184.9  43.9       1.7 106.25383  20.7
## 141  73.4  17.0      12.9 174.77214  10.9
## 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
## 162  85.7  35.8      49.3 188.93353  13.3
## 167  17.9  37.6      21.6  99.93695   8.0
## 168 206.8   5.2      19.4 115.37196  12.2
## 173  19.6  20.1      17.0 155.58366   7.6
## 182 218.5   5.4      27.4 162.38749  12.2
## 187 139.5   2.1      26.6 236.74404  10.3
## 193  17.2   4.1      31.6 265.02864   5.9
## 196  38.2   3.7      13.8 248.84107   7.6

4.6 Construir el modelo

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.7600 -0.7123  0.2335  1.2023  2.5916 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.471301   0.462825   5.340 3.77e-07 ***
## TV          0.044563   0.001664  26.779  < 2e-16 ***
## Radio       0.186351   0.010483  17.777  < 2e-16 ***
## Newspaper   0.010518   0.007268   1.447    0.150    
## Web         0.002372   0.001818   1.305    0.194    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.687 on 137 degrees of freedom
## Multiple R-squared:  0.8995, Adjusted R-squared:  0.8966 
## F-statistic: 306.6 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%.

4.7 Evaluar el modelo antes de predicciones

Fómula Rsquare Ajustado

Fórmula R Square ajusado

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.

4.8 Hacer predicciones

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
## 3    17.2  45.9      69.3  49.49891   9.3    12.637607
## 6     8.7  48.9      75.0  22.07240   7.2    12.812759
## 7    57.5  32.8      23.5 246.81160  11.8    11.978692
## 8   120.2  19.6      11.6 229.97146  13.2    12.147839
## 10  199.8   2.6      21.2 111.27226  10.6    12.346441
## 17   67.8  36.6     114.0 202.63890  12.5    13.992865
## 18  281.4  39.6      55.8  41.75531  24.4    23.076762
## 25   62.3  12.6      18.3 256.96524   9.7     8.397693
## 29  248.8  27.1      22.9 318.64497  18.9    19.605484
## 32  112.9  17.4      38.6 295.88399  11.9    11.852901
## 38   74.7  49.4      45.7  56.53622  14.7    15.620687
## 42  177.0  33.4      38.7 147.85932  17.1    17.340885
## 46  175.1  22.5      31.5  62.80926  14.9    14.947486
## 49  227.2  15.8      49.9  75.26918  14.8    16.243743
## 50   66.9  11.7      36.8 205.25350   9.7     8.506860
## 51  199.8   3.1      34.6 151.99073  11.4    12.677152
## 54  182.6  46.2      58.7 176.05005  21.2    20.252965
## 59  210.8  49.6      37.7  32.41174  23.8    21.581599
## 60  210.7  29.5       9.3 138.89555  18.4    17.785404
## 62  261.3  42.7      54.7 224.83204  24.2    23.181498
## 65  131.1  42.8      28.9 124.38223  18.0    16.888381
## 67   31.5  24.6       2.2 216.47140   9.5     8.995972
## 70  216.8  43.9      27.2 149.39610  22.3    20.953873
## 72  109.8  14.3      31.7 151.99073  12.4    10.723123
## 73   26.8  33.0      19.3 211.99091   8.8    10.521098
## 76   16.9  43.7      89.4  70.23428   8.7    12.474860
## 80  116.0   7.7      23.1 120.05350  11.0     9.603276
## 81   76.4  26.7      22.3 268.15132  11.8    11.722193
## 82  239.8   4.1      36.9 169.94640  12.3    14.712809
## 84   68.4  44.5      35.6  78.39310  13.6    14.372445
## 86  193.2  18.4      65.7 223.57879  15.2    15.731143
## 91  134.3   4.9       9.3 258.35549  11.2    10.079959
## 94  250.9  36.5      72.3 202.10216  22.2    21.693849
## 95  107.4  14.0      10.9 151.99073  11.5    10.341502
## 99  289.7  42.3      51.2 183.56958  25.4    24.237842
## 110 255.4  26.9       5.5 273.45413  19.8    19.572114
## 111 225.8   8.2      56.5  95.18576  13.4    14.881750
## 113 175.7  15.4       2.4  71.68255  14.1    13.366120
## 118  76.4   0.8      14.8 234.38450   9.4     6.736702
## 119 125.7  36.9      79.2 187.84041  15.9    16.227847
## 120  19.4  16.0      22.3 112.89261   6.6     6.819811
## 121 141.3  26.8      46.2  65.52546  15.5    14.403622
## 129 220.3  49.0       3.2 187.43706  24.7    21.898064
## 132 265.2   2.9      43.0 172.15666  12.7    15.690486
## 133   8.4  27.2       2.1 238.05522   5.7     8.501236
## 140 184.9  43.9       1.7 106.25383  20.7    19.161769
## 141  73.4  17.0      12.9 174.77214  10.9     9.460499
## 151 280.7  13.9      37.0  81.04062  16.1    18.151808
## 153 197.6  23.3      14.2 159.52256  16.6    16.146723
## 154 171.3  39.7      37.7 155.01622  19.0    18.267351
## 162  85.7  35.8      49.3 188.93353  13.3    13.928463
## 167  17.9  37.6      21.6  99.93695   8.0    10.740058
## 168 206.8   5.2      19.4 115.37196  12.2    13.133690
## 173  19.6  20.1      17.0 155.58366   7.6     7.638301
## 182 218.5   5.4      27.4 162.38749  12.2    13.888026
## 187 139.5   2.1      26.6 236.74404  10.3     9.920584
## 193  17.2   4.1      31.6 265.02864   5.9     4.962931
## 196  38.2   3.7      13.8 248.84107   7.6     5.598597

4.9 Evaluar predicciones

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.683568

4.10 Graficar prediciones contra valores reales

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") 

4.11 Predicciones con datos nuevos

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 
## 21.01728 18.34600

5 Interpretación

Con este modelo y con estos datos interprete lo siguiente:

  • ¿Cuál es el contexto de los datos?

Los datos tienen enfoque a la analitica de los distintos medios de cada producto, esto con el objetivo de encontrar el mejor medio de marketing

  • ¿Cuántas observaciones se analizan y cuáles son las variables de interés?

200 observacione, TV, Radio, Newspaper, Web y Sales son las variables de interes

  • ¿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 ?

un 70% son de entrenamiento y 30% son de validacion.

  • ¿Son los coeficientes confiables al menos al 90% para hacer predicciones?,

Todos los coeficientes son aceptables, los menos confiables serian Newspaper y Web.

  • ¿Cuál nivel de confianza para cada coeficiente?

Los coeficientes de TV y radio tienen una precisión de predicción superior al 99,9%. Sin embargo, debido a su mayor valor de error, Newspaper y Web no podemos tomarlos con la misma fiabilidad que los otros coeficientes.

  • ¿Que valor tiene el estadístico el R Square ajustado y que representa o qué significa?

Con la semilla 1264, nos da un Adjusted R-squared del 0.8966, lo que significa que es un modelo confiable al ser de un R-square mayor a 0.85

  • ¿Cuál es el valor de RMSE y qué significaría este valor

Con la semilla 1264, nos da un RMSE: 1.683568, 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.

  • ¿Puede haber otro modelo más óptimo para estos datos?

A un lado del modelo de Regresion Linear, se pueden probar otro modelo llamado Ridge Regression, que tambien funciona de manera lineal. La diferencia puede apreciarse cuando haya un mayor volumen de datos, probablemente con este volumen no habria tanta diferencia y sea mejor quedarnos con Regresion Lineal de momento.

  • ¿Que tan confiables son las predicciones con datos nuevos con este modelo y con estos datos?

En comparacion con la generacion de la semilla 2022, no existe tanta diferencia, personalmente, sí confiaria en el modelo, quizas con un mayor volumen, mejoren los coeficientes.