I want to find correct Auto ARIMA values for my dataset. Since my values are presented hourly, I couldn't estimate the parameters. The problem should be about 'm', but greater values crashes eventually. I also tried seasonal false, which resulted with linear forecast.

model = pm.auto_arima(df.value, start_p=1, start_q=1,
test='adf', # use adftest to find optimal 'd'
max_p=3, max_q=3, # maximum p and q
m=1, # frequency of series
d=None, # let model determine 'd'
seasonal=False, # No Seasonality
start_P=0,
D=0,
trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
print(model.summary())
Your data is clearly seasonal, so you should set the parameter seasonal = True.
m is the length of a seasonal period, meaning the number of data points in each period. You have multiple seasonalities in your data (daily, weekly and probably yearly), but I think you should focus on the daily seasonality. Since you have hourly data, each season has 24 data points. Therefore, you should set m = 24. While ARIMA may struggle with long seasonalities, I think that 24 should be fine.
I would not restrict or lock ARIMA to specific values/ranges for each parameter. Try the following:
model = pm.auto_arima(df.value,
test='adf',
seasonal=True,
m=24,
trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With