library(plotly)
library(stats) # Función loess
<- function(x){100*exp(-x)+20-x}
f <- 200 # tamaño de la muestra
n <- sort(runif(n, 0.1, 8))
x <- f(x)
y <- rnorm(n, 0, 8)
e <- y + e
y0 <- data.frame(Precio=x,Demanda=y,y0)
xy
# Haciendo LOOCV (Leave One Out CV)
<- seq(from=0.1, to=1.3, length.out=20)
flex <- rep(0, length(flex))
v_cv
for(j in 1:length(flex)){
<- rep(0, n)
cvs for(i in 1:n){
<- x[-i]
xi <- y0[-i]
yi <- data.frame(xi=xi, yi=yi)
xiyi <- loess(formula = yi~xi, data = xiyi,
d span=flex[j], degree = 2)
<- (y0[i] - stats::predict(d, newdata=data.frame(xi=x[i])))^2
cvs[i]
}<- mean(cvs,na.rm=T)
v_cv[j]
}
<- flex[which.min(v_cv)]
bd_opt
<- loess(formula = y0~x, span=0.09, degree = 2) # Modelo muy flexible
fit_1 <- loess(formula = y0~x, span=9, degree = 2) # Modelo poco flexible
fit_2 <- loess(formula = y0~x, span=bd_opt, degree = 2) # Modelo calibrado con LOOCV
fit_opt
<- predict(fit_1)
ypred_1 <- predict(fit_2)
ypred_2 <- predict(fit_opt)
ypred_opt
=-10; sup=120
inf<- plot_ly(xy, x=~Precio)
fig <- fig %>% layout(yaxis=list(range=c(inf,sup)), xaxis=list(range=c(0,9)))
fig <- fig %>% add_trace(y=~Demanda, type = "scatter", mode="lines", name = "Real")
fig <- fig %>% add_trace(y=~y0, type="scatter", mode="markers",
fig marker=list(color="#ff7f0e"), name="Datos")
<- fig %>% add_trace(y=~ypred_1, type = "scatter", mode="lines",
fig name = "Modelo muy flexible")
<- fig %>% add_trace(y=~ypred_2, type = "scatter", mode="lines",
fig name = "Modelo poco flexible")
<- fig %>% add_trace(y=~ypred_opt, type = "scatter", mode="lines",
fig name = "Modelo calibrado")
fig
7 Definiciones
Hay muchos términos relacionados a ciencia de datos, cada uno derivado de la definición general de “extraer información de los datos”
- Inteligencia de negocios (Business Intelligence)
- Analítica (análisis) de datos (Data Analytics (Data Analysis))
- Aprendizaje automático (Machine Learning)
- Aprendizaje Profundo (Deep Learning)
- Ingeniería de datos (Data Engineering)
- Grandes volúmenes de datos (Big Data)
- Ciencia de datos (Data Science)
- Aprendizaje Estadístico (Statistical Learning)
7.1 Ejemplo para discusión
¿Cómo funcionaría un grupo de ciencia de datos en una empresa? Suponga un caso en el que una empresa pública quiere aplicar ciencia de datos a las PQR de los usuarios
7.2 Modelo predictivo
Dadas unas condiciones particulares (valores de las variables predictoras \(\textbf{X}\)), un modelo predictivo intenta determinar (pronosticar) de [la mejor manera posible] el valor de la variable de interés \(Y\) (aprendizaje supervisado). No todas las técnicas de ciencia de datos tienen como objetivo la predicción.
7.3 Metodología
Siempre que sea posible, los temas del curso se desarrollarán bajo el siguiente orden lógico
- Desarrollo teórico y conceptual (a mano)
- Método Montecarlo (bases de datos simuladas en
R
) - Aplicación de los métodos en bases de datos reales (en
R
)
7.4 Aplicaciones
Dadas unas condiciones particulares, ¿cuál es la mejor aproximación para la variable de respuesta?
Dado el historial de compras y de navegación de un cliente en el portal de un comercio electrónico, ¿cuál es la probabilidad de que compre un producto si se ofrece en promoción?
Dado el historial familiar, ¿cuál es la probabilidad que tiene un individuo de sufrir de diabetes en su edad adulta?
Dado el valor histórico de las acciones de una compañía en la bolsa de valores en los últimos años, ¿El valor de la acción subirá o bajará?
Dado un mapa de bits de un caracter numérico escrito a mano, ¿qué número es?
7.5 Flexibilidad del modelo
El concepto de flexibilidad será de vital importancia para nosotros, miremos qué podemos decir de forma sencilla. Supongamos que la demanda de un producto varía de forma inversa a su precio con la siguiente ecuación:
\[f(x)=20-x+100e^{-x}\] Al considerar la parte aleatoria del problema (¿por qué es esto más realista?) podemos escribir
\[ y_i=f(x_i)+\epsilon_i \\ \epsilon_i \sim N (\mu=0, \ \sigma=8) \]
Generamos una muestra aleatoria de \(n=200\) datos (método Montecarlo). A partir de los datos, ajustamos un modelo de regresión local de segundo orden, cuyo parámetro de calibración se encuentra con el método de validación cruzada.
7.5.1 Casos a considerar
- Modelo real
- Modelo muy flexible
- Modelo poco flexible
- Modelo Calibrado
7.5.2 Modelo predictivo para la demanda usando regresión local
Puede hacer zoom o seleccionar los modelos a mostrar en la gráfica