Sign inGet started
← Back to all guides

Automated forecasting in Python

By Filip Žitný

Updated on August 5, 2024

Automated forecasting in the banking and finance sector can provide critical insights for decision-making, ranging from predicting stock prices to estimating economic indicators. This guide will walk you through setting up a forecasting model using Deepnote, leveraging its AI-powered data platform capabilities.

Data importation

Data sources

For financial forecasting, data can come from various sources:

  • CSV files: Upload historical financial data.
  • APIs: Use APIs like Alpha Vantage or Yahoo Finance for real-time data.
  • Databases: Connect to databases like SQL or BigQuery.

Loading data

Load the data using pandas:

import pandas as pd

# Example: Loading a CSV file
df = pd.read_csv('/path/to/your/data.csv')

# Display the first few rows
df.head()

Data preprocessing

Exploratory data analysis (EDA)

Check for missing values, outliers, and data consistency.

Visualize data trends using matplotlib or seaborn.

import matplotlib.pyplot as plt

# Example: Plotting time series data
plt.plot(df['Date'], df['Price'])
plt.xlabel('Date')
plt.ylabel('Price')
plt.title('Stock Price Over Time')
plt.show()

Feature engineering

Generate relevant features, such as moving averages or lag features.

Handle missing values and data normalization if needed.

# Example: Creating a moving average feature
df['MA_10'] = df['Price'].rolling(window=10).mean()

Model building

Selecting a model

Common models for time series forecasting include:

ARIMA: Autoregressive Integrated Moving Average, check out Deepnote notebook

Prophet: A model developed by Facebook for forecasting time series data, check out our example notebook.

Training the model

Using ARIMA

from statsmodels.tsa.arima_model import ARIMA

# Fit model
model = ARIMA(df['Price'], order=(5, 1, 0))
model_fit = model.fit(disp=0)
print(model_fit.summary())

Using Prophet

from prophet import Prophet

# Prepare data for Prophet
df_prophet = df[['Date', 'Price']].rename(columns={'Date': 'ds', 'Price': 'y'})

# Fit model
model = Prophet()
model.fit(df_prophet)

# Create future dataframe
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)

# Plot forecast
model.plot(forecast)
plt.show()

Model evaluation

Evaluate the model using appropriate metrics like Mean Absolute Error (MAE) or Root Mean Squared Error (RMSE).

from sklearn.metrics import mean_absolute_error

# Example: Calculating MAE
y_true = df['Price']
y_pred = model_fit.predict(start=0, end=len(df)-1)
mae = mean_absolute_error(y_true, y_pred)
print(f'Mean Absolute Error: {mae}')

Deployment and automation

Automating forecasts

To automate the forecasting process:

  1. Scheduling: Use Deepnote's scheduling feature to run notebooks at regular intervals.
  2. Alerts and notifications: Set up notifications based on forecast results using webhooks or email integrations.

Sharing results

Deepnote allows easy sharing of notebooks with interactive charts and tables. You can:

  • Share a public link to the Deepnote notebook.
  • Deepnote app, create a data app out of your notebooks in one click
  • Embed results in a website.

Conclusion

This guide provides a basic framework for setting up automated forecasting in Python using Deepnote. The flexible and collaborative environment of Deepnote, combined with Python's powerful libraries, makes it an excellent choice for tackling complex financial forecasting problems.

Further reading

  • Deepnote documentation: Explore more features of Deepnote.
  • Time series forecasting in Python: Deep dive into advanced forecasting techniques.

Filip Žitný

Data Scientist

Follow Filip on Twitter, LinkedIn and GitHub

That’s it, time to try Deepnote

Get started – it’s free
Book a demo

Footer

Solutions

  • Notebook
  • Data apps
  • Machine learning
  • Data teams

Product

Company

Comparisons

Resources

  • Privacy
  • Terms

© Deepnote