【问题标题】:mlogit package in R: intercept and alternative specific individual variablesR中的mlogit包:拦截和替代特定的单个变量
【发布时间】:2017-07-23 17:38:39
【问题描述】:

我正在尝试处理 R 中的包 mlogit 以建立一个运输模式选择模型。我搜索了类似的问题,但我没有找到任何东西。

我在 logit 模型中有一组 3 个备选方案(步行、汽车、公交),其中包含备选特定变量(不同备选方案的相同参数)和单个备选特定变量(例如:0(如果否)/1(如果是的)家庭目的地旅行,仅适用于步行模式)。

我希望仅在其中一种替代方案(自动)中进行拦截,但我无法做到这一点。使用 reflevel,它只指一种替代方案,我得到了两个截距。

    ml.data <- mlogit(choice ~ t + cost | dhome, mode, reflevel = "transit")

这不是我希望的那样工作。

此外,我想设置替代的特定变量,如我之前所说。将它们插入 mlogit 公式的第 2 部分需要我两个参数值,但我希望只有一个参数用于上述替代方案。

谁能帮帮我?

【问题讨论】:

    标签: r model choice multiple-choice mlogit


    【解决方案1】:

    你不能做你想做的事。这不是mlogit 的问题,尤其是多项逻辑回归如何工作的问题。如果您的因变量有 3 个水平,您将有 2 个截距。而且您必须对整个模型使用相同的自变量(对于所有回归方法都是如此)。

    【讨论】:

    • 感谢您的回答彼得。也许问题没有明确暴露,对不起,我是学生。我知道我可以拥有最大数量的(n-1)个模态变量,正如我的参考书所说,对于不会因替代方案而变化的单个变量也是如此。我不明白为什么我不能有小于 (n-1) 的变量,我认为应该可以执行这样的模型。
    • 因为这就是多项逻辑回归的工作原理。但无论如何,拦截通常是不感兴趣的。
    【解决方案2】:

    但是,参考问题的第二部分(“个别替代特定变量(例如:0(如果否)/1(如果是)家庭目的地旅行,仅用于步行模式”)我试图修改数据集通过插入 3 列(dhome.auto [全零]、dhome.transit [全零] 和 dhome.walk [0 如果否 / 1 如果是,这是一次回家的旅行])以获得仅对步行有效的变量模式,即使它现在被定性为替代特定变量。然后

        ml.data <- mlogit(choice ~ t + cost + dhome, mode, reflevel = "transit")
    

    这是一种技巧,但它似乎有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多