Supongamos que somos consultores contratados por un cliente que quiere analizar como la publicidad mejora las ventas de un producto determinado.
datos = read.csv("Advertising.csv")
str(datos)
## 'data.frame': 200 obs. of 5 variables:
## $ 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 ...
## $ sales : num 22.1 10.4 9.3 18.5 12.9 7.2 11.8 13.2 4.8 10.6 ...
donde:
(datos tomados de http://www-bcf.usc.edu/~gareth/ISL/data.html)
par(mfrow=c(1,3))
plot(datos$TV, datos$sales)
plot(datos$radio, datos$sales)
plot(datos$newspaper, datos$sales)
Queremos encontrar la relación entre publicidad y ventas. Proponemos:
\(Y = f(X) + \epsilon\)
Por ejemplo:
plot(datos$TV, datos$sales)
m1 = lm(sales ~ TV, data = datos)
print(m1)
##
## Call:
## lm(formula = sales ~ TV, data = datos)
##
## Coefficients:
## (Intercept) TV
## 7.03259 0.04754
plot(datos$TV, datos$sales)
abline(m1, col = "red", lwd = 1)
Como vemos:
En esencia, statistical learning hace referencia al conjunto de herramientas para estimar \(f\).
Hay dos razones principales por las que estamos interesados en estimar f:
Como los errores tienen media, vamos a predecir Y mediante:
\(\hat Y = \hat f(X)\)
donde \(\hat f\) refresenta la estimación de \(f\).
La precisión de \(\hat Y\) depende de dos factores:
El objetivo de la asignatura es estimar f de manera que minimicemos el error reducible.
Queremos entender la relación entre Y y X. En el ejemplo analizado:
Dados unos datos, \((Y,X)\), queremos determinar la relación entre Y y X. Para ello usamos un modelo matemático del tipo:
\(Y = f(X) + \epsilon\)
La función \(f(X)\) depende de una serie de parámetros. En el ejemplo anterior:
\(Ventas = \beta_0 + \beta_1 * TV + \epsilon\)
Este modelo depende de los parámetros \(\beta_0, \beta_1\). El objetivo es determinar estos parámetros.
Por ejemplo, árboles de regresión.