実現したいこと
statsmodelsのライブラリにSeriesデータを読み込ませて結果を出力させたい。
そのためには、DatetimeIndexにfreqが与えられていないと変な警告メッセージがでるようだ。
前提
python:3.9.7
pandas:1.3.4
statsmodels:0.12.2
statsmodelsのライブラリにSeriesデータを読み込ませて結果を出力させたいのですが、
Seriesデータを読み込ませると変な警告メッセージが出る。
発生している問題・エラーメッセージ
エラーメッセージ
C:\Users******\Anaconda3\lib\site-packages\statsmodels\tsa\base\tsa_model.py:581: ValueWarning: A date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting.
warnings.warn('A date index has been provided, but it has no'
該当のソースコード
sr_data = pd.Series(df["PX_LAST"], index = df.index )
mod_data = sm.tsa.MarkovRegression(sr_data, k_regimes=2)
res_data = mod_data.fit()
試したこと(その1)
sr_data = pd.Series(df["PX_LAST"], index = pd.DatetimeIndex(df.index).to_period("D") )
mod_data = sm.tsa.MarkovRegression(sr_data, k_regimes=2)
res_data = mod_data.fit()
以下のエラー
C:\Users*\Anaconda3\lib\site-packages\scipy\special_logsumexp.py:118: RuntimeWarning: invalid value encountered in log
out = np.log(s)
C:\Users*\Anaconda3\lib\site-packages\statsmodels\tsa\regime_switching\markov_regression.py:188: RuntimeWarning: invalid value encountered in true_divide
-0.5 * resid2 / variance - 0.5 * np.log(2 * np.pi * variance))
C:\Users**\Anaconda3\lib\site-packages\statsmodels\tsa\regime_switching\markov_regression.py:188: RuntimeWarning: invalid value encountered in log
-0.5 * resid2 / variance - 0.5 * np.log(2 * np.pi * variance))
C:\Users*\Anaconda3\lib\site-packages\statsmodels\tsa\regime_switching\markov_switching.py:162: RuntimeWarning: invalid value encountered in log
initial_probabilities = np.log(initial_probabilities)
C:\Users*\Anaconda3\lib\site-packages\statsmodels\tsa\regime_switching\markov_switching.py:163: RuntimeWarning: invalid value encountered in log
regime_transition = np.log(np.maximum(regime_transition, 1e-20))
C:\Users******\Anaconda3\lib\site-packages\statsmodels\base\model.py:566: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
warnings.warn("Maximum Likelihood optimization failed to "
Seriesの中身をチェックした結果
Dates
1995-12-05 NaN
1995-12-06 NaN
1995-12-07 NaN
1995-12-11 NaN
1995-12-12 NaN
..
2023-02-03 NaN
2023-02-06 NaN
2023-02-07 NaN
2023-02-08 NaN
2023-02-09 NaN
Freq: D, Name: PX_LAST, Length: 7015, dtype: float64
試したこと(その2)
sr_data = pd.Series(data = df["PX_LAST"], index = df.index, freq = "D")
エラーメッセージ
TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_5028/2741688803.py in <module>
----> 1 sr_iv_data = pd.Series(data = df["PX_LAST"], index = df.index, freq = "D")
TypeError: init() got an unexpected keyword argument 'freq'
回答1件
あなたの回答
tips
プレビュー