การคืนค่าสัมประสิทธิ์และความแปรปรวนจากการถดถอยพหุนามแบบฉากฉาก


14

ดูเหมือนว่าถ้าฉันมีโมเดลการถดถอยเช่นyiβ0+β1xi+β2xi2+β3xi3ฉันสามารถใส่พหุนามดิบและได้ผลลัพธ์ที่ไม่น่าเชื่อถือหรือใส่พหุนาม orthogonal และรับสัมประสิทธิ์ที่ไม่มีการตีความทางกายภาพโดยตรง (เช่นฉันไม่สามารถใช้พวกมันเพื่อค้นหาตำแหน่งของ extrema ในระดับเดิม) ดูเหมือนว่าฉันควรจะมีสิ่งที่ดีที่สุดของทั้งสองโลกและสามารถแปลงค่าสัมประสิทธิ์มุมฉากที่เหมาะสมและความแปรปรวนของพวกมันกลับคืนสู่ระดับดิบ ฉันใช้หลักสูตรบัณฑิตศึกษาในการประยุกต์การถดถอยเชิงเส้น (โดยใช้ Kutner, 5ed) และฉันดูผ่านบทการถดถอยพหุนามในเดรเปอร์ (3ed ที่อ้างถึงโดย Kutner) แต่ไม่พบการสนทนาเกี่ยวกับวิธีการทำเช่นนี้ ข้อความช่วยเหลือสำหรับpoly()ฟังก์ชั่นใน R ไม่ได้ ฉันไม่พบสิ่งใดในการค้นหาเว็บของฉันรวมถึงที่นี่ด้วย กำลังสร้างค่าสัมประสิทธิ์ดิบ (และรับค่าความแปรปรวน) จากค่าสัมประสิทธิ์ที่พอดีกับพหุนาม orthogonal ...

  1. เป็นไปไม่ได้ที่จะทำและฉันเสียเวลา
  2. อาจเป็นไปได้ แต่ไม่ทราบว่าในกรณีทั่วไป
  3. เป็นไปได้ แต่ไม่ได้พูดถึงเพราะ "ใครจะไป?"
  4. เป็นไปได้ แต่ไม่ได้กล่าวถึงเพราะ "ชัดเจน"

หากคำตอบคือ 3 หรือ 4 ฉันจะขอบคุณมากถ้ามีคนมีความอดทนที่จะอธิบายวิธีการทำเช่นนี้หรือชี้ไปที่แหล่งที่ทำเช่นนั้น ถ้าเป็น 1 หรือ 2 ฉันก็ยังอยากรู้ว่าอะไรคืออุปสรรค ขอบคุณมากสำหรับการอ่านและฉันต้องขออภัยล่วงหน้าหากฉันมองเห็นบางสิ่งบางอย่างที่ชัดเจน


1
ฉันไม่เข้าใจคะแนนของคุณ x, x 2และ x 3ไม่ใช่ orthogonal ดังนั้นพวกเขามีความสัมพันธ์และพารามิเตอร์การถดถอยอาจไม่เสถียร แต่มันก็ไม่ได้เป็นกรณีที่พวกเขาไม่น่าเชื่อถือโดยอัตโนมัติ การเปลี่ยนเป็นพหุนามแบบหลายมิติอาจมีความน่าเชื่อถือมากกว่า แต่ค่าสัมประสิทธิ์ของพลังดั้งเดิมของ x ใดที่ตีความได้มากกว่าค่าสัมประสิทธิ์ของพหุนามแบบมุมฉาก? ถ้า x เป็นเพียงตัวแปรเดียวในโมเดล y = a + bx ดังนั้น ∆y = yi-yi-1 = b∆x และ b สามารถตีความได้เนื่องจากการเปลี่ยนแปลงใน y ต่อหน่วยเปลี่ยนเป็น x แต่ด้วยพลังที่เกี่ยวข้องกับการตีความเช่นนี้จะหายไป 23
Michael R. Chernick

