การทำนายและการพยากรณ์
ใช่คุณถูกต้องเมื่อคุณมองว่านี่เป็นปัญหาของการคาดการณ์การถดถอยแบบ Y-on-X จะให้แบบจำลองแก่คุณซึ่งได้รับการวัดจากเครื่องมือคุณสามารถทำการประเมินห้องปฏิบัติการที่ถูกต้องโดยไม่ต้องทำอะไร .
อีกวิธีหนึ่งถ้าคุณสนใจในจากนั้นคุณต้องการการถดถอยแบบ Y-on-XE[ Y| X]
สิ่งนี้อาจดูแย้งง่ายเพราะโครงสร้างข้อผิดพลาดไม่ใช่ "ของจริง" สมมติว่าวิธีการในห้องทดลองเป็นวิธีที่ปราศจากข้อผิดพลาดมาตรฐานทองคำจากนั้นเรา "รู้" ว่ารูปแบบการกำเนิดข้อมูลที่แท้จริงคือ
Xผม= βYผม+ ϵผม
โดยที่และϵ ฉันมีการกระจายแบบอิสระเหมือนกันและE [ ϵ ] = 0YผมεผมE[ ϵ ] = 0
เราสนใจที่จะได้ค่าประมาณที่ดีที่สุดของ ] เนื่องจากข้อสันนิษฐานอิสระของเราเราสามารถจัดเรียงใหม่ข้างต้น:E[ Yผม| Xผม]
Yผม= Xผม- ϵβ
ตอนนี้การรับความคาดหวังจากเป็นสิ่งที่ขนดกXผม
E[ Yผม| Xผม] = 1βXผม- 1βE[ ϵผม| Xผม]
ปัญหาคือเทอมX i ] - มันเท่ากับศูนย์หรือไม่? มันไม่สำคัญเพราะคุณไม่สามารถมองเห็นมันได้และเราเป็นเพียงแค่การสร้างแบบจำลองคำเชิงเส้นตรง การพึ่งพาระหว่างϵและXสามารถดูดซึมเข้าสู่ค่าคงที่ที่เราประมาณได้E[ ϵผม| Xผม]εX
อย่างชัดเจนโดยไม่สูญเสียความเป็นปรกติที่เราสามารถทำได้
εผม= γXผม+ ηผม
Where ตามคำนิยามดังนั้นตอนนี้เรามีE[ ηผม| X] = 0
Yผม= 1βXผม- γβXผม- 1βηผม
Yผม= 1 - γβXผม- 1βηผม
ซึ่งเป็นไปตามข้อกำหนดทั้งหมดของ OLS เนื่องจากอยู่ภายนอก มันไม่สำคัญว่าในน้อยคำว่าข้อผิดพลาดยังมีβตั้งแต่ค่าβมิได้σเป็นที่รู้จักกันอยู่แล้วและจะต้องถูกประเมิน เราสามารถแทนที่ค่าคงที่เหล่านั้นด้วยค่าใหม่และใช้วิธีการปกติηββσ
Yผม= α Xผม+ ηผม
ขอให้สังเกตว่าเราไม่ได้ประมาณปริมาณที่ฉันเขียนไว้ตอนแรก - เราได้สร้างแบบจำลองที่ดีที่สุดที่เราสามารถใช้ X เป็นพร็อกซีสำหรับ Y ได้β
การวิเคราะห์เครื่องมือ
คนที่ตั้งคำถามนี้กับคุณอย่างชัดเจนไม่ต้องการคำตอบข้างต้นเนื่องจากพวกเขาบอกว่า X-on-Y เป็นวิธีที่ถูกต้องดังนั้นทำไมพวกเขาถึงต้องการได้? มีแนวโน้มมากที่สุดที่พวกเขากำลังพิจารณาภารกิจทำความเข้าใจเกี่ยวกับเครื่องมือ ตามที่กล่าวไว้ในคำตอบของวินเซนต์ถ้าคุณต้องการทราบเกี่ยวกับพวกเขาต้องการเครื่องมือทำงาน X-on-Y เป็นวิธีที่จะไป
กลับไปที่สมการแรกข้างต้น:
Xผม= βYผม+ ϵผม
ผู้ตั้งคำถามอาจคิดถึงการสอบเทียบ เครื่องมือได้รับการกล่าวถึงว่าจะทำการสอบเทียบเมื่อมีความคาดหวังเท่ากับมูลค่าที่แท้จริงนั่นคือฉัน เห็นได้ชัดว่าเพื่อที่จะสอบเทียบXคุณต้องไปหาβและเพื่อให้การสอบเทียบเครื่องมือที่คุณต้องทำ X-on-Y ถดถอยE[ Xผม| Yผม] = YผมXβ
การหดตัว
YE[ Y| X]γE[ Y| X]Y. สิ่งนี้นำไปสู่แนวความคิดเช่น Bay-Regression-to-the-Mean และ Bay Empirical
ตัวอย่างใน R
วิธีหนึ่งในการทำความเข้าใจกับสิ่งที่เกิดขึ้นที่นี่คือการสร้างข้อมูลและลองใช้วิธีการต่างๆ โค้ดด้านล่างเปรียบเทียบ X-on-Y กับ Y-on-X สำหรับการคาดการณ์และการสอบเทียบและคุณจะเห็นได้อย่างรวดเร็วว่า X-on-Y นั้นไม่ดีสำหรับแบบจำลองการทำนาย แต่เป็นขั้นตอนที่ถูกต้องสำหรับการปรับเทียบ
library(data.table)
library(ggplot2)
N = 100
beta = 0.7
c = 4.4
DT = data.table(Y = rt(N, 5), epsilon = rt(N,8))
DT[, X := 0.7*Y + c + epsilon]
YonX = DT[, lm(Y~X)] # Y = alpha_1 X + alpha_0 + eta
XonY = DT[, lm(X~Y)] # X = beta_1 Y + beta_0 + epsilon
YonX.c = YonX$coef[1] # c = alpha_0
YonX.m = YonX$coef[2] # m = alpha_1
# For X on Y will need to rearrage after the fit.
# Fitting model X = beta_1 Y + beta_0
# Y = X/beta_1 - beta_0/beta_1
XonY.c = -XonY$coef[1]/XonY$coef[2] # c = -beta_0/beta_1
XonY.m = 1.0/XonY$coef[2] # m = 1/ beta_1
ggplot(DT, aes(x = X, y =Y)) + geom_point() + geom_abline(intercept = YonX.c, slope = YonX.m, color = "red") + geom_abline(intercept = XonY.c, slope = XonY.m, color = "blue")
# Generate a fresh sample
DT2 = data.table(Y = rt(N, 5), epsilon = rt(N,8))
DT2[, X := 0.7*Y + c + epsilon]
DT2[, YonX.predict := YonX.c + YonX.m * X]
DT2[, XonY.predict := XonY.c + XonY.m * X]
cat("YonX sum of squares error for prediction: ", DT2[, sum((YonX.predict - Y)^2)])
cat("XonY sum of squares error for prediction: ", DT2[, sum((XonY.predict - Y)^2)])
# Generate lots of samples at the same Y
DT3 = data.table(Y = 4.0, epsilon = rt(N,8))
DT3[, X := 0.7*Y + c + epsilon]
DT3[, YonX.predict := YonX.c + YonX.m * X]
DT3[, XonY.predict := XonY.c + XonY.m * X]
cat("Expected value of X at a given Y (calibrated using YonX) should be close to 4: ", DT3[, mean(YonX.predict)])
cat("Expected value of X at a gievn Y (calibrated using XonY) should be close to 4: ", DT3[, mean(XonY.predict)])
ggplot(DT3) + geom_density(aes(x = YonX.predict), fill = "red", alpha = 0.5) + geom_density(aes(x = XonY.predict), fill = "blue", alpha = 0.5) + geom_vline(x = 4.0, size = 2) + ggtitle("Calibration at 4.0")
เส้นการถดถอยสองเส้นถูกพล็อตบนข้อมูล
จากนั้นผลรวมของความคลาดเคลื่อนกำลังสองสำหรับ Y นั้นถูกวัดเพื่อให้พอดีกับตัวอย่างใหม่
> cat("YonX sum of squares error for prediction: ", DT2[, sum((YonX.predict - Y)^2)])
YonX sum of squares error for prediction: 77.33448
> cat("XonY sum of squares error for prediction: ", DT2[, sum((XonY.predict - Y)^2)])
XonY sum of squares error for prediction: 183.0144
อีกวิธีหนึ่งสามารถสร้างตัวอย่างที่ Y คงที่ (ในกรณีนี้ 4) จากนั้นค่าเฉลี่ยของการประมาณเหล่านั้น ตอนนี้คุณจะเห็นว่าเครื่องทำนาย Y-on-X นั้นไม่ได้รับการสอบเทียบอย่างมีค่าคาดว่าจะต่ำกว่า Y มากเครื่องทำนาย X-on-Y นั้นได้รับการปรับเทียบอย่างดีโดยมีค่าที่คาดไว้ใกล้เคียงกับ Y
> cat("Expected value of X at a given Y (calibrated using YonX) should be close to 4: ", DT3[, mean(YonX.predict)])
Expected value of X at a given Y (calibrated using YonX) should be close to 4: 1.305579
> cat("Expected value of X at a gievn Y (calibrated using XonY) should be close to 4: ", DT3[, mean(XonY.predict)])
Expected value of X at a gievn Y (calibrated using XonY) should be close to 4: 3.465205
การกระจายของการทำนายทั้งสองสามารถเห็นได้ในพล็อตความหนาแน่น
[self-study]
แท็ก