Восстановление необработанных коэффициентов и дисперсий из ортогональной полиномиальной регрессии


14

Кажется, что если у меня есть регрессионная модель, такая как я могу либо подогнать необработанный полином и получить ненадежные результаты, либо подогнать ортогональный полином и получить коэффициенты которые не имеют прямой физической интерпретации (например, я не могу использовать их, чтобы найти места экстремумов в исходном масштабе). Похоже, я должен быть в состоянии иметь лучшее из обоих миров и быть в состоянии преобразовать подогнанные ортогональные коэффициенты и их дисперсии обратно в необработанный масштаб. Я прошел аспирантуру по прикладной линейной регрессии (с использованием Kutner, 5ed) и просмотрел главу о полиномиальной регрессии в Draper (3ed, на которую ссылается Kutner), но не нашел обсуждения того, как это сделать. Текст справки дляyiβ0+β1xi+β2xi2+β3xi3poly()Функция в R не имеет. Я также не нашел ничего в моем поиске в сети, в том числе и здесь. Реконструирует необработанные коэффициенты (и получает их дисперсии) из коэффициентов, подогнанных к ортогональному многочлену ...

  1. невозможно сделать, и я трачу свое время.
  2. Возможно, но не известно, как в общем случае.
  3. возможно, но не обсуждается, потому что "кто бы хотел?"
  4. возможно, но не обсуждается, потому что "это очевидно".

Если ответ 3 или 4, я был бы очень признателен, если бы у кого-то хватило терпения объяснить, как это сделать, или указать на источник, который это делает. Если это 1 или 2, мне все равно было бы интересно узнать, что является препятствием. Большое спасибо за чтение, и я заранее извиняюсь, если пропускаю что-то очевидное.


1
Я не понимаю твои мысли. х, х и х не являются ортогональными. Следовательно, они коррелированы, и параметры регрессии могут быть нестабильными, но это не тот случай, когда они ненадежны. Преобразование в ортогональные полиномы может быть более надежным. Но что делает коэффициент исходных степеней x более понятным, чем коэффициенты ортогональных многочленов? Если x является единственной переменной, как в модели y = a + bx, то ∆y = yi-yi-1 = b∆x и b интерпретируется как изменение y на единицу, изменение x. Но при наличии полномочий такая интерпретация теряется. 23
Майкл Р. Черник

Для простоты я использовал модель только с x в качестве переменной, но в действительности я сравниваю кривые между группами лечения. Таким образом, в зависимости от того, какие термины являются значительными и их величина, я могу интерпретировать их - например, общее смещение вверх / вниз или больший / меньший начальный наклон. Кроме того, как говорит мой вопрос, естественным сравнением между кривыми является расположение максимумов / минимумов, которое легче интерпретировать, если оно находится в исходном масштабе. Итак, ваш голос за выбор 3, я так понимаю?
f1r3br4nd

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

4
Хорошо, обратите внимание, что модель, соответствующая ортогональным полиномам, будет иметь точно такое же соответствие (т. Е. же значения R 2 , те же значения и т. Д.), Что и модель, соответствующая необработанным полиномам. Итак, если вы хотите связать это обратно с исходными данными, вы можете посмотреть на коэффициенты для необработанных терминов, но использовать ортогональные полиномы, чтобы сделать вывод для отдельных терминов таким образом, чтобы «учитывать» зависимость между ними , р2
Макро

1
Как оказалось, кубические сплайны и B-сплайны находятся в классе сами по себе и являются лучшими из двух миров.
Карл

Ответы:


6

Да, это возможно.

Пусть - непостоянные части ортогональных многочленов, вычисленных по x i . (Каждый из них является вектором столбца.) Сравнивая их с x, я должен получить идеальное соответствие. Вы можете выполнить это с помощью программного обеспечения, даже если оно не документирует свои процедуры для вычисления ортогональных полиномов. Регрессия z j дает коэффициенты γ i j, для которыхZ1,Z2,Z3ИксяИксяZJγяJ

ZяJзнак равноγJ0+ИксяγJ1+Икся2γJ2+Икся3γJ3,

В результате получается матрица Γ, которая при умножении справа преобразует проектную матрицу X = ( 1 ; x ; x 2 ; x 3 ) в Z = ( 1 ; z 1 ; z 2 ; z 3 ) = X Γ ,4×4ΓИксзнак равно(1;Икс;Икс2;Икс3)

(1)Zзнак равно(1;Z1;Z2;Z3)знак равноИксΓ,

После примерки модели

Е(Y)знак равноZβ

и получение оценки коэффициентов бета (вектор - столбец из четырех элементов), вы можете заменить ( 1 ) , чтобы получитьβ^(1)

Y^=Zβ^=(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.")

Γ

110-161

Два года спустя ... @whuber, возможно ли расширить это до 95% ДИ коэффициентов?
user2602640

@ user2602640 Да. Вам необходимо извлечь матрицу дисперсии-ковариации коэффициентов (используйте vcovin R), чтобы преобразовать дисперсии, вычисленные в одном базисе, в дисперсии в новом базисе, а затем вручную вычислить КИ обычным способом.
whuber

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