Змінні і X 2 не є лінійно незалежними. Таким чином , навіть якщо не існує квадратичний ефект, додавання X 2 моделі буде змінювати оціночну ефект X .XХ2Х2Х
Давайте розглянемо дуже просте моделювання.
> x <- runif(1e3)
> y <- x + rnorm(length(x))
> summary(lm(y~x))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.03486 0.06233 -0.559 0.576
x 1.05843 0.10755 9.841 <2e-16 ***
Тепер з квадратичним терміном в моделі підходить.
> summary(lm(y~x+I(x^2)))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.03275 0.09528 0.344 0.731
x 0.65742 0.44068 1.492 0.136
I(x^2) 0.39914 0.42537 0.938 0.348
Звичайно, тест омнібусів все ще важливий, але я думаю, що результат, який ми шукаємо, не цей. Рішення полягає у використанні ортогональних многочленів.
> summary(lm(y~poly(x,2)))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.49744 0.03098 16.059 <2e-16 ***
poly(x, 2)1 9.63943 0.97954 9.841 <2e-16 ***
poly(x, 2)2 0.91916 0.97954 0.938 0.348
Зауважимо, що коефіцієнти x
в першій моделі та poly(x,2)1
в другій моделі не рівні, і навіть перехоплення різні. Це тому, що poly
доставляє ортонормальні вектори, які також є ортогональними вектору rep(1, length(x))
. Так poly(x,2)1
не є, x
а швидше (x -mean(x))/sqrt(sum((x-mean(x))**2))
...
Важливим моментом є те, що тести Вальда в цій останній моделі є незалежними. Ви можете використовувати ортогональні поліноми, щоб вирішити, до якого ступеня ви хочете піти, просто подивившись на тест Уолда: тут ви вирішили зберегти але не X 2 . Звичайно, ви знайдете ту саму модель, порівнюючи дві перші вмонтовані моделі, але це простіший спосіб - якщо ви вважаєте, що піднімаєтесь на більш високі ступені, це дійсно набагато простіше.ХХ2
Після того, як ви вирішили, які умови зберігати, можливо, ви захочете повернутися до необроблених поліномів і X 2 для інтерпретаційності або прогнозування.ХХ2