0

R 中的 I() 函数用于在线性回归中创建新的预测变量,例如 X^2:

lm.fit2=lm(medv∼lstat +I(lstat ^2))

这里给出了一个很好的解释(R线性回归公式中的大写字母“I”是什么意思?)。

我正在尝试使用相同的公式在 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() 的等价物?

4

1 回答 1

1

我找到了答案,似乎很简单:

f = 'medv~lstat + I(lstat**2)'
fit3 = smf.ols(f, data=data).fit()
print(fit3.summary())
于 2021-03-23T04:34:39.623 回答