मुझे इस गैर-रेखीय एकाधिक प्रतिगमन को फिट करने में मदद करें जिसने पिछले सभी प्रयासों को परिभाषित किया है


9

EDIT: इस पोस्ट को बनाने के बाद से, मैंने यहाँ एक अतिरिक्त पोस्ट के साथ काम किया है

नीचे दिए गए पाठ का सारांश: मैं एक मॉडल पर काम कर रहा हूं और रैखिक प्रतिगमन, बॉक्स कॉक्स परिवर्तन और GAM की कोशिश की है, लेकिन बहुत प्रगति नहीं की है

का उपयोग करते हुए R, मैं वर्तमान में प्रमुख लीग (एमएलबी) स्तर पर मामूली लीग बेसबॉल खिलाड़ियों की सफलता की भविष्यवाणी करने के लिए एक मॉडल पर काम कर रहा हूं। प्रतिस्थापन (ओडब्ल्यूएआर) से ऊपर निर्भर चर, आक्रामक कैरियर जीतता है, एमएलबी स्तर पर सफलता के लिए एक प्रॉक्सी है और इसे हर उस खिलाड़ी के लिए आक्रामक योगदान के योग के रूप में मापा जाता है जो खिलाड़ी अपने करियर के दौरान शामिल होता है (विवरण यहां - http : //www.fangraphs.com/library/misc/war/)। स्वतंत्र चर उन आंकड़ों के लिए जेड-स्कोर किए गए मामूली लीग ऑफेंसिव वैरिएबल हैं, जो प्रमुख लीग स्तर पर सफलता के महत्वपूर्ण पूर्वानुमानकर्ता माने जाते हैं, जिसमें उम्र भी शामिल है (कम उम्र में अधिक सफलता वाले खिलाड़ी बेहतर संभावनाएं रखते हैं), स्ट्राइक आउट रेट [सटीक] ], वॉक रेट [BBrate] और समायोजित उत्पादन (आक्रामक उत्पादन का एक वैश्विक उपाय)। इसके अतिरिक्त, चूंकि मामूली लीग के कई स्तर हैं, इसलिए मैंने खेलने के मामूली लीग स्तर (डबल ए, हाई ए, लो ए, रूकी और ट्रिपल सी के साथ लघु सीज़न के लिए डमी वैरिएबल को शामिल किया है [प्रमुख लीग से पहले का उच्चतम स्तर] संदर्भ चर के रूप में])। नोट: मेरे पास WAR को एक वैरिएबल के लिए फिर से स्केल किया गया है जो 0 से 1 तक जाता है।

चर प्रकीर्णन इस प्रकार है:

स्कैटर प्लॉट

संदर्भ के लिए, आश्रित चर, oWAR, में निम्नलिखित कथानक हैं:

dependentvariableplot

मैंने एक रेखीय प्रतिगमन के साथ शुरुआत की oWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeasonऔर निम्नलिखित निदान भूखंड प्राप्त किए:

linearRegressionDiagnostics

अवशिष्टों की निष्पक्षता की कमी और यादृच्छिक भिन्नता की कमी के साथ स्पष्ट समस्याएं हैं। इसके अतिरिक्त, अवशिष्ट सामान्य नहीं हैं। प्रतिगमन के परिणाम नीचे दिखाए गए हैं:

linearRegressionResults

पिछले धागे में सलाह के बाद , मैंने बिना किसी सफलता के साथ बॉक्स-कॉक्स परिवर्तन की कोशिश की। इसके बाद, मैंने एक लॉग लिंक के साथ एक GAM की कोशिश की और इन भूखंडों को प्राप्त किया:

splines

मूल diagnosticChecksGAM

न्यू डायग्नोस्टिक प्लॉट GAMDiag

ऐसा लगता है कि छींटे डेटा को फिट करने में मदद करते हैं लेकिन नैदानिक ​​भूखंड अभी भी एक खराब फिट दिखाते हैं। संपादित करें: मैंने सोचा था कि मैं मूल रूप से फिट किए गए मूल्यों बनाम अवशेषों को देख रहा था लेकिन मैं गलत था। मूल रूप से दिखाए गए प्लॉट को मूल (ऊपर) के रूप में चिह्नित किया गया है और मैंने बाद में जिस प्लॉट को अपलोड किया है उसे न्यू डायग्नोस्टिक प्लॉट (ऊपर भी) के रूप में चिह्नित किया गया है।

GAMResults

R2 मॉडल की वृद्धि हुई है

लेकिन आदेश द्वारा उत्पादित परिणाम gam.check(myregression, k.rep = 1000)होनहार नहीं हैं।

GAMResults2

क्या कोई इस मॉडल के लिए अगला कदम सुझा सकता है? मुझे लगता है कि आपके द्वारा अब तक की गई प्रगति को समझने के लिए उपयोगी कोई अन्य जानकारी प्रदान करने में खुशी हो सकती है। आप जो भी मदद दे सकें मैं उसका आभारी होऊंगा।


2
मुझे इस उत्कृष्ट प्राइमर में GAM में R - www3.nd.edu/~mclark19/learn/GAMS.pdf पर कोड मिला: कोड: लाइब्रेरी (कार) स्कैटरप्लोटमैट्रिक्स (mydata [, c (1,1: 8)], pch) = 19, cex = .5, reg.line = F, lwd.smooth = 1.25, स्प्रेड = F, दीर्घवृत्त = T, col = c ('धूसर 60', '# 2957FF', '# FF3000'), col.axis = 'ग्रे 50')
zgall1

