Ripristino di coefficienti grezzi e varianze dalla regressione polinomiale ortogonale


14

Sembra che se ho un modello di regressione come posso adattarmi a un polinomio grezzo e ottenere risultati inaffidabili o ottenere un polinomio ortogonale e ottenere coefficienti che non hanno un'interpretazione fisica diretta (ad es. non posso usarli per trovare le posizioni degli estremi sulla scala originale). Sembra che dovrei essere in grado di avere il meglio dei due mondi ed essere in grado di trasformare i coefficienti ortogonali adattati e le loro varianze alla scala grezza. Ho seguito un corso di laurea in regressione lineare applicata (usando Kutner, 5ed) e ho esaminato il capitolo sulla regressione polinomiale in Draper (3ed, a cui fa riferimento Kutner) ma non ho trovato discussioni su come farlo. Il testo di aiuto peryiβ0+β1xi+β2xi2+β3xi3poly()la funzione in R no. Né ho trovato nulla nella mia ricerca sul web, anche qui. Sta ricostruendo i coefficienti grezzi (e ottenendo le loro varianze) dai coefficienti montati su un polinomio ortogonale ...

  1. impossibile da fare e sto sprecando il mio tempo.
  2. forse possibile ma non si sa come nel caso generale.
  3. possibile ma non discusso perché "chi vorrebbe?"
  4. possibile ma non discusso perché "è ovvio".

Se la risposta è 3 o 4, sarei molto grato se qualcuno avesse la pazienza di spiegare come farlo o indicare una fonte che lo fa. Se è 1 o 2, sarei comunque curioso di sapere quale sia l'ostacolo. Grazie mille per aver letto questo, e mi scuso in anticipo se sto trascurando qualcosa di ovvio.


1
Non capisco i tuoi punti. x, x 2 e x 3 non sono ortogonali. Quindi sono correlati e i parametri di regressione potrebbero essere instabili, ma non è automaticamente il caso che siano inaffidabili. La conversione in polinomi ortogonali può essere più affidabile. Ma cosa rende il coefficiente dei poteri originali di x più interpretabile dei coefficienti dei polinomi ortogonali? Se x è l'unica variabile come nel modello y = a + bx, allora ∆y = yi-yi-1 = b∆x e b è interpretabile come il cambiamento in y per unità cambia in x. Ma con i poteri coinvolti tale interpretazione è persa. 23
Michael R. Chernick,

Ho usato un modello con solo x come variabile per semplicità, ma in realtà sto confrontando le curve tra i gruppi di trattamento. Quindi, a seconda di quali termini sono significativi e della loro grandezza, posso interpretarli, ad esempio uno spostamento complessivo verso l'alto / verso il basso o una pendenza iniziale maggiore / minore. Inoltre, come dice la mia domanda, un confronto naturale da effettuare tra le curve è la posizione dei massimi / minimi, che è più facile da interpretare se si trova sulla scala originale. Quindi, il tuo voto è per la scelta 3, lo prendo?
f1r3br4nd

No, non ho ancora capito se sia ancora possibile. Ho appena capito perché vuoi farlo.
Michael R. Chernick l'

4
Bene, si noti che il modello adattato ai polinomi ortogonali avrà lo stesso adattamento esatto (cioè lo stesso , stessi valori adattati, ecc.) Del modello adattato con i termini polinomiali grezzi. Quindi, se stai cercando di mettere in relazione questo con i dati originali, puoi guardare i coefficienti per i termini grezzi ma usare i polinomi ortogonali per fare inferenza per i singoli termini in un modo che "spiega" la dipendenza tra loro . R2
Macro,

1
A quanto pare, le spline cubiche e le spline B sono in una classe tutta per sé e sono il migliore dei due mondi.
Carl,

Risposte:


6

Si è possibile.

Sia le parti non costanti dei polinomi ortogonali calcolati dalla x i . (Ognuno è un vettore di colonna.) La repressione di questi contro la x i deve dare una misura perfetta. È possibile eseguire ciò con il software anche quando non documenta le sue procedure per il calcolo dei polinomi ortogonali. La regressione di z j produce coefficienti γ i j per i qualiz1,z2,z3XioXiozjγioj

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

Il risultato è una matrice Γ che, alla moltiplicazione a destra, converte la matrice di disegno X = ( 1 ; x ; x 2 ; x 3 ) in Z = ( 1 ; z 1 ; z 2 ; z 3 ) = X Γ .4×4ΓX=(1;x;x2;x3)

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

Dopo aver montato il modello

E(Y)=Zβ

e ottenendo coefficienti stimati beta (a quattro elementi vettore colonna), si può sostituire ( 1 ) per ottenereβ^(1)

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

Pertanto è il vettore coefficiente stimato per il modello in termini di originale (crudo, non-orthogonalized) poteri di x .Γβ^x

Il Rcodice seguente illustra queste procedure e le verifica con dati sintetici.

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

Due anni dopo ... @whuber, è possibile estenderlo anche al 95% di CI dei coefficienti?
user2602640

@ user2602640 Sì. È necessario estrarre la matrice varianza-covarianza dei coefficienti (utilizzare vcovin R) per convertire le varianze calcolate in una base in varianze nella nuova base, quindi calcolare manualmente gli elementi della configurazione come di consueto.
whuber

@whuber Ho seguito il tuo commento a metà strada, poi ti ho perso del tutto ... hai qualche possibilità che tu abbia pietà di un biologo con difficoltà matematiche e lo scriva in codice?
user2602640,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.