问题描述
R 中的 I() 函数用于在线性回归中创建新的预测器,例如 X^2:
lm.fit2=lm(medv∼lstat +I(lstat ^2))
此处给出了很好的解释 (What does the capital letter "I" in R linear regression formula mean?)。
我正在尝试使用相同的公式在 Python 中进行线性回归,但似乎找不到等效的公式。此代码适用于单个变量
fit3 = smf.ols('medv~lstat',data=data).fit()
print(fit3.summary())
但是如果我尝试使用下面的代码片段,它显然无法正常工作。
fit3 = smf.ols('medv~lstat + lstat**2',data=data).fit()
print(fit3.summary())
尝试 ^ 运算符也没有意义,因为 Python 将此符号解释为按位异或。有谁知道 Python 中是否有与 I() 相同的函数的等价物?
解决方法
我找到了答案,好像很简单:
f = 'medv~lstat + I(lstat**2)'
fit3 = smf.ols(f,data=data).fit()
print(fit3.summary())