답변:
많은 실험실 논문, 특히 기기 테스트 실험에서는 이러한 x를 y 회귀 분석에 적용합니다.
실험의 데이터 수집에서 y 조건이 제어되고 기기 판독 값에서 x를 얻습니다 (일부 오류가 발생 함). 이것은 실험의 원래 물리적 모델이므로 x ~ y + 오류가 더 적합합니다.
실험 오류를 최소화하기 위해 때로는 동일한 조건에서 y를 제어 한 다음 x를 여러 번 측정 (또는 반복 실험)합니다. 이 절차를 통해 배후의 논리를 이해하고 x ~ y + 오류를보다 명확하게 찾을 수 있습니다.
일반적으로, 다른 분석은 다른 질문에 답변합니다. 두 와 X 에 Y는 방금 확인 분석이 응답 할 질문을 일치하는지 확인하려면, 여기 유효 할 수있다. (이 행을 더 자세히 보려면 여기에서 내 대답을 읽으십시오 .Y는 X의 X와 X의 Y에 대한 선형 회귀의 차이점은 무엇입니까? )
예측 및 예측
그렇습니다.이 문제를 예측의 문제로 볼 때 Y-on-X 회귀는 계측기 측정을 통해 실험실 절차를 수행하지 않고도 정확한 실험실 측정에 대한 편견없는 추정을 할 수있는 모델을 제공합니다. .
오류 구조가 "실제"구조가 아니기 때문에 이는 직관적이지 않은 것처럼 보일 수 있습니다. 랩 방법이 표준 오류가없는 표준 방법이라고 가정하면 실제 데이터 생성 모델이
명백히 일반성을 잃지 않으면 서
기기 분석
이 질문을 한 사람은 X-on-Y가 올바른 방법이라고 말했기 때문에 위의 대답을 원하지 않았습니다. 왜 그들이 원했을까요? 아마도 그들은 기기를 이해하는 작업을 고려하고 있었을 것입니다. Vincent의 답변에서 설명한 것처럼 계측기의 동작에 대해 알고 싶다면 X-on-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
두 예측의 분포는 밀도 플롯에서 볼 수 있습니다.
정규 최소 제곱에 대한 X의 분산과 Y의 분산에 대한 가정에 따라 다릅니다. Y에 유일한 분산 원이 있고 X에 분산이 0이면 X를 사용하여 Y를 추정합니다. 다른 가정이있는 경우 (X에 분산 만 있고 Y에 0의 분산이있는 경우) Y를 사용하여 X를 추정합니다.
X와 Y에 분산이 있다고 가정하면 총 최소 제곱 을 고려해야 합니다.
이 링크 에 TLS에 대한 자세한 설명이 작성되었습니다 . 이 문서는 거래에 중점을두고 있지만 섹션 3은 TLS를 잘 설명합니다.
편집 1 (2013 년 10 월 10 일) =========================================== ======
나는 이것이 일종의 숙제 문제라고 생각했기 때문에 OP의 질문에 대한 "답변"에 대해 구체적으로 알지 못했습니다. 그러나 다른 답변을 읽은 후에는 좀 더 자세하게 알 수있는 것처럼 보입니다.
OP의 질문 중 일부를 인용 :
".... 수준도 매우 정확한 실험실 절차를 사용하여 측정됩니다."
위의 진술은 두 가지 측정이 있는데 하나는 계측기에서, 하나는 실험실 절차에서 측정 한 것입니다. 이 진술은 또한 실험실 절차의 분산이 기기의 분산에 비해 낮다는 것을 암시합니다.
OP의 질문에서 또 다른 인용문은 다음과 같습니다.
".... 실험실 절차 측정 값은 y .....로 표시됩니다."
따라서 위의 두 진술에서 Y는 분산이 더 낮습니다. 따라서 오류가 발생하기 쉬운 기술은 Y를 사용하여 X를 추정하는 것입니다. "제공된 답변"이 정확했습니다.
[self-study]
태그 를 추가하십시오 .