इस प्रकार का मॉडल वास्तव में "सामान्य" रैखिक प्रतिगमन की तुलना में विज्ञान की कुछ शाखाओं (जैसे भौतिकी) और इंजीनियरिंग में बहुत अधिक सामान्य है। तो, भौतिक विज्ञान उपकरण जैसे ROOT
, इस प्रकार का फिट करना तुच्छ है, जबकि रैखिक प्रतिगमन मूल रूप से लागू नहीं होता है! भौतिक विज्ञानी इसे केवल एक "फिट" या ची-स्क्वायर न्यूनतम करने के लिए कहते हैं।
सामान्य रेखीय प्रतिगमन मॉडल मानता है कि एक समग्र विचरण है σहर माप से जुड़ा हुआ। यह तब संभावना को अधिकतम करता है
एल ∝Πमैंइ-12(yमैं- ( एकएक्समैं+ बी )σ)2
या समकक्ष इसके लघुगणक
लॉग( L ) = c o n s t t a n t -12σ2Σमैं(yमैं- (एकएक्समैं+ बी))2
इसलिए नाम कम से कम वर्ग - संभावना को अधिकतम करने के रूप में ही है वर्गों का योग कम से कम, और
σजब तक कि यह के रूप में, एक महत्वहीन स्थिर है
है निरंतर। विभिन्न ज्ञात अनिश्चितताओं वाले मापों के साथ, आप अधिकतम करना चाहेंगे
एल अल्फा Πइ-12(y- ( ए x + बी )σमैं)2
या समकक्ष इसके लघुगणक
लॉग( L ) = c o n s t t a n t -12Σ(yमैं- ( एकएक्समैं+ बी )σमैं)2
तो, आप वास्तव में उलटे विचरण द्वारा मापों को मापना चाहते हैं
1 /σ2मैं, विचरण नहीं। यह समझ में आता है - एक अधिक सटीक माप में छोटी अनिश्चितता होती है और इसे अधिक वजन दिया जाना चाहिए। ध्यान दें कि यदि यह वजन स्थिर है, तो यह अभी भी योग से बाहर है। इसलिए, यह अनुमानित मूल्यों को प्रभावित नहीं करता है, लेकिन इसे दूसरी व्युत्पन्न से ली गई मानक त्रुटियों
को प्रभावित
करना चाहिएलॉग( L )।
हालाँकि, यहाँ हम भौतिकी / विज्ञान और सांख्यिकी के बीच एक और अंतर रखते हैं। आमतौर पर आंकड़ों में, आप उम्मीद करते हैं कि एक सहसंबंध दो चर के बीच मौजूद हो सकता है, लेकिन शायद ही कभी यह सटीक होगा। भौतिक विज्ञान और अन्य विज्ञानों में, दूसरी ओर, आप अक्सर सहसंबंध या संबंध के सटीक होने की उम्मीद करते हैं, यदि केवल यह pesky माप त्रुटियों के लिए नहीं थे (जैसेएफ= एम ए, नहीं एफ= एम ए + ϵ)। आपकी समस्या भौतिकी / इंजीनियरिंग मामले में और अधिक गिरती दिख रही है। नतीजतन, lm
आपके माप और भार से जुड़ी अनिश्चितताओं की व्याख्या वैसी नहीं है जैसी आप चाहते हैं। यह वज़न लेगा, लेकिन यह अभी भी सोचता है कि एक समग्र हैσ2प्रतिगमन त्रुटि के लिए खाते में, जो आप चाहते हैं वह नहीं है - आप चाहते हैं कि आपकी माप त्रुटियां एकमात्र प्रकार की त्रुटि हो। ( lm
व्याख्या का अंतिम परिणाम यह है कि वज़न के केवल सापेक्ष मूल्य मायने रखते हैं, यही वजह है कि परीक्षण के रूप में आपके द्वारा जोड़े गए निरंतर वज़न का कोई प्रभाव नहीं था)। यहाँ प्रश्न और उत्तर में अधिक विवरण हैं:
lm वज़न और मानक त्रुटि
वहाँ जवाब में दिए गए संभावित समाधान के एक जोड़े हैं। विशेष रूप से, एक अनाम उत्तर का उपयोग करने का सुझाव देता है
vcov(mod)/summary(mod)$sigma^2
मूल रूप से, lm
अपने अनुमान के आधार पर सहसंयोजक मैट्रिक्स को मापता हैσ, और आप इसे पूर्ववत करना चाहते हैं। फिर आप सही कोविरेस मैट्रिक्स से अपनी इच्छित जानकारी प्राप्त कर सकते हैं। यह कोशिश करें, लेकिन यदि आप मैन्युअल रैखिक बीजगणित के साथ कर सकते हैं तो इसे दोबारा जांचने का प्रयास करें। और याद रखें कि वज़न उलटा variances होना चाहिए।
संपादित करें
यदि आप इस प्रकार की चीज़ कर रहे हैं तो आप उपयोग करने पर विचार कर सकते हैं ROOT
(जो मूल रूप से ऐसा करते समय लगता है lm
और glm
ऐसा नहीं होता है)। यह कैसे करना है इसका एक संक्षिप्त उदाहरण यहां दिया गया है ROOT
। सबसे पहले, ROOT
C ++ या पायथन के माध्यम से उपयोग किया जा सकता है, और इसका एक विशाल डाउनलोड और इंस्टॉलेशन। आप ब्राउज़र में इसे बृहस्पति नोटबुक का उपयोग करके आज़मा सकते हैं , यहाँ लिंक का अनुसरण करते हुए, दाईं ओर "बाइंडर" और बाईं ओर "पायथन" का चयन कर सकते हैं।
import ROOT
from array import array
import math
x = range(1,11)
xerrs = [0]*10
y = [131.4,227.1,245,331.2,386.9,464.9,476.3,512.2,510.8,532.9]
yerrs = [math.sqrt(i) for i in y]
graph = ROOT.TGraphErrors(len(x),array('d',x),array('d',y),array('d',xerrs),array('d',yerrs))
graph.Fit("pol2","S")
c = ROOT.TCanvas("test","test",800,600)
graph.Draw("AP")
c.Draw()
मैं वर्ग जड़ों में अनिश्चितताओं के रूप में डाल दिया है yमान। फिट का आउटपुट है
Welcome to JupyROOT 6.07/03
****************************************
Minimizer is Linear
Chi2 = 8.2817
NDf = 7
p0 = 46.6629 +/- 16.0838
p1 = 88.194 +/- 8.09565
p2 = -3.91398 +/- 0.78028
और एक अच्छा प्लॉट तैयार किया जाता है:
ROOT फिटर भी में अनिश्चितताओं को संभाल सकता है एक्समूल्यों, जो शायद और भी अधिक हैकिंग की आवश्यकता होगी lm
। अगर किसी को आर में ऐसा करने का एक देशी तरीका पता है, तो मुझे इसे सीखने में दिलचस्पी होगी।
दूसरा संस्करण
@Wolfgang द्वारा उसी पिछले प्रश्न का अन्य उत्तर एक और बेहतर समाधान देता है: पैकेज rma
से उपकरण metafor
(मैंने मूल रूप से उस उत्तर में पाठ की व्याख्या की, जिसका अर्थ है कि यह अवरोधन की गणना नहीं करता था, लेकिन यह मामला नहीं है)। माप y में वेरिएंस लेना केवल y होना चाहिए:
> rma(y~x+I(x^2),y,method="FE")
Fixed-Effects with Moderators Model (k = 10)
Test for Residual Heterogeneity:
QE(df = 7) = 8.2817, p-val = 0.3084
Test of Moderators (coefficient(s) 2,3):
QM(df = 2) = 659.4641, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
intrcpt 46.6629 16.0838 2.9012 0.0037 15.1393 78.1866 **
x 88.1940 8.0956 10.8940 <.0001 72.3268 104.0612 ***
I(x^2) -3.9140 0.7803 -5.0161 <.0001 -5.4433 -2.3847 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
यह निश्चित रूप से इस प्रकार के प्रतिगमन के लिए सबसे अच्छा शुद्ध आर उपकरण है जो मैंने पाया है।
boot
आर में पैकेज का उपयोग करके इसे बूटस्ट्रैप कर सकते हैं । बाद में आप बूटस्ट्रैप्ड डेटा सेट पर एक रेखीय प्रतिगमन को चलाने दे सकते हैं।