理解当我在传递给statsmodels
fit
的模型中有一个类别变量时,将自动为类别生成虚拟变量。例如,如果我有一个变量'Location',其值为'IndianOcean','Thailand','China'和'Mars',我将在我的模型中获得变量
Location[T.Thailand]
其中一个值未表示。默认情况下,排除变量似乎是最不常见的变量。有没有办法指定 - 理想情况下在模型规范中 - 哪个值被视为“基值”并被排除?
答案 0 :(得分:12)
您可以将reference
arg传递给治疗对比。
http://patsy.readthedocs.org/en/latest/API-reference.html#patsy.Treatment
如果您对命名约定有更好的建议,请向patsy提出问题。
答案 1 :(得分:1)
好的,也许有人会发现这个有用。我需要为因变量设置一个新的基线类别,我不知道该怎么做。我搜索并没有发现任何东西,所以我只是为其他类别添加了一个“_”。如果您有 3 个类别 A、B、C,并且您希望基线为 C,则只需将标签从 A 和 B 更改为 _A 和 _B。有用。我似乎基线类别是由 sorted()
定义的也许有人知道这样做的正确方法,这不是很植物性,ja。
答案 2 :(得分:0)
如果使用单引号将字符串引起来,则引用的参数需要用双引号引起来。很容易犯的错误。我两个都用单引号。
例如:
'y ~ C(Location, Treatment(reference="China"))'
是正确的。
'y ~ C(Location, Treatment(reference='China'))'
不正确。