使用"statsmodels"指定要将哪个类别视为基础

oro*_*ome 6 python linear-regression statsmodels categorical-data

理解当我在传递给模型的模型中有一个类别变量时,statsmodels fit将自动为类别生成变量.例如,如果我有一个变量'Location',其值为'IndianOcean','Thailand','China'和'Mars',我将在我的模型中获取变量

Location[T.Thailand]
Run Code Online (Sandbox Code Playgroud)

其中一个值未表示.默认情况下,排除变量似乎是最不常见的变量.有没有办法指定 - 理想情况下在模型规范中 - 哪个值被视为"基值"并被排除?

jse*_*old 14

你可以将一个referencearg 传递给治疗对比.

http://patsy.readthedocs.org/en/latest/API-reference.html#patsy.Treatment

如果您对命名约定有更好的建议,请向patsy提出问题.

  • 明确地说,语法是`"y~C(Location,Treatment(reference ='China'))"`. (8认同)
  • `"y ~ C(Location, Treatment('China'))"` 也有效。 (3认同)
  • @jseabold,我收到如下错误 PatsyError:评估因素时出错:TypeError:“Series”对象不可调用。在执行上述两种方法的同时。你有什么主意吗 ? (3认同)
  • @PiotrMigdal 感谢您的澄清。我希望原来的答案实际上包含代码。 (2认同)