Ortogonal polinom regresyonundan ham katsayıları ve varyansları kurtarma


14

Görünüşe göre y iβ 0 + β 1 x i + β 2 x 2 i + β 3 x 3 i gibi bir regresyon modelim varsayiβ0+β1xi+β2xi2+β3xi3Ham bir polinomu sığdırabilirim ve güvenilir olmayan sonuçlar elde edebilirim veya dik bir polinomu sığdırabilirim ve doğrudan fiziksel bir yorumu olmayan katsayıları alabilirim (örneğin, ekstremin orijinal ölçekte yerlerini bulmak için kullanamam). Her iki dünyanın en iyisini elde edebilmeli ve yerleştirilmiş dikey katsayıları ve varyanslarını ham ölçeğe dönüştürebilmeliyim gibi görünüyor. Uygulamalı doğrusal regresyon konusunda yüksek lisans dersi aldım (Kutner, 5ed kullanarak) ve Draper'daki (3ed, Kutner tarafından atıfta bulunulan) polinom regresyon bölümüne baktım, ancak bunun nasıl yapılacağı hakkında bir tartışma bulamadım. İçin yardım metnipoly()R'deki fonksiyon bunu yapmaz. Web aramamda, burada da dahil olmak üzere hiçbir şey bulamadım. Ortogonal bir polinoma takılan katsayılardan ham katsayıları yeniden yapılandırıyor (ve varyanslarını elde ediyor) ...

  1. yapmak imkansız ve zamanımı boşa harcıyorum.
  2. belki mümkündür ama genel durumda nasıl bilinmez.
  3. mümkün ama tartışılmadı çünkü "kim ister ki?"
  4. mümkün ama tartışılmadı çünkü "açık".

Cevap 3 veya 4 ise, birisinin bunu nasıl yapacağını açıklamak veya bunu yapan bir kaynağa işaret etmek için sabrı olursa çok minnettar olurum. 1 veya 2 ise, yine de engelin ne olduğunu merak ediyorum. Bunu okuduğunuz için çok teşekkür ederim. Açık bir şeye bakmazsam şimdiden özür dilerim.


1
Ne demek istediğini anlamıyorum. x, x ve x dikey değildir. Bu nedenle korelasyonludurlar ve regresyon parametreleri kararsız olabilir, ancak güvenilir olmadıkları otomatik olarak durum böyle değildir. Ortognonal polinomlara dönüşüm daha güvenilir olabilir. Fakat x'in orijinal güçlerinin katsayısını, ortogonal polinomların katsayılarından daha yorumlanabilir yapan nedir? X, y = a + bx modelindeki tek değişkense, ∆y = yi-yi-1 = b∆x ve b, birim başına y'deki değişiklik x olarak değişir. Fakat güçler söz konusu olduğunda bu yorum kaybolur. 323
Michael R. Chernick

Basitlik için değişken olarak sadece x olan bir model kullandım, ancak gerçekte tedavi grupları arasındaki eğrileri karşılaştırıyorum. Bu yüzden, bu bağlı şartlar anlamlıdır ve bunların büyüklüğü, I olabilir , örneğin, bir yukarı / aşağı doğru genel bir kayma ya da daha büyük bir / daha az, başlangıçtaki eğimi them-- yorumlar. Ayrıca, sorumun söylediği gibi, eğriler arasında yapılacak doğal bir karşılaştırma, maxima / minima'nın yeri olup, orijinal ölçekte olup olmadığını yorumlamak daha kolaydır. Öyleyse, oyunuz 3. seçim içindir, kabul ediyorum?
f1r3br4nd

Hayır Henüz mümkün olup olmadığını anlayamadım. Neden bunu yapmak istediğini anladım.
Michael R. Chernick

4
Dik polinomlara uyan modelin, ham polinom terimlerine uyan modelle tam olarak aynı (yani aynı , aynı yerleştirilmiş değerler, vb.) Yani, bunu orijinal verilerle ilişkilendirmek istiyorsanız, ham terimlerin katsayılarına bakabilirsiniz, ancak aralarındaki bağımlılığı "açıklayacak" şekilde bireysel terimler için çıkarım yapmak için dikey polinomları kullanabilirsiniz. . R2
Makro

1
Görünen o ki, kübik spline'lar ve B-spline'lar kendi başlarına bir sınıftalar ve iki dünyanın en iyileri.
Carl

Yanıtlar:


6

Evet mümkün.

z1,z2,z3xixizjγij

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

4×4ΓX=(1;x;x2;x3)

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

Modeli taktıktan sonra

E(Y)=Zβ

β^(1)

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

Γβ^x

Aşağıdaki Rkod bu prosedürleri gösterir ve sentetik verilerle test eder.

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

İki yıl sonra ... @, bunu katsayıların% 95 CI'lerine de genişletmek mümkün mü?
user2602640

@ user2602640 Evet. Sen (kullanım katsayılarının varyans-kovaryans matrisi ayıklamak gerekir vcovyılında Ryeni bazda varyansları ile bir bazda hesaplanan varyanslannın dönüştürmek için) ve sonra normal şekilde elle CI'ler hesaplamak.
whuber

@whuber yorumunuzu yarıya kadar takip ettim, sonra sizi tamamen kaybettim ... matematiksel olarak meydan okuyan bir biyoloğa acıma ve kodla yazma şansınız var mı?
user2602640
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.