Rでmlogitパッケージの多項ロジット回帰の例を再現しようとしています.
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
#a pure "conditional" model
summary(mlogit(mode ~ price + catch, data = Fish))
この例を statsmodel 関数 MNLogit で再現するには、釣りデータ セットを csv ファイルとしてエクスポートし、次の手順を実行します。
import pandas
import statsmodels.api as st
#load data
df = pandas.read_csv("Fishing.csv")
x = df.drop('mode', axis = 1)
y = df['mode']
mdl = st.MNLogit(y, x)
mdl_fit = mdl.fit()
次のエラーが表示されます
LinAlgError: Singular matrix
mlogit パッケージが適合前にデータを再編成することはわかっていますが、statsmodel でそれを変更する方法がわかりません。どんな助けでも大歓迎です。