Прогнозування та прогнозування
Так, ви правильно, якщо розцінювати це як проблему прогнозування, регресія Y-on-X дасть вам таку модель, що за допомогою вимірювання приладу ви зможете зробити неупереджену оцінку точного вимірювання лабораторії, не роблячи процедури лабораторії. .
По-іншому, якщо вас просто цікавить тоді ви хочете регресії Y-on-X.E[Y|X]
Це може здатися протиінтуїтивно зрозумілим, оскільки структура помилок не є "справжньою". Якщо припустити, що лабораторний метод є золотим стандартним методом без помилок, то ми "знаємо", що справжня модель генерації даних є
Xi=βYi+ϵi
де і є незалежним ідентичним розподілом, аϵ i E [ ϵ ] = 0YiϵiE[ϵ]=0
Ми зацікавлені, щоб отримати найкращу оцінку . Зважаючи на нашу незалежність, ми можемо переставити вищезазначене:E[Yi|Xi]
Yi=Xi−ϵβ
Тепер, якщо приймати очікування, отримані це те, де все стає волохатимXi
E[Yi|Xi]=1βXi−1βE[ϵi|Xi]
Проблема полягає в терміні - він дорівнює нулю? Це насправді не має значення, тому що ви його ніколи не бачите, і ми лише моделюємо лінійні терміни (або аргумент поширюється на будь-які терміни, які ви моделюєте). Будь-яка залежність між та може бути просто поглинена константою, яку ми оцінюємо.E[ϵi|Xi]ϵX
Явно без втрати загальності ми можемо дозволити
ϵi=γXi+ηi
Де за визначенням, так що тепер маємоE[ηi|X]=0
YI=1βXi−γβXi−1βηi
YI=1−γβXi−1βηi
що відповідає всім вимогам OLS, оскільки зараз екзогенна. Не має значення навіть те, що термін помилки також містить оскільки ні ні не відомі і повинні бути оцінені. Тому ми можемо просто замінити ці константи на нові та використовувати звичайний підхідηββσ
YI=αXi+ηi
Зауважте, що ми НЕ оцінювали кількість яку я спочатку записав - ми створили найкращу модель, яку ми можемо використовувати для використання X як проксі для Y.β
Аналіз приладів
Людина, яка поставила вам це питання, явно не хотіла відповіді вище, оскільки вони кажуть, що X-on-Y - це правильний метод, то чому б вони могли цього хотіти? Швидше за все, вони розглядали завдання розуміння інструменту. Як обговорювалося у відповіді Вінсента, якщо ви хочете дізнатися про те, що вони хочуть, щоб інструмент поводився, X-on-Y - це шлях.
Повертаючись до першого рівняння вище:
Xi=βYi+ϵi
Людина, яка ставить питання, могла подумати про калібрування. Кажуть, що інструмент відкалібрований, коли очікування дорівнює справжньому значенню - тобто . Зрозуміло, щоб калібрувати вам потрібно знайти , і щоб калібрувати інструмент, вам потрібно зробити регресію X-on-Y.E[Xi|Yi]=YiXβ
Усадка
Калібрування - це інтуїтивно зрозуміла вимога інструменту, але це також може викликати плутанину. Зауважте, що навіть добре відкалібрований інструмент не покаже вам очікуваного значення ! Щоб отримати вам все одно потрібно виконати регресію Y-on-X навіть з добре відкаліброваним інструментом. Ця оцінка, як правило, буде схожа на зменшену версію значення інструменту (згадайте термін який прокрався). Зокрема, щоб отримати дійсно хорошу оцінку Ви повинні включити ваше попереднє знання про розподіл . Потім це призводить до таких понять, як регресія до середнього та емпіричний байес.YE[Y|X]γE[Y|X]Y
Приклад на 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]
тег.