मुझे आज मेरे आर कोड में एक अजीब व्यवहार का एहसास हुआ। मैंने एक पैकेज {boot.StepAIC} की कोशिश की जिसमें एआईसी के साथ चरणबद्ध प्रतिगमन के परिणामों के लिए बूटस्ट्रैप फ़ंक्शन शामिल है। हालांकि मुझे नहीं लगता कि सांख्यिकीय पृष्ठभूमि यहां समस्या है (मुझे उम्मीद है)।
मैं आर के शीर्ष स्तर पर फ़ंक्शन का उपयोग कर सकता हूं। यह मेरा उदाहरण कोड है।फ़ंक्शन काम करता है (boot.stepAIC) लेकिन किसी अन्य फ़ंक्शन - पर्यावरण समस्या के अंदर कोई त्रुटि फेंकता है?
require(MASS)
require(boot.StepAIC)
n<-100
x<-rnorm(n); y<-rnorm(n,sd=2); z<-rnorm(n,sd=3); res<-x+y+z+rnorm(n,sd=0.1)
dat.test<-as.data.frame(cbind(x,y,z,res))
form.1<-as.formula(res~x+y+z)
boot.stepAIC(lm(form.1, dat.test),dat.test) # should be OK - works at me
हालांकि, मैं इसे अपने स्वयं के कार्य में लपेटना चाहता था। मैं उस समारोह में डेटा और सूत्र पास करता हूं। लेकिन मैं() boot.stepAIC भीतर कोई त्रुटि मिलती है कह रही:
मॉडल फिट strsplit में 100 बूटस्ट्रैप नमूने त्रुटि में विफल रहा है (nam.vars, ":"): गैर चरित्र तर्क
# custom function
fun.boot.lm.stepAIC<-function(dat,form) {
if(!inherits(form, "formula")) stop("No formula given")
fit.lm<-lm(formula=form,data=dat)
return(boot.stepAIC(object=fit.lm,data=dat))
}
fun.boot.lm.stepAIC(dat=dat.test,form=form.1)
# results in an error
तो गलती कहां है? मुझे लगता है कि स्थानीय और वैश्विक पर्यावरण के साथ इसका कुछ संबंध होना चाहिए, है ना?
मैं उपयोग नहीं किया है 'boot.stepAIC' से पहले, लेकिन संदेह है कि यह भी कैसे सूत्र समारोह में पारित किया जा रहा है (जो पर्यावरण के मुद्दों से भी संबंधित है) के साथ क्या करना पड़ सकता है। कुछ विचारों के लिए http://stackoverflow.com/q/6877534, http://stackoverflow.com/q/7666807 देखें। विशेष रूप से, 'do.call' के माध्यम से 'lm' या' boot.stepAIC' को कॉल करने में सहायता मिल सकती है, तब तर्कों का मूल्यांकन करने से पहले मूल्यांकन किया जाता है। आप टिप्पणियों में' as.name' सुझाव की भी जांच कर सकते हैं। ये मुद्दे मुश्किल हैं - शुभकामनाएँ! – Aaron
http://stackoverflow.com/q/8998884/210673 भी एक ही समस्या दिखता है। – Aaron
हां। मैंने पहले से ही इसे पढ़ा है। मुझे लगता है कि मुद्दे जुड़े हुए हैं। – Sebastian