Recuperando coeficientes brutos e variações da regressão polinomial ortogonal

14

Parece que se eu tiver um modelo de regressão como yiβ0+β1xi+β2xi2+β3xi3Posso ajustar um polinômio bruto e obter resultados não confiáveis ​​ou ajustar um polinômio ortogonal e obter coeficientes que não têm uma interpretação física direta (por exemplo, não posso usá-los para encontrar a localização dos extremos na escala original). Parece que eu deveria ter o melhor dos dois mundos e transformar os coeficientes ortogonais ajustados e suas variações de volta à escala bruta. Fiz um curso de graduação em regressão linear aplicada (usando Kutner, 5ed) e examinei o capítulo sobre regressão polinomial em Draper (3ed, referido por Kutner), mas não encontrei nenhuma discussão sobre como fazer isso. O texto de ajuda para opoly()função em R não. Também não encontrei nada na minha pesquisa na web, inclusive aqui. Está reconstruindo coeficientes brutos (e obtendo suas variações) a partir de coeficientes ajustados a um polinômio ortogonal ...

  1. impossível fazer e estou perdendo meu tempo.
  2. talvez possível, mas não se sabe como, no caso geral.
  3. possível, mas não discutido porque "quem iria querer?"
  4. possível, mas não discutido porque "é óbvio".

Se a resposta for 3 ou 4, ficaria muito grato se alguém tivesse paciência para explicar como fazer isso ou apontar para uma fonte que o faz. Se for 1 ou 2, eu ainda ficaria curioso para saber qual é o obstáculo. Muito obrigado por ler isso, e peço desculpas antecipadamente se estou ignorando algo óbvio.

f1r3br4nd
fonte
1
Eu não entendo seus pontos. x, x 2 e x 3 não são ortogonais. Portanto, eles estão correlacionados e os parâmetros de regressão podem ser instáveis, mas não é automaticamente o caso deles não serem confiáveis. A conversão para polinômios ortogonais pode ser mais confiável. Mas o que torna o coeficiente das potências originais de x mais interpretável do que os coeficientes dos polinômios ortogonais? Se x é a única variável como no modelo y = a + bx, ∆y = yi-yi-1 = b∆x eb é interpretável como a mudança em y por unidade em x. Mas com os poderes envolvidos, tal interpretação se perde. 23
22912 Michael Michael Chernick
Eu usei um modelo com apenas x como variável para simplificar, mas, na realidade, estou comparando curvas entre os grupos de tratamento. Portanto, dependendo de quais termos são significativos e de sua magnitude, eu posso interpretá-los - por exemplo, uma mudança geral ascendente / descendente ou uma inclinação inicial maior / menor. Além disso, como minha pergunta diz, uma comparação natural a ser feita entre curvas é a localização dos máximos / mínimos, que é mais fácil de interpretar se estiver na escala original. Então, seu voto é para a escolha 3, entendi?
F1r3br4nd
Não, eu ainda não descobri se é possível ou não. Acabei de entender por que você quer fazer isso.
Michael R. Chernick
4
Bem, nota que o modelo de ajuste com polinómios ortogonais terá o mesmo ajuste exacto (ou seja, o mesmo , os mesmos valores ajustados, etc), como o modelo de ajuste com os termos polinomiais matérias. Portanto, se você deseja relacionar isso de volta aos dados originais, pode observar os coeficientes dos termos brutos, mas usar os polinômios ortogonais para inferir os termos individuais de uma maneira que "explique" a dependência entre eles . R2
Macro
1
Como se vê, splines cúbicos e B-splines estão em uma classe por si só e são os melhores de dois mundos.
Carl

Respostas:

6

Sim é possivel.

Seja as partes não constantes dos polinômios ortogonais calculados a partir de x i . (Cada um é um vetor de coluna.) Regressando-os contra x i, deve-se obter um ajuste perfeito. Você pode fazer isso com o software, mesmo quando ele não documenta seus procedimentos para calcular polinômios ortogonais. A regressão de z j produz coeficientes γ i j para os quaisz1,z2,z3xEuxEuzjγEuj

zEuj=γj0 0+xEuγj1+xEu2γj2+xEu3γj3.

O resultado é um matriz Γ que, através da multiplicação direita, converte a matriz de design X = ( 1 ; x ; x 2 ; x 3 ) para Z = ( 1 ; z 1 ; z 2 ; z 3 ) = X Γ .4×4ΓX=(1;x;x2;x3)

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

Depois de montar o modelo

E(Y)=Zβ

e obtenção de coeficientes estimados P (um vector de coluna de quatro elementos), poderá substituir ( 1 ) para se obterβ^(1)

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

Portanto é o vector de coeficiente estimado para o modelo em termos do original (em bruto, un-ortogonalizado) potências de x .Γβ^x

O Rcódigo a seguir ilustra esses procedimentos e os testa com dados sintéticos.

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.")
whuber
fonte
Γ
110-161
Dois anos depois ... @whuber, é possível expandir isso para os ICs de 95% dos coeficientes também?
user2602640
@ user2602640 Sim. Você precisa extrair a matriz de variância-covariância dos coeficientes (use vcovin R) para converter as variações computadas em uma base em variações na nova base e depois calcular os ICs manualmente da maneira usual.
whuber
@whuber Eu segui seu comentário no meio do caminho e perdi você completamente ... qualquer chance de ter pena de um biólogo com problemas matemáticos e escrevê-lo em código?
user2602640