Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import numpy as np | |
| from statsmodels.tsa.arima.model import ARIMA | |
| from sklearn.metrics import mean_squared_error, mean_absolute_percentage_error | |
| import plotly.graph_objects as go | |
| def forecast_stock(days_ahead): | |
| df = pd.read_excel("Microsoft_stock_data.xlsx") | |
| df['Date'] = pd.to_datetime(df['Date']) | |
| df = df.sort_values('Date') | |
| data = df['Close'].values | |
| model = ARIMA(data, order=(1,1,1)) | |
| fitted = model.fit() | |
| forecast = fitted.forecast(steps=int(days_ahead)) | |
| fig = go.Figure() | |
| fig.add_trace(go.Scatter(x=df['Date'].tail(100), y=data[-100:], name='Historical')) | |
| future_dates = pd.date_range(start=df['Date'].iloc[-1], periods=int(days_ahead)+1)[1:] | |
| fig.add_trace(go.Scatter(x=future_dates, y=forecast, name='Forecast')) | |
| fig.update_layout(title='Stock Price Forecast', xaxis_title='Date', yaxis_title='Price') | |
| return fig | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# ๐ Time Series Forecasting: ARIMA vs LSTM") | |
| gr.Markdown("**Microsoft Stock Price Forecasting** - This app demonstrates ARIMA model forecasting.") | |
| days = gr.Slider(1, 90, value=30, label="Days to Forecast") | |
| plot = gr.Plot() | |
| demo.load(forecast_stock, days, plot) | |
| days.change(forecast_stock, days, plot) | |
| demo.launch() | |