Hola. Después de la exploración inicial de los datos y el procesamiento, ya estamos listos para empezar las tareas asociadas a la modelización. La primera etapa se basará en el modelo de regresión lineal simple, este modelo trata de evaluar la relación entre dos variables cuantitativas es decir, que miden cantidades, son numerosas, esencialmente. Este modelo también puede verse como una especie de exploración avanzada, puesto que no sólo va a resumir la relación con un número, sino que nos va a medir las características, nos va a explicar los parámetros incluidos en esta relación. Empezamos con la lectura de los datos, tenemos recordad, la base de datos cinco, con los datos procesados y filtrados, podemos continuar para dar un poco más de contexto con una descripción de los datos que queremos analizar. Tenemos las variables cuantitativas de la base de datos aquí mostradas, la variable horario, retraso en la llegada, retraso en la salida, el retraso neto. Estas variables están ciertamente correlacionadas, sobre todo, retraso en la llegada y retraso en la salida, aquí vemos un índice de correlación extremadamente alto. La variable horario no muestra una correlación fuerte con el resto, puesto que la variable horario pierde un poco el sentido aunque sí, efectivamente, es numérica uno, dos, tres, cuatro, son valores que se corresponden a horas diarias. Para proceder, podríamos incorporar un resumen gráfico de la relación entre las dos variables que queremos explorar. En nuestro caso, la variable retraso en la llegada, "ArrDelay" y retraso en la salida "DepDelay". Vemos que la relación es muy fuerte, es creciente y muestra claramente un patrón. Vemos también aquí en los márgenes la distribución de los datos, vemos que los datos son muy asimétricos, hay valores extremos por aquí, mientras que la mayoría de datos se encuentran en niveles bajos. Para proceder con el análisis necesitamos configurar la base de datos, eso será sistemático, todas las demás técnicas de modelización requieren el mismo tipo de operación. Los modelos necesitan una variable que se llame "label", por lo tanto, hay que renombrar la variable de interés "ArrDelay" para que aparezca como "label". Y también hay que configurar las variables predictoras, explicativas, "input", en un único vector de "features". Aquí tenemos una única variable explicativa "depDelay", por lo tanto configuramos mediante este pequeño transformador, todas las variables explicativas, en un único grupo que va a ser un vector de columnas. La base de datos "bd6" lleva a cabo la transformación, selecciona exclusivamente los campos de interés, que se van a llamar "label" y "features". Aquí vemos una pequeña muestra de los datos donde vemos las dos columnas, la variable "respuesta", la variable "explicativa" configurada a modo de vector. Aquí vemos que es un vector con una única componente pero igualmente, esto es un vector de columnas. El modelo se puede ajustar ahora, importando la función "LinearRegression" de esta librería, definiendo el modelo a partir de los parámetros por defecto, por defecto ya está asumiendo que la variable a explicar se llama "label" y las variables explicativas están contenidas en "features". Por lo tanto, no es necesario indicar nada más, aplicamos el modelo y el ajuste a la base de datos de interés y, finalmente, procedemos con la obtención de valores predichos de este modelo. Esta sería la estructura de la sintaxis necesaria para ajustar el modelo de regresión en este caso simple, con las variables de interés incorporadas o definidas inicialmente. Los coeficientes que aparecen en el modelo son el término independiente, y los coeficientes de las variables explicativas. El modelo teórico se podría expresar de esta forma, la variable respuesta se obtiene a partir de un término constante, más una magnitud asociada a la variable de interés. Finalmente, añadimos una especie de ruido dispersión, homogénea, vendría a ser un error. El modelo predictivo ajustado a partir de los datos, se obtiene a partir de estos coeficientes, aquí resumido, de hecho redondeado, nos daría esta expresión, el retraso se puede predecir a partir de "menos 4,4 más esta constante 1.03 "DepDelay". Esto se puede interpretar como que, si "DepDelay" es cero, entonces la llegada se produce cuatro minutos antes del horario previsto. Conforme "DepDelay" es elevado, esto genera un mayor retraso, puesto que esto es multiplicar por 1.03, todavía se añade un poco más de retraso. El retraso en la llegada, se configura esencialmente del mismo retraso en la salida, más algo este cero tres menos cuatro minutos. De esta forma tenemos los valores predichos del modelo y podemos capturar los residuos. Los residuos vendrían a ser tan solo los valores observados menos los valores predichos. Aquí vemos la expresión, calculamos los residuos a partir de esta pequeña transformación. Presentando la base de datos, vemos que tenemos las columnas originales "label" y "features", "prediction" y "residual". El valor predicho se asemeja al valor original, no obstante hay una pequeña dispersión, un pequeño ruido, en algunos casos tiene una magnitud más o menos elevada, y en otros casos es más bien pequeño. El ajuste del modelo se puede visualizar empleando gráficos representando, por ejemplo, el valor observado frente al valor predicho. Aquí veríamos, si el ajuste es relativamente bueno y si el modelo se ajusta a la realidad. Para ello, hacemos el gráfico a partir de la librería "seaborn" de Python y mediante este diagrama, conseguimos el resultado. Aquí estamos representando toda la base de datos, la base de datos no es especialmente grande, si fuera de un tamaño mayor quizás sería necesario aplicar un filtro y reducir la magnitud de los datos para obtener un diagrama parecido a este de aquí. Vemos que el valor predicho se ajusta bien al valor observado. Vemos igualmente aquí valores extremos, no obstante también son ajustados de forma más o menos correcta. Aquí vemos la relación que hay entre predichos y observados. Para validar el modelo de una forma más explícita, necesitamos evaluar los "residuos". Hemos dicho que los residuos corresponden a un ruido sin ningún tipo de patrón. Aquí veríamos, representando los residuos en función de los valores predichos, veríamos si estos residuos muestran algún tipo de patrón. Vemos que hay cierta distribución asimétrica, aquí hay valores muy grandes para los residuos, esto indica que la distribución no es especialmente simétrica, y que existe cierto comportamiento anómalo, por lo tanto, quizás sería susceptible de requerir algún tipo de transformación el modelo para obtener mejores propiedades. Podemos acabar de validar la calidad de la predicción a partir de índices de evaluación. Podemos evaluar los valores predichos y generar índices resumen de esta calidad. En particular podemos obtener el residuo medio cuadrático, vendría a ser "rmse", esto es los residuos al cuadrado sumados, y promediados. Los residuos al cuadrado promediados, este valor es 15,5. Si tuviéramos un modelo mejor, este parámetro sería más pequeño. También tenemos el valor "r cuadrado" midiendo una especie de porcentaje de información que explica el modelo. Eso se puede interpretar como que el retraso en la salida explica esencialmente el 92 por ciento del retraso en la llegada. Igualmente, un modelo mejor explicaría más hasta alcanzar el cien por cien de la información disponible. El modelo de regresión contiene otras opciones, pero estas opciones las veremos en videos posteriores. Hasta aquí la sesión dedicada al modelo lineal de regresión simple.