कैसे सार्थक, या उपयोगी, एक अनलाइन किए गए LinearModelFit या NonlinearModelFit को सुगंधित करते समय पैरामीटर त्रुटियां उत्पन्न होती हैं?
यह एक ऐसा सवाल हो सकता है, जो सांख्यिकी और क्रॉस-वैलिडेड एसई के दायरे से अधिक के कगार पर है , लेकिन मैं विशेष रूप से मैथेमेटिका फिटिंग रूटीन में भी दिलचस्पी रखता हूं।
आमतौर पर, अगर मैं किसी डेटा का उपयोग करके किसी मॉडल को फिट करना चाहता हूं NonlinearModelFit
या LinearModelFit
मेरे पास कुछ त्रुटियां होंगी$y$-डाटा कि मैं फिट बैठता है वजन का उपयोग करें। ये त्रुटियां केवल बार-बार माप से हासिल की गई मानक त्रुटि हो सकती हैं, या मुझे शारीरिक प्रक्रियाओं के बारे में कुछ पता हो सकता है और वजन निर्धारित कर सकते हैं।
उदाहरण के लिए Weights->1/YDataErrors^2
और मैं हमेशा अपने विचरण अनुमानक के रूप में सेट करता हूं VarianceEstimatorFunction -> (1 &)
। मैं तब सहसंयोजक मैट्रिक्स से अपने पैरामीटर त्रुटियों को प्राप्त कर सकता हूं, या बस के साथ MyFit["ParameterErrors"]
।
हालाँकि कुछ मामलों में जिस डेटा को आप फिट करना चाहते हैं, उसके लिए कोई त्रुटि नहीं हो सकती है, जिसका अर्थ है कि जिस तरह से मैंने ऊपर वर्णित किया है, उसमें कोई वज़न नहीं दे सकता है। मेरा सवाल यह है कि, कितना विश्वसनीय है - या इससे भी महत्वपूर्ण बात - मैथमेटीका में अनटाइटेड फिट के लिए शारीरिक रूप से / सांख्यिकीय रूप से सार्थक कैसे पैरामीटर त्रुटियां हैं?
जवाब
उदाहरण के लिए, यदि किसी के पास त्रुटि के दो स्रोत हैं, माप त्रुटि और एक कमी-फिट त्रुटि कहते हैं, तो माप त्रुटियों के आधार पर भार का उपयोग करके मानक त्रुटियों के सकल कम करके आंका जा सकता है। निम्नलिखित मॉडल पर विचार करें:
$$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 के प्रतिगमन दिनचर्या अभी तक त्रुटि के एक से अधिक स्रोत वाले मॉडल के लिए पर्याप्त नहीं हैं। काश वे होते।