Ağırlıksız bir LinearModelFit veya NonlinearModelFit gerçekleştirilirken üretilen parametre hataları ne kadar anlamlı veya yararlıdır?

Aug 16 2020

Bu, istatistik ve Çapraz Doğrulanmış SE alanına daha fazla ait olmanın eşiğine gelen bir soru olabilir , ancak ben ayrıca Mathematica uydurma rutinleriyle de özellikle ilgileniyorum.

Genellikle, bir modeli kullanarak bazı verilere uydurmak istersem NonlinearModelFitveya LinearModelFitbenimle ilişkili bazı hatalar olur.$y$-uygulamaları tartmak için kullandığım veriler. Bu hatalar basitçe tekrarlanan ölçümlerden elde edilen standart hata olabilir veya fiziksel süreçler hakkında bir şeyler biliyor olabilir ve ağırlıkları atayabilirim.

Örneğin, Weights->1/YDataErrors^2varyans tahmin edicimi her zaman olarak ayarlıyorum VarianceEstimatorFunction -> (1 &). Daha sonra parametre hatalarımı kovaryans matrisinden veya basitçe ile alabilirim MyFit["ParameterErrors"].

Bununla birlikte, bazı durumlarda, sığdırmak istediğiniz veriler için herhangi bir hata olmayabilir, yani yukarıda açıkladığım şekilde ağırlık sağlanamaz. O halde sorum şu: Mathematica'daki ağırlıklandırılmamış bir uyum için parametre hataları ne kadar güvenilir - veya daha da önemlisi - fiziksel / istatistiksel olarak ne kadar anlamlı?

Yanıtlar

4 JimB Aug 16 2020 at 19:20

Örneğin, birinin iki hata kaynağı varsa, örneğin bir ölçüm hatası ve bir uyumsuzluk hatası, o zaman ağırlıkların ölçüm hatalarına dayalı olarak kullanılması, standart hataların büyük ölçüde eksik tahminlerine neden olabilir. Aşağıdaki modeli düşünün:

$$y=a+b x +\gamma + \epsilon$$

nerede $y$ ölçülen yanıttır, $x$ tahmin edici $a$ ve $b$ sabitler tahmin edilecek, $\gamma$ ile tekrarlanan ölçüm hatası $\gamma \sim N(0,\sigma_{ME})$, ve $\epsilon$ uyumsuzluk hatası $\epsilon \sim N(0,\sigma)$ ve tüm hataların bağımsız olduğu varsayılır.

Önce bazı özel parametreleri ayarlayın:

(* Measurement error standard deviation *)
σME = 10;

(* Lack-of-fit error standard deviation *)
σ = 20;

(* Regression coefficients *)
a = 1;
b = 1;

Bazı verileri oluşturun ve planlayın:

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]

Şimdi iki farklı doğrusal modelin lm1önerdiğiniz ve lm2benim önerdiğim yere uyduğunu düşünün :

lm1 = LinearModelFit[data, z, z, Weights -> 1/ConstantArray[σME^2, n],
   VarianceEstimatorFunction -> (1 &)];
lm2 = LinearModelFit[data, z, z];
lm1["ParameterTable"]

lm2["ParameterTable"]

Parametrelerin tahminleri aynıdır, ancak için standart hatalar lm1boyutun yarısından daha azdır lm2. Hangisi doğru?

En küçük kareler tahmin edicilerinin ave bbu model için "gerçek" kovaryans matrisi

$$\left(\sigma ^2+\sigma_{ME}^2\right) \left(X^T.X\right)^{-1}$$

nerede $X$tasarım matrisidir. In Mathematica için kod standart hata bDİR

X = Transpose[{ConstantArray[1, n], Range[n]}]
Sqrt[(σME^2 + σ^2) Inverse[Transpose[X].X][[2, 2]]] // N
(* 0.0774635 *)

Bu çok iyi uyuyor lm2.

Mathematica'nın regresyon fonksiyonları sadece tek bir hata terimine izin verdiğinden, tüm ölçüm standart hatalarının aynı olması nedeniyle bu biraz yapmacık bir örnektir . Ve ölçüm standart hatalarının aynı olması, tek bir hatayla eşdeğer bir modelle sonuçlanır.

Bununla birlikte, ölçüm standart sapmaları önemli ölçüde değişiklik gösterse bile, modelin hata yapısına uymayacak şekilde uygunsuz şekilde ağırlıklandırma sorunu devam etmektedir.

Mathematica'nın regresyon rutinleri, birden fazla hata kaynağı olan modeller için henüz yeterli değildir. Keşke olsalar.