Una implementación de codificación para la creación de aplicaciones web de BI basadas en datos basados ​​en Python y inteligencia empresarial con Taipy: análisis dinámico de series de tiempo interactivas, simulación en tiempo real, descomposición estacional y visualización avanzada

En este tutorial completo, exploramos la construcción de un tablero avanzado e interactivo con Taipy. Taipy es un marco innovador diseñado para crear aplicaciones dinámicas basadas en datos sin esfuerzo. Este tutorial le enseñará cómo aprovechar su poder para simular datos complejos de series de tiempo y realizar una descomposición estacional en tiempo real. Al aprovechar la gestión del estado reactivo de Taipy, construimos un tablero que permite ajustes de parámetros perfectos, como modificar coeficientes de tendencias, amplitudes estacionales y niveles de ruido, y actualiza las salidas visuales instantáneamente. Integrado en un entorno de Google Colab, este tutorial proporciona un enfoque paso a paso para explorar la simulación y el análisis posterior utilizando Statsmodels, lo que demuestra cómo Taipy puede optimizar el desarrollo de análisis visuales ricos e interactivos.

!pip install taipy statsmodels

Instalamos el marco Taipy, que es esencial para construir datos interactivos de datos de Python y aplicaciones web de BIS de inteligencia empresarial. También instalamos modelos de estadísticas para análisis estadísticos sofisticados y descomposición de series de tiempo. Esta configuración garantiza que todas las bibliotecas necesarias estén disponibles para ejecutar el tablero avanzado en Google Colab.

from taipy.gui import Gui
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose

Importamos las bibliotecas esenciales para construir un tablero interactivo con Taipy. Trae a la clase GUI de Taipy para crear la interfaz web, Numpy para cálculos numéricos eficientes, matplotlib.pyplot para trazar gráficos y temporada_Decomos de Statsmodels para realizar la descomposición estacional en los datos de la serie de tiempo.

state = {
    "trend_coeff": 0.05,            
    "seasonal_amplitude": 5.0,        
    "noise_level": 1.0,            
    "time_horizon": 100,            
    "sim_data": None,                
    "times": None,                  
    "plot_timeseries": None,        
    "plot_decomposition": None,      
    "summary": ""                  
}

Inicializamos un diccionario llamado Estado que sirve como contenedor de estado reactivo para el tablero. Cada clave en el diccionario contiene un parámetro de simulación (como el coeficiente de tendencia, la amplitud estacional, el nivel de ruido y el horizonte de tiempo) o un marcador de posición para datos y salidas visuales (como datos simulados, índices de tiempo, el gráfico de series de tiempo, la gráfica de descomposición y una cadena sumaria). Este estado estructurado permite que la aplicación reaccione a los cambios de parámetros y actualice las visualizaciones y el análisis en tiempo real.

def update_simulation(state):
    t = np.arange(state["time_horizon"])
   
    trend = state["trend_coeff"] * t
   
    season = state["seasonal_amplitude"] * np.sin(2 * np.pi * t / 7)
   
    noise = np.random.normal(0, state["noise_level"], size=state["time_horizon"])
   
    sim_data = trend + season + noise


    state["times"] = t
    state["sim_data"] = sim_data
   
    mean_val = np.mean(sim_data)
    std_val = np.std(sim_data)
    state["summary"] = f"Mean: {mean_val:.2f} | Std Dev: {std_val:.2f}"
   
    fig, ax = plt.subplots(figsize=(8, 4))
    ax.plot(t, sim_data, label="Simulated Data", color="blue")
    ax.set_title("Simulated Time Series")
    ax.set_xlabel("Time (days)")
    ax.set_ylabel("Value")
    ax.legend()
    state["plot_timeseries"] = fig  
   
    try:
        decomp = seasonal_decompose(sim_data, period=7)
       
        fig_decomp, axs = plt.subplots(4, 1, figsize=(8, 8))
        axs[0].plot(t, decomp.observed, label="Observed", color="blue")
        axs[0].set_title("Observed Component")
       
        axs[1].plot(t, decomp.trend, label="Trend", color="orange")
        axs[1].set_title("Trend Component")
       
        axs[2].plot(t, decomp.seasonal, label="Seasonal", color="green")
        axs[2].set_title("Seasonal Component")
       
        axs[3].plot(t, decomp.resid, label="Residual", color="red")
        axs[3].set_title("Residual Component")
       
        for ax in axs:
            ax.legend()
       
        fig_decomp.tight_layout()
        state["plot_decomposition"] = fig_decomp  
    except Exception as e:
        fig_err = plt.figure(figsize=(8, 4))
        plt.text(0.5, 0.5, f"Decomposition Error: {str(e)}",
                 horizontalalignment="center", verticalalignment="center")
        state["plot_decomposition"] = fig_err