ฉันใช้โมเดลที่มีเพียง x เป็นตัวแปรเพื่อความเรียบง่าย แต่ในความเป็นจริงฉันเปรียบเทียบเส้นโค้งระหว่างกลุ่มการรักษา ดังนั้นขึ้นอยู่กับเงื่อนไขที่มีนัยสำคัญและขนาดของพวกเขาฉันสามารถตีความพวกเขา - ยกตัวอย่างเช่นการเปลี่ยนแปลงโดยรวมขึ้น / ลงหรือความลาดชันเริ่มต้นมากขึ้น / น้อยลง ตามที่คำถามของฉันบอกไว้การเปรียบเทียบโดยธรรมชาติที่ทำระหว่างเส้นโค้งคือตำแหน่งของ maxima / minima ซึ่งง่ายต่อการตีความหากอยู่ในระดับเดิม ดังนั้นการลงคะแนนของคุณสำหรับตัวเลือก 3 ฉันจะรับหรือไม่
f1r3br4nd

ไม่ฉันยังไม่ทราบว่าเป็นไปได้หรือไม่ ฉันเพิ่งเข้าใจว่าทำไมคุณถึงอยากทำ
Michael R. Chernick

4
โปรดทราบว่าแบบจำลองที่พอดีกับชื่อโพลิโนเมียลแบบฉากจะมีขนาดพอดี (เช่นเดียวกัน, ค่าติดตั้งเหมือนกัน, ฯลฯ ) เมื่อแบบจำลองนั้นพอดีกับคำพหุนามแบบดิบ ดังนั้นหากคุณต้องการเชื่อมโยงสิ่งนี้กลับไปยังข้อมูลดั้งเดิมคุณสามารถดูค่าสัมประสิทธิ์สำหรับคำศัพท์ดิบ แต่ใช้ชื่อพหุนามแบบมุมฉากเพื่ออนุมานคำแต่ละคำในวิธีที่ "บัญชีสำหรับ" การพึ่งพาระหว่างพวกเขา . R2
Macro

1
เมื่อมันปรากฎออกมาคือลูกบาศก์ splines และ B-splines อยู่ในชั้นเรียนทั้งหมดด้วยตัวเองและเป็นสิ่งที่ดีที่สุดของสองโลก
คาร์ล

คำตอบ:


6

ใช่มันเป็นไปได้

ให้เป็นชิ้นส่วนที่ไม่คงที่ของ polynomials มุมฉากคำนวณจากxฉัน (แต่ละอันคือเวกเตอร์คอลัมน์) การย้อนกลับกับx ฉันจะต้องลงตัวพอดี คุณสามารถดำเนินการได้ด้วยซอฟต์แวร์แม้ว่าจะไม่ได้จัดทำเอกสารขั้นตอนในการคำนวณชื่อพหุนามแบบมุมฉาก การถดถอยของz jให้ค่าสัมประสิทธิ์γ i 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 ) = X Γ .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

สองปีต่อมา ... @ เมื่อไรเป็นไปได้ไหมที่จะขยายไปยังค่าสัมประสิทธิ์ 95% ของค่าสัมประสิทธิ์เช่นกัน?
user2602640

@ user2602640 ใช่ คุณต้องแยกเมทริกซ์ความแปรปรวนร่วม - ความแปรปรวนร่วมของสัมประสิทธิ์ (ใช้vcovในR) เพื่อแปลงความแปรปรวนที่คำนวณในหนึ่งเกณฑ์ไปยังผลต่างในเกณฑ์ใหม่แล้วคำนวณ CIs ด้วยตนเองตามปกติ
whuber

@ เมื่อไรฉันได้แสดงความคิดเห็นของคุณเกี่ยวกับครึ่งทางแล้วทำให้คุณสูญเสียไปอย่างสิ้นเชิง ... มีโอกาสที่คุณจะสงสารนักชีววิทยาที่ท้าทายทางคณิตศาสตร์และเขียนมันออกมาเป็นรหัส?
user2602640
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.