Відновлення необроблених коефіцієнтів та дисперсій від ортогональної поліноміальної регресії


14

Здається, що якщо у мене є регресійна модель, така як я можу або помістити необроблений многочлен і отримати недостовірні результати, або встановити ортогональний поліном і отримати коефіцієнти які не мають прямої фізичної інтерпретації (наприклад, я не можу їх використовувати для пошуку розташування екстремумів у вихідному масштабі). Здається, я маю змогу мати найкраще з обох світів і бути здатним перетворити пристосовані ортогональні коефіцієнти та їх відхилення назад до необмеженої шкали. Я пройшов аспірантуру з прикладної лінійної регресії (використовуючи Кутнер, 5ed) і переглянув розділ поліноміальної регресії в Дрейпер (3ed, згаданий Кутнером), але не знайшов дискусії про те, як це зробити. Текст довідки дляyiβ0+β1xi+β2xi2+β3xi3poly()функція в R не виконує. Я також не знайшов нічого в своєму веб-пошуку, зокрема тут. Реконструює необроблені коефіцієнти (і отримує їх відхилення) від коефіцієнтів, пристосованих до ортогонального многочлена ...

  1. зробити це неможливо, і я витрачаю свій час.
  2. можливо можливо, але невідомо як у загальному випадку.
  3. можливо, але не обговорюється, тому що "хто б хотів?"
  4. можливо, але не обговорюється, оскільки "це очевидно".

Якщо відповідь 3 або 4, я буду дуже вдячний, якщо хтось матиме терпіння пояснити, як це зробити, або вказати на джерело, яке це робить. Якщо це 1 або 2, мені все одно цікаво знати, що таке перешкода. Дуже дякую, що прочитали це, і заздалегідь прошу вибачення, якщо я не помічаю щось очевидне.


1
Я не розумію ваших пунктів. x, x і x не є ортогональними. Отже, вони співвідносяться і параметри регресії можуть бути нестабільними, але це автоматично не так, що вони є ненадійними. Перетворення в ортогноальні поліноми може бути більш надійним. Але що робить коефіцієнт початкових потужностей x більш інтерпретаційним, ніж коефіцієнти ортогональних многочленів? Якщо x є єдиною змінною, як у моделі y = a + bx, тоді ∆y = yi-yi-1 = b∆x і b інтерпретується як зміна y на одиницю зміни в x. Але при залученні повноважень таке трактування втрачається. 323
Майкл Р. Черник

Я використовував модель із просто x як змінну для простоти, але насправді я порівнюю криві між групами лікування. Отже, залежно від того, які терміни значні та їх величини, я можу їх інтерпретувати - наприклад, загальний зсув вгору / вниз чи більший / менший початковий нахил. Крім того, як говориться в моєму питанні, природним порівнянням між кривими є розташування максимумів / мінімумів, що простіше інтерпретувати, якщо це в оригінальній шкалі. Отже, ваш голос - за вибір 3, я вважаю?
f1r3br4nd

Ні, я ще не зрозумів, можливо це ще чи ні. Я просто зрозумів, чому ти хочеш це робити.
Майкл Р. Черник

4
Ну, зауважимо, що модель, сумісна з ортогональними многочленами, матиме такий самий пристосування (тобто той самий , ті ж пристосовані значення тощо), як і модель, що відповідає сировинним многочленним умовам. Отже, якщо ви хочете пов'язати це з початковими даними, ви можете подивитися на коефіцієнти необроблених термінів, але за допомогою ортогональних многочленів робити висновки для окремих термінів таким чином, щоб "пояснювати" залежність між ними . R2
Макрос

1
Як виявляється, кубічні сплайни та B-сплайни є самим класом і є кращими з двох світів.
Карл

Відповіді:


6

Так, це можливо.

Нехай - непостійні частини ортогональних многочленів, обчислені з x i . (Кожен - вектор стовпця.) Регресування цих даних проти x i повинно надати ідеальну форму. Ви можете виконувати це за допомогою програмного забезпечення навіть тоді, коли воно не документує його процедури для обчислення ортогональних многочленів. Регресія z j дає коефіцієнти γz1,z2,z3xixizj для якихγij

zij=γj0+xiγj1+xi2γj2+xi3γj3.

Результатом є матриця Γ, яка при правильному множенні перетворює проектну матрицю X = ( 1 ; x ; x 2 ; x 3 ) у Z = ( 1 ; z 1 ; z 2 ; z 3 )4×4ΓX=(1;x;x2;x3)

(1)Z=(1;z1;z2;z3)=XΓ.

Після підгонки моделі

E(Y)=Zβ

β^(1)

Y^=Zβ^=(XΓ)β^=X(Γβ^).

Γβ^x

Наступні R код ілюструє ці процедури та тестує їх на синтетичних даних.

n <- 10        # Number of observations
d <- 3         # Degree
#
# Synthesize a regressor, its powers, and orthogonal polynomials thereof.
#
x <- rnorm(n)
x.p <- outer(x, 0:d, `^`); colnames(x.p) <- c("Intercept", paste0("x.", 1:d))
z <- poly(x, d)
#
# Compute the orthogonal polynomials in terms of the powers via OLS.
#
xform <- lm(cbind(1, z) ~ x.p-1)
gamma <- coef(xform)
#
# Verify the transformation: all components should be tiny, certainly
# infinitesimal compared to 1.
#
if (!all.equal(as.vector(1 + crossprod(x.p %*% gamma - cbind(1,z)) - 1), 
    rep(0, (d+1)^2)))
  warning("Transformation is inaccurate.")
#
# Fit the model with orthogonal polynomials.
#
y <- x + rnorm(n)
fit <- lm(y ~ z)
#summary(fit)
#
# As a check, fit the model with raw powers.
#
fit.p <- lm(y ~ .-1, data.frame(x.p))
#summary(fit.p)
#
# Compare the results.
#
(rbind(Computed=as.vector(gamma %*% coef(fit)), Fit=coef(fit.p)))

if (!all.equal(as.vector(gamma %*% coef(fit)), as.vector(coef(fit.p))))
  warning("Results were not the same.")

Γ

110161

Через два роки ... @whuber, чи можна розширити це також на 95% КІ коефіцієнтів?
user2602640

@ user2602640 Так. Вам потрібно витягти дисперсійно-коваріантну матрицю коефіцієнтів (використовувати vcovв R) для перетворення дисперсій, обчислених в одній основі, у відхилення в новій основі, а потім обчислити КІ вручну звичайним способом.
качан

@whuber Я стежив за вашим коментарем про півдорозі, а потім втратив вас цілком ... будь-який шанс ви змилуєтеся над математичним завданням біолога і напишіть його в коді?
user2602640
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.