ARIMA summary showing as SARIMAX

Question:

I have an ARIMA(1,1,1) model I am trying to fit to a dataframe of stock prices. The index of the dataframe is a date.

The code below compiles but it produces a SARIMAX summary and not ARIMA (see image).

from statsmodels.tsa.arima.model import ARIMA
dataset_for_prediction.index = dataset_for_prediction.index.to_period('B')
model = ARIMA(dataset_for_prediction['Adj Close'], order=(1,1,1))
model_fit = model.fit()
print(model_fit.summary())

enter image description here

How can I then plot the actual results. I have tried the following but it just produces a horizontal line.

from statsmodels.graphics.tsaplots import plot_predict
plot_predict(model_fit)
plt.show()

Answers:

Tried to print the predicted values:

print(model_fit.predict())

Output

Date
2014-12-31      0.000000
2015-01-02    108.382622
2015-01-05    109.424271
2015-01-06    107.839921
2015-01-07    105.537888
                 ...    
2022-04-25    133.380821
2022-04-26    134.080382
2022-04-27    131.454924
2022-04-28    130.273586
2022-04-29    130.850081

When drawing this picture(first element 0):
enter image description here
excluded the first element

fig = plot_predict(model_fit, start=dataset_for_prediction.index[1], end=dataset_for_prediction.index[-1], ax=ax)

enter image description here
All code:

import yfinance as yf
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict
import matplotlib.pyplot as plt

dataset_for_prediction = yf.download('IBM', start='2015-01-01', end='2022-04-30')

dataset_for_prediction.index = dataset_for_prediction.index.to_period('B')
model = ARIMA(dataset_for_prediction['Adj Close'], order=(1, 1, 1))
model_fit = model.fit()

fig, ax = plt.subplots()
ax = dataset_for_prediction['Adj Close'].plot(ax=ax)
fig = plot_predict(model_fit, start=dataset_for_prediction.index[1], end=dataset_for_prediction.index[-1], ax=ax)
legend = ax.legend(loc='upper left')
plt.show()
Answered By: inquirer