0

I have a time series dataframe with 109 rows and 96 columns. I've been trying to implement Auto Arima on the dataframe by looping over each column to get the parameters suggested by the model but I get the following error as below. Could someone please help?

Will building the model on a series instead of dataframe help? If so, how can I do that to build on the entire data instead of each column?

" ValueError: Encountered exception in stationarity test ('adf'). This can occur in seasonal settings when a large enough `m` coupled with a large enough `D` difference the training array into too few samples for OLS (input contains 109 samples). Try fitting on a larger 
training size (raised from LinAlgError: Singular matrix) "

Code:

series = df_main_scaled.columns    
for col in series:
    print("Auto Arima for : ",{col})
    model = pm.auto_arima(df[col], start_p=1, start_q=1,
                        test='adf',
                        max_p=4, max_q=4,
                        m=1,             
                        d=None,          
                        trace=True,
                        error_action='ignore',  
                        suppress_warnings=True, 
                        stepwise=True)
    print(model.aic())
    model.summary()
A Newbie
  • 113
  • 8

1 Answers1

0

A seasonality (m) of just 1 does not really make sense. Seasonality means a reoccurring pattern in your time series (e.g., a rising and falling temperature over the months), but a single observation cannot have such a pattern. You either need to remove m or set a higher value, depending on your data of course.

Arne Decker
  • 808
  • 1
  • 3
  • 9