Multinomial/conditional Logit 回归,为什么 StatsModel 在 mlogit 包示例上失败?
Multinomial/conditional Logit Regression, Why StatsModel fails on mlogit package example?
我正在尝试在 R 中重现 mlogit 包的多项式 logit 回归示例。
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
我试图弄清楚如何重新组织原始数据集 Fishing,因为我知道 mlogit 包会在拟合之前重新组织数据,但无法弄清楚如何在 statsmodel 中更改它。任何帮助将不胜感激。
statsmodels 中的 MNLogit 实现了不同版本的多项式 logit。 AFAICS,对应R中的nnet multinom https://stats.stackexchange.com/questions/186344/r-interpreting-the-multinom-output-using-the-iris-dataset/188426
在这种情况下,参数因选择而异,但解释变量不同。在多选 CLogit 版本或 R 中的 mlogit 版本中,解释变量因选择而异,但参数与选择无关。
CLogit 和其他多项式 logit 版本正在等待 statsmodels 的拉取请求,目前在主分支中不可用。
我正在尝试在 R 中重现 mlogit 包的多项式 logit 回归示例。
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
我试图弄清楚如何重新组织原始数据集 Fishing,因为我知道 mlogit 包会在拟合之前重新组织数据,但无法弄清楚如何在 statsmodel 中更改它。任何帮助将不胜感激。
statsmodels 中的 MNLogit 实现了不同版本的多项式 logit。 AFAICS,对应R中的nnet multinom https://stats.stackexchange.com/questions/186344/r-interpreting-the-multinom-output-using-the-iris-dataset/188426
在这种情况下,参数因选择而异,但解释变量不同。在多选 CLogit 版本或 R 中的 mlogit 版本中,解释变量因选择而异,但参数与选择无关。
CLogit 和其他多项式 logit 版本正在等待 statsmodels 的拉取请求,目前在主分支中不可用。