15

了解当我将模型中的类别变量传递给 astatsmodels fit时,将自动为类别生成虚拟变量。例如,如果我有一个值为“IndianOcean”、“Thailand”、“China”和“Mars”的变量“Location”,我将在表单模型中获得变量

Location[T.Thailand]

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

4

3 回答 3

29

您可以reference使用类似的语法将 arg 传递给处理对比

"y ~ C(Location, Treatment(reference='China'))"

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

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

于 2014-03-16T16:53:36.087 回答
2

好的,也许有人会发现这个有用。我需要为因变量设置一个新的基线类别,我不知道该怎么做。我搜索并没有找到任何东西,所以我只是为其他类别添加了一个“_”。如果您有 3 个类别 A、B、C,并且您希望基线为 C,您只需将标签从 A 和 B 更改为 _A 和 _B。有用。我似乎基线类别是由 sorted()

也许有人知道正确的方法,这不是很植物,ja。

于 2021-04-28T19:33:25.870 回答
1

如果你使用单引号来包裹你的字符串,那么引用的参数需要用双引号包裹起来。很容易犯错误。我在两者上都使用了单引号。

例如:

'y ~ C(Location, Treatment(reference="China"))'

是正确的。

'y ~ C(Location, Treatment(reference='China'))'

是不正确的。

于 2020-11-30T06:20:59.140 回答