Esta función, update_simulation, genera una serie temporal sintética combinando una tendencia lineal, un patrón estacional sinusoidal y ruido aleatorio. Luego calcula estadísticas resumidas. Actualiza el estado reactivo con los datos de simulación. Produce dos figuras de matplotlib, una para la serie temporal simulada y otra para su descomposición estacional, mientras se maneja posibles errores en el proceso de descomposición.

update_simulation(state)


page = """
# Advanced Time Series Simulation and Analysis Dashboard


This dashboard simulates time series data using customizable parameters and performs a seasonal decomposition to extract trend, seasonal, and residual components.


## Simulation Parameters


Adjust the sliders below to modify the simulation:


- **Trend Coefficient:** Controls the strength of the linear trend.
- **Seasonal Amplitude:** Adjusts the intensity of the weekly seasonal component.
- **Noise Level:** Sets the randomness in the simulation.
- **Time Horizon (days):** Defines the number of data points (days) in the simulation.


<|{trend_coeff}|slider|min=-1|max=1|step=0.01|label=Trend Coefficient|on_change=update_simulation|>
<|{seasonal_amplitude}|slider|min=0|max=10|step=0.1|label=Seasonal Amplitude|on_change=update_simulation|>
<|{noise_level}|slider|min=0|max=5|step=0.1|label=Noise Level|on_change=update_simulation|>
<|{time_horizon}|slider|min=50|max=500|step=10|label=Time Horizon (days)|on_change=update_simulation|>


## Simulated Time Series


This plot displays the simulated time series based on your parameter settings:


<|pyplot|figure=plot_timeseries|>


## Seasonal Decomposition


The decomposition below splits the time series into its observed, trend, seasonal, and residual components:


<|pyplot|figure=plot_decomposition|>


## Summary Statistics


{summary}


---


*This advanced dashboard is powered by Taipy's reactive engine, ensuring real-time updates and an in-depth analysis experience as you adjust the simulation parameters.*
"""


Gui(page).run(state=state, notebook=True)

Finalmente, Update_Simulation (estado) genera los datos y los gráficos de simulación inicial y define un diseño de tablero de taipy con controles deslizantes interactivos, parcelas y estadísticas sumarias. Finalmente, lanza el tablero en modo cuaderno con GUI (página) .run (state = state, cuaderno = true), asegurando la interactividad en tiempo real.

En conclusión, hemos ilustrado Taipy en la creación de paneles sofisticados y reactivos que dan vida a los análisis de datos complejos. Al construir una simulación detallada de series de tiempo emparejada con una descomposición estacional integral, hemos demostrado cómo Taipy se integra con bibliotecas populares como Matplotlib y Statsmodels para ofrecer una experiencia analítica atractiva y en tiempo real. La capacidad de ajustar los parámetros de simulación en la mosca y observar instantáneamente su impacto mejora la comprensión de los patrones de datos subyacentes y ejemplifica el potencial de Taipy para generar ideas más profundas.


Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro 90k+ ml de subreddit.

🔥 [Register Now] Conferencia virtual de Minicon sobre AI agente: registro gratuito + Certificado de asistencia + Evento corto de 4 horas (21 de mayo, 9 am- 1 pm PST) + Hands on Workshop


Asif Razzaq es el CEO de MarktechPost Media Inc .. Como empresario e ingeniero visionario, ASIF se compromete a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, MarktechPost, que se destaca por su cobertura profunda de noticias de aprendizaje automático y de aprendizaje profundo que es técnicamente sólido y fácilmente comprensible por una audiencia amplia. La plataforma cuenta con más de 2 millones de vistas mensuales, ilustrando su popularidad entre el público.