Первый интерфейс формулы не позволит этой формуле означать то, что, по вашему мнению, должно означать. Вам нужно сделать это:
Sepal.Length ~ Sepal.Width + I(Sepal.Width)^2
Но даже это не будет правильным методом для статистического вывода. Скорее вы бы сравнили эти две модели:
mod1 <- lm( Sepal.Length ~ Sepal.Width, data=iris)
mod2 <- lm( Sepal.Length ~ poly( Sepal.Width, 2) , data=iris)
anova( mod1, mod2)
Функция poly
создает ортогональные полиномы, и логическая статистика может правильно учитывать корреляции между X и X ^ 2. Результаты:
Analysis of Variance Table
Model 1: Sepal.Length ~ Sepal.Width
Model 2: Sepal.Length ~ poly(Sepal.Width, 2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 148 100.756
2 147 98.752 1 2.0044 2.9838 0.0862 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
... показывает р-значение 0,086, но многие журналы считают это неинтересным. Помимо проблемы с кодированием, это может быть лучше решено на CrossValidated.com, на который я буду ссылаться на любые последующие вопросы.