Los científicos de datos manejan datos de series temporales a diario y poder manipular y analizar estos datos es una parte necesaria del trabajo. Las funciones de la ventana SQL le permiten hacer precisamente esto y es una pregunta común en las entrevistas de ciencia de datos. Entonces, hablemos sobre qué son los datos de series temporales, cuándo usarlos y cómo implementar funciones para ayudar a administrar los datos de series temporales.
¿Qué son los datos de series temporales?
Los datos de series de tiempo son variables dentro de sus datos que tienen un componente de tiempo. Esto significa que cada valor en este atributo tiene un valor de fecha o de hora, a veces tienen ambos. Estos son algunos ejemplos de datos de series temporales:
• El precio diario de las acciones de las empresas porque cada precio de las acciones está asociado a un día específico
• El valor promedio diario del índice bursátil durante los últimos años porque cada valor se asigna a un día específico
• Visitas únicas a un sitio web durante un mes
• Registros de plataforma cada día
• Ventas e ingresos mensuales
• Inicios de sesión diarios para una aplicación
Funciones de ventana LAG y LEAD
Cuando se manejan datos de series de tiempo, un cálculo común es calcular el crecimiento o los promedios a lo largo del tiempo. Esto significa que deberá tomar la fecha futura o la fecha anterior y sus valores asociados.
Dos funciones de VENTANA que le permiten lograr esto son LAG y LEAD, que son extremadamente útiles para manejar datos relacionados con el tiempo. La principal diferencia entre LAG y LEAD es que LAG obtiene datos de las filas anteriores, mientras que LEAD es lo contrario, obtiene datos de las siguientes filas.
Podemos usar cualquiera de las dos funciones para comparar el crecimiento mes a mes, por ejemplo. Como profesional de análisis de datos, es muy probable que trabaje con datos relacionados con el tiempo, y si puede usar LAG o LEAD de manera eficiente, será un científico de datos muy productivo.
Una pregunta de entrevista de ciencia de datos que requiere una función de ventana
Analicemos una pregunta de entrevista avanzada de ciencia de datos sql que trata sobre esta función de ventana. Verá que las funciones de ventana suelen ser parte de las preguntas de la entrevista, pero también las verá mucho en su trabajo diario, por lo que es importante saber cómo usarlas.
Analicemos una pregunta de Airbnb llamada crecimiento de Airbnb. Si desea seguirlo de forma interactiva, puede hacerlo aquí.
La pregunta es estimar el crecimiento de Airbnb cada año usando la cantidad de anfitriones registrados como métrica de crecimiento. La tasa de crecimiento se calcula tomando ((número de hosts registrados en el año actual – número de hosts registrados en el año anterior) / número de hosts registrados en el año anterior) * 100.
Salida del año, número de hosts en el año actual, número de hosts en el año anterior y tasa de crecimiento. Redondea la tasa de crecimiento al porcentaje más cercano y ordena el resultado en orden ascendente según el año.
Enfoque Paso 1: Cuente el anfitrión para el año actual
El primer paso es contar los hosts por año, por lo que necesitaremos extraer el año de los valores de fecha.
SELECCIONAR extracto (año
DESDE host_since::fecha) AS año,
recuento (id) host_año_actual
DESDE airbnb_search_detalles
DONDE host_since NO ES NULO
GRUPO POR extracto (año
DESDE host_desde::fecha)
ORDEN POR año
Enfoque Paso 2: Cuente el anfitrión del año anterior.
Aquí es donde usará la función de ventana LAG. Aquí creará una vista donde tenemos el año, la cantidad de hosts en ese año actual y luego la cantidad de hosts del año anterior. Use una función de retraso para el conteo del año anterior y tome el valor del último año y colóquelo en la misma fila que el conteo de este año. De esta manera, tendrá 3 columnas en su vista: año, recuento de host del año actual y recuento de host del año pasado. La función LAG le permite extraer fácilmente el conteo de hosts del último año en su fila. Esto facilita la implementación de cualquier métrica como una tasa de crecimiento porque tiene todos los valores que necesita en una fila para que SQL calcule fácilmente una métrica. Aquí está el código para ello:
SELECCIONE año,
anfitrión_del_año_actual,
LAG(anfitrión_año_actual, 1) SOBRE (ORDENAR POR año) COMO host_año_anterior
DE
(SELECCIONE extracto (año
DESDE host_since::fecha) AS año,
recuento (id) host_año_actual
DESDE airbnb_search_detalles
DONDE host_since NO ES NULO
GRUPO POR extracto (año
DESDE host_desde::fecha)
ORDEN POR año) t1) t2
Enfoque 3: Implementar la métrica de crecimiento
Como se mencionó anteriormente, es mucho más fácil implementar una métrica como la siguiente cuando todos los valores están en una fila. Es por eso que realiza la función LAG. Implementar la ronda de cálculo de la tasa de crecimiento (((host_año_actual – host_año_anterior)/(cast(host_año_anterior AS numérico)))*100) crecimiento_estimado
SELECCIONE año,
anfitrión_del_año_actual,
an_anterior_anfitrión,
round(((current_year_host – prev_year_host)/(cast(prev_year_host AS numérico)))*100) crecimiento_estimado
DE
(SELECCIONE año,
anfitrión_del_año_actual,
LAG(anfitrión_año_actual, 1) SOBRE (ORDENAR POR año) COMO host_año_anterior
DE
(SELECCIONE extracto (año
DESDE host_since::fecha) AS año,
recuento (id) host_año_actual
DESDE airbnb_search_detalles
DONDE host_since NO ES NULO
GRUPO POR extracto (año
DESDE host_desde::fecha)
ORDEN POR año) t1) t2
CAMISETA FC PORTO PRIMERA EQUIPACIÓN 2021-2022 Noticias de Fútbol – Diario de Noticias de Navarra