2013-03-15 1 views
20

में चरणबद्ध रिग्रेशन चरणबद्ध प्रतिगमनपायथन में कैसे करें? SCIPY में OLS के लिए विधियां हैं लेकिन मैं चरणबद्ध करने में सक्षम नहीं हूं। इस संबंध में कोई मदद एक बड़ी मदद होगी। धन्यवाद।पायथन

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

https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CEAQFjAD&url=http%3A%2F%2Fbusiness.fullerton.edu%2Fisds%2Fjlawrence%2FStat-On-Line%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&ei=YjKsUZzXHoPwrQfGs4GQCg&usg=AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&bvm=bv.47244034,d.bmk

धन्यवाद: नीचे दिए गए लिंक उद्देश्य बताते हैं।

+3

'scikits.learn' में लार्स/लासो है, यदि इसका कोई उपयोग है: http://scikit-learn.org/dev/modules/linear_model.html#lars-lasso – NPE

+0

क्या आप किस प्रकार के मानदंडों पर विस्तार कर सकते हैं पूर्वानुमानित चर की पसंद के लिए उपयोग करना चाहते हैं? और यदि आप एक उदाहरण चाहते हैं, तो क्या आप कुछ नमूना डेटा पोस्ट या लिंक कर सकते हैं? – BKay

+0

पी-मानों पर एक मॉडल को आधार देने की सलाह नहीं दी जाती है। वे एक स्वच्छता जांच के अधिक हैं, और अन्य मानदंड, जैसे कि एआईसी या बीआईसी, अधिक उपयुक्त हैं। –

उत्तर

8

ट्रेवर स्मिथ और मैंने आँकड़े के साथ रैखिक प्रतिगमन के लिए थोड़ा आगे चयन समारोह लिखा: http://planspace.org/20150423-forward_selection_with_statsmodels/ आप पी-वैल्यू को कम करने के लिए इसे आसानी से संशोधित कर सकते हैं या बस थोड़ा और काम के साथ बीटा पी-वैल्यू के आधार पर चयन कर सकते हैं।

0
"""Importing the api class from statsmodels""" 
import statsmodels.formula.api as sm 

"""X_opt variable has all the columns of independent variables of matrix X 
in this case we have 5 independent variables""" 
X_opt = X[:,[0,1,2,3,4]] 

"""Running the OLS method on X_opt and storing results in regressor_OLS""" 
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit() 
regressor_OLS.summary() 

सारांश पद्धति का उपयोग करना, आप अपने कर्नेल में अपने चर '| टी | P>' के रूप में लिखा के पी मूल्यों की जाँच कर सकते हैं। फिर उच्चतम पी मान के साथ चर के लिए जांचें। मान लीजिए कि x3 में उच्चतम मान है जैसे 0.956। फिर अपने सरणी से इस कॉलम को हटाएं और सभी चरणों को दोहराएं।

X_opt = X[:,[0,1,3,4]] 
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit() 
regressor_OLS.summary() 

इन विधियों को तब तक दोहराएं जब तक कि आप उन सभी कॉलम को हटा दें जिनके पास महत्व मान (उदा। 0.05) से अधिक मूल्य है। अंत में आपके चर X_opt में सभी इष्टतम वेरिएबल्स होंगे जो पी मानों के महत्व के स्तर से कम होंगे।

0

मॉडल के आधार पर आप अग्रेषित पिछड़ा चयन कर सकते हैं, जैसा कि in this answer दिखाया गया है।

हालांकि, this answer बताता है कि आपको पहले स्थान पर अर्थेट्रिक मॉडल के लिए चरणबद्ध चयन का उपयोग क्यों नहीं करना चाहिए।