# Modelamiento predictivo

Caso: “STARBUCKS”

Starbucks disfrutó de considerable éxito con sus tarjetas de prepago, que se venden entre $5 y $500 dólares. Desde que la tarjeta fue introducida en noviembre del 2001,aumentaron los ingresos por ventas. Suponga que la gerencia de Starbucks desea conocer las razones por las que algunas personas compran tarjetas con cantidades prepagadas más altas que otras personas, suponga que hace un estudio de 25 compradores de tarjetas prepagadas. A quienes respondieron el estudio se les preguntó la cantidad de tarjetas prepagadas, edad del cliente, número de días al mes que el cliente hace una compra en Starbucks, número de tazas de café que el cliente toma por día y los ingresos del cliente. Con los datos, se quiere evaluar si existe relación entre la cantidad de tarjetas prepagadas, por medio de otras variables y cuáles de estas pueden ser más útiles para hacer el pronósticos (mayor relación). La descripción de las variables tenemos:

Cantidad de tarjetas prepagadas (cantidad)

Número de tazas de café que el cliente toma por día (tazas)

Ingresos del cliente (miles de $) (ingresos)

# Crear un conjunto de datos de ejemplo para Starbucks
starbucks_data <- data.frame(
  cantidad = c(10, 15, 20, 18, 25, 12, 22, 17, 30, 28, 35, 24, 16, 19, 27, 33, 21, 26, 31, 29, 14, 23, 32, 37, 40),
  ingresos = c(50, 60, 55, 70, 80, 45, 65, 75, 90, 100, 58, 68, 72, 62, 85, 95, 60, 78, 88, 98, 52, 82, 92, 110, 120)
)

starbucks_data

Pasos para construir un modelo de regresión

  • Paso 1: Determinar las variables X,Y

  • Variable independiente (X): Ingresos

  • Variable dependiente (y): Cantidad

  • Paso 2: Evaluar la relación entre variables (Correlación) graficamente

Diagrama de dispersión o puntos

# Gráfico con plot
plot(x=starbucks_data$ingresos,y=starbucks_data$cantidad)

* Interpretación: Según los resultados, hay relación lineal positiva o directa entre la inversión y la ganancia.

Función pairs:

pairs(starbucks_data)

* Interpretación: Según los resultados se observa que hay correlación directa o positiva entre ingresos en investigación y desarrollo y la cantidad.

Covarianza

La covarianza mide la relación lineal entre dos variables, es la media aritmética de los productos de las desviaciones de cada una de las variables respecto a sus medias respectivas. El signo de la covarianza nos dice si el aspecto de la nube de puntos es creciente o no, pero no nos dice nada sobre el grado de relación entre las variables.

calculamos la covarianza

# Calculamos el promedio de x
 promedio_x<-mean(starbucks_data$ingresos)
# Calculamos el promedio de y
 promedio_y<-mean(starbucks_data$cantidad)
# Calculamos la dimensión de los datos
 n<-dim(starbucks_data)[1]

# Calculamos la covarianza
 covarianza<-sum((starbucks_data$ingresos-promedio_x)*(starbucks_data$cantidad-promedio_y))/(n-1)
  • Mostramos la covarianza
covarianza
## [1] 127.8083
#Calculamos con función 
cov(starbucks_data)
##           cantidad ingresos
## cantidad  64.80667 127.8083
## ingresos 127.80833 381.9167
  • Interpretación: Como el S_xy > 0 (127.80), Existe relación directa o positiva entre ingresos en investigación y desarrollo y la cantidad.

Coeficiente de correlación

# Mediante la función cor
cor(starbucks_data) # Matriz de correlaciones
##           cantidad  ingresos
## cantidad 1.0000000 0.8123909
## ingresos 0.8123909 1.0000000

r = 0.8123909

(Recordar: Si el r en menor que 0.35 para algunos autores, no es viable la regresión, para otros autores se debe probar hipótesis)

Como en este caso el coeficiente de correlación es superior a 0.35, es viable la regresión.

Regresión lineal simple

Modelo general $ = b_o + b_1X $

Modelo para el caso: \(\hat{cantidad} = b_0 + b_1 ingresos\)

Para obtener el modelo, se va a utilizar una función de R > lm

# lm, notación: Y ~ X, data=
modelo1 <- lm(cantidad ~ ingresos, data=starbucks_data)

# Resumen de resultados
summary(modelo1)
## 
## Call:
## lm(formula = cantidad ~ ingresos, data = starbucks_data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -6.691 -3.034 -0.038  2.328 16.998 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.40724    3.94490  -0.357    0.725    
## ingresos     0.33465    0.05009   6.682 8.13e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.795 on 23 degrees of freedom
## Multiple R-squared:   0.66,  Adjusted R-squared:  0.6452 
## F-statistic: 44.64 on 1 and 23 DF,  p-value: 8.135e-07
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  15.1982     2.1254   7.151 3.10e-05 ***
## ingresos     3.2162     0.3792   8.482 7.03e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.579 on 10 degrees of freedom
## Multiple R-squared:  0.878,  Adjusted R-squared:  0.8658 
## F-statistic: 71.94 on 1 and 10 DF,  p-value: 7.032e-06

##calculamos el coeficiente de correlación

# Calculamos la desviación estándar de X
desv_stand_x<-sd(starbucks_data$ingresos)

# Calculamos la desviación estándar de y
desv_stand_y<-sd(starbucks_data$cantidad)

# Calculamos el coeficiente de correlación
 correlacion<-covarianza/(desv_stand_x*desv_stand_y)

Mostramos los resultados

correlacion
## [1] 0.8123909
cor(starbucks_data)
##           cantidad  ingresos
## cantidad 1.0000000 0.8123909
## ingresos 0.8123909 1.0000000

Se puede generar gráficos adicionales para evaluar la relación entre variables

library(PerformanceAnalytics)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
chart.Correlation(starbucks_data)
## Warning in par(usr): argument 1 does not name a graphical parameter

- Los resultados muestran en la diagonal los histogramas de cada variable, en la grafica de la parte inferior izquierda muestra el diagrama de dispersión y en la esquina superior derecha el valor el coeficiente de correlación. ## Modelo final con los resultados:

$ = 15.1982 +3.2162 X $

\(\hat{cantidad} = 15.1982 + 3.2162 Ingresos\)

Resumen: Regresión lineal simple

Paso 3: Modelo Regresión lineal simple