使用patsy
时,我注意到它在其他情况下有时会命名虚拟变量,有时也可能T
不命名。T
今天我意识到,T
当回归方程中存在常数项时,它是附加的,没有T
常数项就不会。例如,比较以下代码中的z[T.1]
, z[0]
, z[1]
, 。OUTPUT
import pandas as pd
import patsy
data = {'z': ['1', '0', '0'],
'y': [150, 200, 50],
'x': [200, 210, 90]}
df = pd.DataFrame(data)
# with constant -----------------------
form_const = 'y ~ x + z'
y_const, X_const = patsy.dmatrices(form_const, df, return_type='dataframe')
print(X_const.columns.tolist())
# ['Intercept', 'z[T.1]', 'x'] <- OUTPUT
# withOUT constant --------------------
form_no_const = 'y ~ -1 + x + z'
y_no_const, X_no_const = patsy.dmatrices(form_no_const, df, return_type='dataframe')
print(X_no_const.columns.tolist())
# ['z[0]', 'z[1]', 'x'] <- OUTPUT
问题
的作用是T
什么?它只是表明存在常数项吗?如果是这样,考虑到我们总是可以看到常数项的存在/不存在,这不是多余的吗?还有其他角色吗?
提前感谢您的洞察力。