Эквивалент 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())