We’re using the Facebook Prophet library to forecast a 13-week cash flow based on transaction data obtained from the Plaid API. Our goal is to generate daily forecasts. However, we’re experiencing issues with the model predicting transactions for every day of the week, rather than just the days when transactions typically occur (e.g., two transactions per week).
Problem Description:
- Input Data: Our input consists of historical transaction data, which includes several transactions per week but not daily transactions.
- Current Configuration: We’re using Prophet’s daily seasonality feature to generate daily forecasts.
- Issue: Prophet is outputting daily forecasts with transactions on all days, not reflecting the actual pattern of having transactions only a few times per week.
What We’ve Tried:
- Zero Padding: Added zero values for days without transactions to
help Prophet learn about non-transaction days. - Aggregation: Aggregated transaction data weekly, but this still
leads to incorrect daily predictions. - Model Configurations: Experimented with daily_seasonality=False, but
results were not satisfactory. - Dummy Data Testing: Created dummy data with known patterns to test
model behavior, but faced similar issues with actual data.
Questions:
-
Configuration Advice: How should we configure Prophet to better handle our data and provide accurate daily forecasts, considering our transactions typically happen a few times per week?
-
Handling Zero Transactions: How can we ensure the model forecasts zero transactions for days without historical activity?
-
Model Tuning: Are there specific parameters or methods to fine-tune Prophet for this kind of sporadic transaction pattern?
Any and all insights are welcome. Thanks!