가중치가없는 LinearModelFit 또는 NonlinearModelFit를 수행 할 때 생성되는 매개 변수 오류는 얼마나 의미가 있거나 유용합니까?
이것은 통계 및 교차 검증 SE 영역에 더 많이 속하기 직전의 질문 일 수 있지만, 특히 Mathematica 피팅 루틴에 관심이 있습니다.
일반적으로 둘 중 하나를 사용하여 일부 데이터에 모델을 맞추고 싶 NonlinearModelFit
거나 LinearModelFit
내$y$-적합에 가중치를 부여하는 데 사용하는 데이터. 이러한 오류는 반복 된 측정에서 얻은 표준 오류 일 수도 있고 물리적 프로세스에 대해 알고 있고 가중치를 할당 할 수도 있습니다.
예를 들어 Weights->1/YDataErrors^2
, 저는 항상 분산 추정기를 VarianceEstimatorFunction -> (1 &)
. 그런 다음 공분산 행렬에서 또는 간단히 MyFit["ParameterErrors"]
.
그러나 어떤 경우에는 맞추려는 데이터에 오류가 없을 수 있습니다. 즉, 위에서 설명한 방식으로 가중치를 제공 할 수 없습니다. 제 질문은 Mathematica에서 비가 중 피팅에 대한 매개 변수 오류가 물리적 / 통계적으로 얼마나 신뢰할 수 있는지 또는 더 중요하게는 얼마나 의미 있는가입니다.
답변
예를 들어, 측정 오류와 적합성 결여 오류와 같은 두 가지 오류 원인이있는 경우 측정 오류를 기반으로 가중치를 사용하면 표준 오류를 크게 과소 평가할 수 있습니다. 다음 모델을 고려하십시오.
$$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]
이제 두 가지 다른 선형 모델 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$디자인 매트릭스입니다. 에 티카 에 대한 코드를 표준 오류 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 의 회귀 루틴은 오류 원인이 둘 이상인 모델에는 아직 적합하지 않습니다. 나는 그들이 그랬 으면 좋겠다.