1
क्या आप अपना डेटासेट साझा कर सकते हैं? इसके अलावा, उस स्कैटरप्लॉट मैट्रिक्स के लिए +1। उत्कृष्ट है।
जच

1
यह बहुत बुरा है, यह एक दिलचस्प डेटासेट की तरह दिखता है। मेरा सुझाव कुछ अन्य मशीन लर्निंग एल्गोरिदम की कोशिश करना होगा, जैसे कि एक यादृच्छिक जंगल।
जच

2
बेतरतीब जंगल निर्णय पेड़ों पर आधारित हैं। R में randomForest पैकेज और यादृच्छिक वन विकिपीडिया पृष्ठ देखें: en.wikipedia.org/wiki/Random_forest
Zach

2
"आश्रित चर ... हर खिलाड़ी के लिए आक्रामक योगदान के योग के रूप में मापा जाता है जो खिलाड़ी अपने करियर के दौरान शामिल होता है।" यह मेरे लिए कूदता है। यहां एक गंभीर कन्फ्यूजन है कि एक खिलाड़ी कितने समय से खेल रहा है, दोनों में [a] लंबे समय तक खेलने का मतलब है कि "OWAR [b] इकट्ठा करने के लिए अधिक समय है। बेहतर खिलाड़ी संभवतः अधिक समय तक खेलेंगे।
14

जवाबों:


6

बहुत अच्छा काम। मुझे लगता है कि यह स्थिति आनुपातिक बाधाओं के लिए एक उम्मीदवार है अर्धवृत्ताकार ऑर्डिनल लॉजिस्टिक मॉडल। lrmआर में समारोह rmsपैकेज मॉडल फिट होगा। अभी के लिए आप चक्कर लगाना चाह सकते हैंYकेवल 100-200 के स्तर के लिए। जल्द ही एक नए संस्करण के rmsसाथ एक नया संस्करण जारी किया जाएगा ormजो कुशलता से मॉडल में हजारों इंटरसेप्ट्स की अनुमति देता है, अर्थात अनुमति देता हैYपूरी तरह से सतत होने के लिए [अद्यतन: यह 2014 में दिखाई दिया]। आनुपातिक बाधाओं मॉडलβs कैसे करने के लिए अपरिवर्तनीय हैं Yरूपांतरित हो जाता है। इसका मतलब है कि मात्रात्मक भी अपरिवर्तनीय हैं। जब आप एक अनुमानित मतलब चाहते हैं,Y उचित अंतराल पैमाने पर माना जाता है।


