将来の警告の原因となった行または方法を知りたい!
predictors = weekly.columns[1:7] # the lags and volume
X = sm.add_constant(weekly[predictors]) # sm: statsmodels
y = np.array([1 if el=='Up' else 0 for el in weekly.Direction.values])
logit = sm.Logit(y,X)
results=logit.fit()
print(results.summary())
C:\ Anaconda3\lib\site-packages\numpy\core\fromnumeric.py:2389:FutureWarning:Method .ptpは非推奨であり、将来のバージョンでは削除される予定です。代わりにnumpy.ptpを使用してください。 ptp(axis = axis、out = out、** kwargs)を返します
_weekly[predictors]
_は、_weekly[[predictors]]
_ DataFrameのシリーズ表現を返します。警告は_numpy.ptp
_を使用するように指示しているため、属性values
を_weekly[predictors]
_に追加すると、警告が非表示になります。
_X = sm.add_constant(weekly[predictors].values)
_
または、メソッドto_numpy()
を使用できます。
_X = sm.add_constant(weekly[predictors].to_numpy())
_
_weekly[predictors]
_シリーズをNumPy配列に変換します。
この警告を生成する行は次のとおりです。
X = sm.add_constant(weekly[predictors]) # sm: statsmodels
残念ながら私は同じ問題を抱えています。
警告の原因となる行は次のとおりです。
X = sm.add_constant(weekly[predictors]) # sm: statsmodels
これは、const
という列をすべて1
とともにデータフレームに追加するstatsmodelsのユーティリティです。
これはもう機能しない(非推奨の関数を使用する)ため、別の方法を使用できます。私はパンダの組み込みassign
メソッドを好みます:
X = weekly[predictors].assign(const=1)
または、それをIntercept
と呼びます。これは、その定数の目的であり、statsmodelsの formula api と一致するためです。
X = weekly[predictors].assign(Intercept=1)
Numpy配列を返す代わりにデータフレームを保持したい場合:
X = pd.DataFrame(sm.add_constant(weekly[predictors].values, has_constant='add'), columns = ['const'] + weekly[predictors].columns.tolist())
また、yは既にnumpy配列ですが、yもpandasシリーズの場合、y.reset_index()を呼び出す必要があります。これは、Xをnumpy配列にすると、失われるためです。あなたが持っていたどんな指標でも。