कैसे सार्थक, या उपयोगी, एक अनलाइन किए गए LinearModelFit या NonlinearModelFit को सुगंधित करते समय पैरामीटर त्रुटियां उत्पन्न होती हैं?

Aug 16 2020

यह एक ऐसा सवाल हो सकता है, जो सांख्यिकी और क्रॉस-वैलिडेड एसई के दायरे से अधिक के कगार पर है , लेकिन मैं विशेष रूप से मैथेमेटिका फिटिंग रूटीन में भी दिलचस्पी रखता हूं।

आमतौर पर, अगर मैं किसी डेटा का उपयोग करके किसी मॉडल को फिट करना चाहता हूं NonlinearModelFitया LinearModelFitमेरे पास कुछ त्रुटियां होंगी$y$-डाटा कि मैं फिट बैठता है वजन का उपयोग करें। ये त्रुटियां केवल बार-बार माप से हासिल की गई मानक त्रुटि हो सकती हैं, या मुझे शारीरिक प्रक्रियाओं के बारे में कुछ पता हो सकता है और वजन निर्धारित कर सकते हैं।

उदाहरण के लिए Weights->1/YDataErrors^2और मैं हमेशा अपने विचरण अनुमानक के रूप में सेट करता हूं VarianceEstimatorFunction -> (1 &)। मैं तब सहसंयोजक मैट्रिक्स से अपने पैरामीटर त्रुटियों को प्राप्त कर सकता हूं, या बस के साथ MyFit["ParameterErrors"]

हालाँकि कुछ मामलों में जिस डेटा को आप फिट करना चाहते हैं, उसके लिए कोई त्रुटि नहीं हो सकती है, जिसका अर्थ है कि जिस तरह से मैंने ऊपर वर्णित किया है, उसमें कोई वज़न नहीं दे सकता है। मेरा सवाल यह है कि, कितना विश्वसनीय है - या इससे भी महत्वपूर्ण बात - मैथमेटीका में अनटाइटेड फिट के लिए शारीरिक रूप से / सांख्यिकीय रूप से सार्थक कैसे पैरामीटर त्रुटियां हैं?

जवाब

4 JimB Aug 16 2020 at 19:20

उदाहरण के लिए, यदि किसी के पास त्रुटि के दो स्रोत हैं, माप त्रुटि और एक कमी-फिट त्रुटि कहते हैं, तो माप त्रुटियों के आधार पर भार का उपयोग करके मानक त्रुटियों के सकल कम करके आंका जा सकता है। निम्नलिखित मॉडल पर विचार करें:

$$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है

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

यह बहुत अच्छी तरह से मेल खाता है lm2

यह इस बात से थोड़ा उलझा हुआ उदाहरण है कि मेरे पास माप के सभी मानक समान हैं क्योंकि मैथेमेटिका के प्रतिगमन कार्य केवल एक त्रुटि अवधि की अनुमति देते हैं। और माप मानक त्रुटियों के समान होने से, एक एकल त्रुटि के साथ एक समान मॉडल में परिणाम होता है।

हालांकि, यहां तक ​​कि जब माप मानक विचलन काफी भिन्न होता है, तो अनुचित तरीके से भार के बारे में मुद्दा ऐसा होता है कि यह मॉडल की त्रुटि संरचना से मेल नहीं खाता है।

Mathematica के प्रतिगमन दिनचर्या अभी तक त्रुटि के एक से अधिक स्रोत वाले मॉडल के लिए पर्याप्त नहीं हैं। काश वे होते।