So I have this model but the data may vary. And it is virtually impossible to always have the values in bounds. If I do I`d have to use larger period leading to concept shift which is worse.
The question is what is the best way to deal with the values of futures that are out of the model bounds? I see 3 options
- If the value is greater than max set it to the max value the model has seen
- If the value is less than min set it to the min value the model has seen
- If the value is greater or less set it to the mean that kind of eliminates the future weight for the prediction.
So what would be the best approach here any thoughts?
Note: I am retraining the model daily and the model has a lot of futures ~500 so it is highly likely even right after retraining some to be out of bounds, excluding futures is not the best option since it's never the same future showing this behaviour.
I am using this function for scaling.
def min_max(value, min_max_map):
result = 0
if min_max_map['max'] - min_max_map['min']:
result = (value - min_max_map['min']) / (min_max_map['max'] - min_max_map['min'])
if result > min_max_map['max'] or result < min_max_map['min']:
result = (min_max_map['mean'] - min_max_map['min']) / (min_max_map['max'] - min_max_map['min'])
return result