Prediksi dan Peramalan
Ya Anda benar, ketika Anda melihat ini sebagai masalah prediksi, regresi Y-on-X akan memberi Anda model sedemikian rupa sehingga dengan pengukuran instrumen Anda dapat membuat estimasi yang tidak bias dari pengukuran lab yang akurat, tanpa melakukan prosedur lab. .
Dengan kata lain, jika Anda hanya tertarik pada maka Anda ingin regresi Y-on-X.E[Y|X]
Ini mungkin tampak kontra-intuitif karena struktur kesalahan bukan yang "asli". Dengan asumsi bahwa metode lab adalah metode bebas kesalahan standar emas, maka kita "tahu" bahwa model data generatif sebenarnya adalah
Xi=βYi+ϵi
di mana dan adalah distribusi identik yang independen, danϵ i E [ ϵ ] = 0YiϵiE[ϵ]=0
Kami tertarik untuk mendapatkan estimasi . Karena asumsi independensi kami, kami dapat mengatur ulang hal di atas:E[Yi|Xi]
Yi=Xi−ϵβ
Sekarang, mengambil ekspektasi yang diberikan adalah tempat segala sesuatu menjadi berbuluXi
E[Yi|Xi]=1βXi−1βE[ϵi|Xi]
Masalahnya adalah istilah - apakah sama dengan nol? Sebenarnya tidak masalah, karena Anda tidak akan pernah melihatnya, dan kami hanya memodelkan istilah linier (atau argumen meluas hingga istilah apa pun yang Anda modelkan). Ketergantungan antara dan dapat dengan mudah diserap ke dalam konstanta yang kami perkirakan.E[ϵi|Xi]ϵX
Secara eksplisit, tanpa kehilangan sifat umum kita dapat membiarkannya
ϵi=γXi+ηi
Di mana menurut definisi, sehingga sekarang kita milikiE[ηi|X]=0
YI=1βXi−γβXi−1βηi
YI=1−γβXi−1βηi
yang memenuhi semua persyaratan OLS, karena sekarang eksogen. Tidak masalah sedikitpun bahwa istilah kesalahan juga mengandung karena bagaimanapun juga tidak diketahui dan harus diestimasi. Karena itu kita dapat dengan mudah mengganti konstanta-konstanta itu dengan konstanta baru dan menggunakan pendekatan normalηββσ
YI=αXi+ηi
Perhatikan bahwa kami TIDAK memperkirakan kuantitas yang awalnya saya tulis - kami telah membangun model terbaik yang kami bisa untuk menggunakan X sebagai proxy untuk Y.β
Analisis Instrumen
Orang yang memberi Anda pertanyaan ini, jelas tidak menginginkan jawaban di atas karena mereka mengatakan X-on-Y adalah metode yang benar, jadi mengapa mereka menginginkannya? Kemungkinan besar mereka sedang mempertimbangkan tugas memahami instrumen. Seperti yang dibahas dalam jawaban Vincent, jika Anda ingin tahu tentang mereka ingin instrumen berperilaku, X-on-Y adalah jalan yang harus ditempuh.
Kembali ke persamaan pertama di atas:
Xi=βYi+ϵi
Orang yang mengatur pertanyaan bisa saja memikirkan kalibrasi. Suatu instrumen dikatakan dikalibrasi ketika memiliki ekspektasi yang sama dengan nilai sebenarnya - yaitu . Jelas untuk mengkalibrasi Anda perlu menemukan , dan untuk mengkalibrasi instrumen Anda perlu melakukan regresi X-on-Y.E[Xi|Yi]=YiXβ
Penyusutan
Kalibrasi adalah persyaratan instrumen yang masuk akal secara intuitif, tetapi juga dapat menyebabkan kebingungan. Perhatikan, bahwa bahkan instrumen yang dikalibrasi dengan baik tidak akan menunjukkan kepada Anda nilai yang diharapkan dari ! Untuk mendapatkan Anda masih perlu melakukan regresi Y-on-X, bahkan dengan instrumen yang dikalibrasi dengan baik. Perkiraan ini umumnya akan terlihat seperti versi menyusut dari nilai instrumen (ingat istilah yang merangkak masuk). Secara khusus, untuk mendapatkan perkiraan benar-benar baik dari Anda harus menyertakan pengetahuan sebelumnya Anda dari distribusi . Ini kemudian mengarah pada konsep-konsep seperti regresi-to-the-mean dan empiris.YE[Y|X]γE[Y|X]Y
Contoh dalam R
Salah satu cara untuk merasakan apa yang sedang terjadi di sini adalah membuat beberapa data dan mencoba metode tersebut. Kode di bawah ini membandingkan X-on-Y dengan Y-on-X untuk prediksi dan kalibrasi dan Anda dapat dengan cepat melihat bahwa X-on-Y tidak baik untuk model prediksi, tetapi merupakan prosedur kalibrasi yang benar.
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")
Dua garis regresi diplot atas data
Dan kemudian jumlah kesalahan kuadrat untuk Y diukur untuk keduanya cocok pada sampel baru.
> 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
Sebagai alternatif, suatu sampel dapat dihasilkan pada Y tetap (dalam hal ini 4) dan kemudian rata-rata dari perkiraan yang diambil. Anda sekarang dapat melihat bahwa prediktor Y-on-X tidak dikalibrasi dengan baik memiliki nilai yang diharapkan jauh lebih rendah dari Y. Prediktor X-on-Y, dikalibrasi dengan baik memiliki nilai yang diharapkan mendekati 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
Distribusi kedua prediksi tersebut dapat dilihat pada plot kepadatan.
[self-study]
tag.