1
स्तरों से, क्या आपका मतलब है कि 100-200 बाल्टियों में वाई चर को कम करना? यदि हां, तो क्या बिन आकार चुनने के लिए कोई पसंदीदा तरीका है? क्या उन्हें समान आकार देना चाहिए?
zgall1

1
जब तक हमारे पास निरंतर समाधान नहीं है, बस अस्थायी रूप से बायनिंग करें। आप 100 प्रतिशत में बिन कर सकते हैं, जैसेrequire(Hmisc); cut2(y, g=100, levels.mean=TRUE)
फ्रैंक हरेल

जब आप कहते हैं कि नया संस्करण rmsजल्द ही जारी किया जाएगा, तो क्या आपके पास कोई विचार है जब यह हो सकता है?
zgall1

यदि आप linux का उपयोग करते हैं तो मैं इसे अभी आपको दे सकता हूं, अन्यथा 2 सप्ताह की उम्मीद करें।
फ्रैंक हरेल

मैं लिनक्स का उपयोग नहीं करता हूं इसलिए मुझे लगता है कि मुझे इंतजार करना होगा। कृपया मुझे बताएं कि यह कब उपलब्ध है।
zgall1

1

मुझे लगता है कि आश्रित चर और मॉडल को फिर से काम करना यहां फलदायी हो सकता है। से अपने अवशिष्टों को देखते हुए lm(), ऐसा लगता है कि प्रमुख मुद्दा एक उच्च कैरियर WAR (जिसे आपने सभी WAR के योग के रूप में परिभाषित किया है) वाले खिलाड़ियों के साथ है। ध्यान दें कि आपका उच्चतम अनुमानित (स्केल किया गया) WAR, अधिकतम 1 में से 0.15 है! मुझे लगता है कि इस निर्भर चर के साथ दो चीजें हैं जो इस मुद्दे को बढ़ा रही है:

  • वे खिलाड़ी जो अधिक समय तक खेलते हैं, उनके पास WAR इकट्ठा करने के लिए अधिक समय होता है
  • अच्छे खिलाड़ियों को लंबे समय तक रखा जाएगा, और इस प्रकार WAR को इकट्ठा करने के लिए उस लंबे समय के लिए अवसर होगा

हालांकि भविष्यवाणी के संदर्भ में, समय सहित एक नियंत्रण के रूप में स्पष्ट रूप से खेला जाता है (किसी भी तरीके से, चाहे वजन के रूप में, या औसत कैरियर WAR की गणना में भाजक के रूप में) उल्टा है (यह भी मुझे लगता है कि इसका प्रभाव गैर-रैखिक होगा)। इस प्रकार, मैं सुझाव देता हूं कि मिश्रित मॉडल का उपयोग करके lme4या कुछ हद तक स्पष्ट रूप से मॉडलिंग का समय nlme

आपका आश्रित चर मौसमी WAR होगा, और आपके पास एक अलग संख्या होगी j=mi खिलाड़ी प्रति सीजन की i। मॉडल में एक यादृच्छिक प्रभाव के रूप में खिलाड़ी होगा, और इसकी तर्ज पर होगा:

sWARij=α+σi2+<other stuff>+εij

इसके साथ lme4, यह कुछ इस तरह दिखेगा
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

आपको अभी भी बदलने की आवश्यकता हो सकती है sWAR, लेकिन मुझे लगता है कि यह उस फीडबैक लूप पर मदद करेगा।


मुझे यकीन नहीं है कि मैं पूरी तरह से समझता हूं। यदि आश्रित चर मौसमी WAR है, तो स्वतंत्र चर क्या हैं? प्रत्येक खिलाड़ी के लिए एक समान मामूली लीग स्टेट लाइन? क्या हम अनिवार्य रूप से कह रहे हैं कि मामूली लीग स्टेट लाइन A से बड़ी लीग WAR B, C, D और E हो सकती है?
zgall1

इसके अलावा, इस मॉडल को पोस्ट करने के बाद, मैंने एक अतिरिक्त पोस्ट के साथ अनुसरण किया है जिसे आप यहां देख सकते हैं: आंकड़े
zgall1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.