重み付けされていないLinearModelFitまたはNonlinearModelFitを実行すると、パラメーターエラーはどの程度意味があり、有用ですか?
これは、統計と相互検証されたSEの領域に属することの危機に瀕している質問かもしれませんが、私はMathematicaフィッティングルーチンにも特に興味があります。
通常、いずれNonlinearModelFit
かLinearModelFit
を使用してモデルをデータに適合させたい場合、またはに関連するエラーが発生します$y$-はめあいの重みを付けるために使用するデータ。これらのエラーは、単に繰り返し測定から取得された標準エラーである場合もあれば、物理プロセスについて何か知っていて、重みを割り当てることができる場合もあります。
たとえばWeights->1/YDataErrors^2
、私は常に分散推定量をに設定しVarianceEstimatorFunction -> (1 &)
ます。次に、共分散行列から、または単にMyFit["ParameterErrors"]
。を使用して、パラメーターエラーを取得できます。
ただし、場合によっては、適合させたいデータにエラーがない場合があります。つまり、上記の方法で重みを指定できない場合があります。それでは、私の質問は、Mathematicaでの重み付けされていない近似のパラメータエラーがどれほど信頼できるか、あるいはもっと重要なことに、物理的/統計的にどれほど意味があるかということです。
回答
たとえば、測定誤差と不適合誤差などの2つの誤差の原因がある場合、測定誤差に基づく重みを使用すると、標準誤差を大幅に過小評価する可能性があります。次のモデルを検討してください。
$$y=a+b x +\gamma + \epsilon$$
どこ $y$ 測定された応答です、 $x$ 予測子です、 $a$ そして $b$ 推定される定数です、 $\gamma$ 繰り返し測定誤差は $\gamma \sim N(0,\sigma_{ME})$、および $\epsilon$ の不適合エラーです $\epsilon \sim N(0,\sigma)$ そして、すべてのエラーは独立していると見なされます。
まず、いくつかの特定のパラメータを設定します。
(* Measurement error standard deviation *)
σME = 10;
(* Lack-of-fit error standard deviation *)
σ = 20;
(* Regression coefficients *)
a = 1;
b = 1;
いくつかのデータを生成してプロットします。
n = 100;
x = Range[n];
SeedRandom[12345];
measurementError = RandomVariate[NormalDistribution[0, σME], n];
lackOfFitError = RandomVariate[NormalDistribution[0, σ], n];
y = a + b x + measurementError + lackOfFitError;
data = Transpose[{x, y}];
data2 = {#[[1]], Around[#[[2]], σME]} & /@ data;
ListPlot[data2]
ここで、2つの異なる線形モデルが当てはまると考えlm1
てくださいlm2
。
lm1 = LinearModelFit[data, z, z, Weights -> 1/ConstantArray[σME^2, n],
VarianceEstimatorFunction -> (1 &)];
lm2 = LinearModelFit[data, z, z];
lm1["ParameterTable"]
lm2["ParameterTable"]
パラメータの推定値は同じですが、の標準誤差はの標準誤差のlm1
半分未満ですlm2
。どちらが正しいか?
最小二乗推定量の「真」の共分散行列a
とb
、このモデルのためであります
$$\left(\sigma ^2+\sigma_{ME}^2\right) \left(X^T.X\right)^{-1}$$
どこ $X$は計画行列です。ではMathematicaのコードの標準誤差b
IS
X = Transpose[{ConstantArray[1, n], Range[n]}]
Sqrt[(σME^2 + σ^2) Inverse[Transpose[X].X][[2, 2]]] // N
(* 0.0774635 *)
それはとかなりよく一致しlm2
ます。
Mathematicaの回帰関数は単一の誤差項しか許さないので、これは私がすべての測定標準誤差を同一にしているという点で少し不自然な例です。また、測定標準誤差を同一にすることで、単一の誤差を持つ同等のモデルが得られます。
ただし、測定標準偏差が大きく変動しても、モデルのエラー構造と一致しないような不適切な重み付けに関する問題は残ります。
Mathematicaの回帰ルーチンは、複数のエラーの原因があるモデルにはまだ適切ではありません。彼らがいたらいいのに。