statsmodels.tsa.arima_Model予測時報エラーTypeError:int()argument must be a string,a bytes-like object or a number,not'Timestamp'
1685 ワード
pythonでstatsmodelsを使用してARIMAモデルを作成し、時間系列を予測します.
実行後のエラー:
この場合、読み込まれた時系列データの時間が一定の間隔をあけていないため、例えば
このうち2016−01−30は、前時間から8日間、その他の間隔は7日間である.このDatetimeIndexのfreqはNoneタイプであることがわかる.最終日を2016-01-29に変更すると、
しかし、この時は間違いを報告します.
これはget_predictionのstartパラメータは、時間シーケンスに現れた時間でなければなりません.
debug経験++:ライブラリを使用する場合、階層呼び出しのため、問題が発生して情報を読み間違えただけでは解決できない場合がありますが、呼び出したコードが間違っていない場合は、データの問題になる可能性があります.検索エンジンは使いやすいが、小さな問題では盲目的にインターネットで針をすくうことになるかもしれない.オープンソースのライブラリについては、似たようなissueがあるかどうか、ライブラリのバグである場合があります.自分で問題を特定するには、正確で完全な例を比較して、異なる点を探す方法があります.
import pandas as pd
import statsmodels.api as sm
df = pd.read_csv("data.csv", index_col=0, parse_dates=True)
mod = sm.tsa.statespace.SARIMAX(df['price'], enforce_stationarity=False, enforce_invertibility=False)
res = mod.fit()
res.get_prediction(start=pd.to_datetime('2018-1-1'))
実行後のエラー:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'Timestamp'
この場合、読み込まれた時系列データの時間が一定の間隔をあけていないため、例えば
mod._index
を印刷した結果、DatetimeIndex(['2016-01-01', '2016-01-08', '2016-01-15', '2016-01-22',
'2016-01-30'],
dtype='datetime64[ns]', name='date', freq=None)
このうち2016−01−30は、前時間から8日間、その他の間隔は7日間である.このDatetimeIndexのfreqはNoneタイプであることがわかる.最終日を2016-01-29に変更すると、
mod._index
の結果は次のとおりです.DatetimeIndex(['2016-01-01', '2016-01-08', '2016-01-15', '2016-01-22',
'2016-01-29'],
dtype='datetime64[ns]', freq='W-FRI')
しかし、この時は間違いを報告します.
KeyError: 'The `start` argument could not be matched to a location related to the index of the data.'
これはget_predictionのstartパラメータは、時間シーケンスに現れた時間でなければなりません.
debug経験++:ライブラリを使用する場合、階層呼び出しのため、問題が発生して情報を読み間違えただけでは解決できない場合がありますが、呼び出したコードが間違っていない場合は、データの問題になる可能性があります.検索エンジンは使いやすいが、小さな問題では盲目的にインターネットで針をすくうことになるかもしれない.オープンソースのライブラリについては、似たようなissueがあるかどうか、ライブラリのバグである場合があります.自分で問題を特定するには、正確で完全な例を比較して、異なる点を探す方法があります.