回答:
多くのラボペーパー、特に機器のテスト実験では、このようなx on y回帰が適用されます。
彼らは、実験のデータ収集から、y条件が制御され、機器の読み取り値からxを取得していると主張します(それに何らかのエラーを導入します)。これは実験の元の物理モデルであるため、x〜y + errorの方が適しています。
実験誤差を最小限に抑えるために、yが同じ条件で制御されている場合、xが数回測定されます(または繰り返し実験されます)。この手順は、それらの背後にあるロジックを理解し、x〜y + errorをより明確に見つけるのに役立ちます。
予測と予測
はい、正解です。これを予測の問題と見なすと、Y-on-X回帰により、機器の測定値が与えられれば、ラボの手順を実行せずに、正確なラボ測定の公平な推定を行うことができるようなモデルが得られます。 。
エラー構造は「実際の」構造ではないため、これは直観に反するように見えるかもしれません。実験室の方法が最も標準的なエラーのない方法であるとすると、真のデータ生成モデルは
明らかに、一般性を失うことなく、
機器分析
この質問を設定した人は、X-on-Yが正しい方法であると言っているので、明らかに上記の答えを望んでいませんでした。おそらく彼らは楽器を理解するタスクを考えていました。ヴィンセントの回答で述べたように、彼らが楽器の動作を望んでいることを知りたい場合は、X-on-Yが適しています。
上記の最初の方程式に戻ります。
収縮
。これにより、平均への回帰や経験的ベイなどの概念が生まれます。
Rでの例 ここで何が行われているのかを理解する1つの方法は、データを作成してメソッドを試すことです。以下のコードは、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")
2つの回帰線がデータ上にプロットされます
次に、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
2つの予測の分布は、密度プロットで確認できます。
これは、通常の最小二乗法のXの分散とYの分散に関する仮定に依存します。Yに唯一の分散のソースがあり、Xにゼロの分散がある場合、Xを使用してYを推定します。仮定が逆の場合(Xには分散のみがあり、Yにはゼロの分散があります)、Yを使用してXを推定します。
XとYの両方に分散があると想定される場合は、合計最小二乗法を考慮する必要がある場合があります。
TLSの良い説明はこのリンクに書かれました。この論文はトレーディングを対象としていますが、セクション3はTLSをうまく説明しています。
編集1(2013年9月10日)========================================= ======
もともとこれはある種の宿題の問題だと思っていたので、OPの質問に対する「答え」について具体的には知りませんでした。しかし、他の回答を読んだ後、もう少し詳細を取得しても問題ないようです。
OPの質問の一部を引用します。
「...レベルも非常に正確な実験室手順を使用して測定されます...」
上記のステートメントは、2つの測定値があることを示しています。1つは機器から、もう1つはラボ手順からです。このステートメントは、実験室の手順の分散が機器の分散と比較して低いことも意味します。
OPの質問からの別の引用は次のとおりです。
"....検査手順の測定値はy .....で示されます"
したがって、上記の2つのステートメントから、Yの分散は小さくなります。したがって、最もエラーが発生しにくい手法は、Yを使用してXを推定することです。「提供された回答」は正しかったです。
[self-study]
タグを追加してください。