Эквивалент I() (используется в R), что эквивалентно Python?

Функция I() в R используется для создания нового предиктора в линейной регрессии, например, X ^ 2:

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

Здесь дается хорошее объяснение (что означает заглавная буква «I» в формуле линейной регрессии R?).

Я пытаюсь выполнить линейную регрессию в 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 интерпретирует этот символ как побитовый xor. Кто-нибудь знает, есть ли в Python эквивалент той же функции I()?

1 ответ

Я нашел ответ, вроде как:

      f = 'medv~lstat + I(lstat**2)'
fit3 = smf.ols(f, data=data).fit()
print(fit3.summary())
Другие вопросы по тегам