मैं आरएल का उपयोग करके GLM के लिए एक तंदुरुस्त करने की कोशिश कर रहा हूं। एक बार जब मैं तंदुरुस्त हो जाता हूं, तो मैं अपने परिणामी मॉडल को लेने और एक एक्सेल वर्कबुक में मॉडलिंग फ़ाइल बनाने में सक्षम होना चाहता हूं।
उदाहरण के लिए, मान लें कि मेरे पास एक डेटा सेट है जहां y x का एक यादृच्छिक कार्य है और ढलान अचानक एक विशिष्ट बिंदु पर बदलता है (इस मामले में @ x = 500)।
set.seed(1066)
x<- 1:1000
y<- rep(0,1000)
y[1:500]<- pmax(x[1:500]+(runif(500)-.5)*67*500/pmax(x[1:500],100),0.01)
y[501:1000]<-500+x[501:1000]^1.05*(runif(500)-.5)/7.5
df<-as.data.frame(cbind(x,y))
plot(df)
मैं अब इस का उपयोग कर फिट
library(splines)
spline1 <- glm(y~ns(x,knots=c(500)),data=df,family=Gamma(link="log"))
और मेरे परिणाम दिखाते हैं
summary(spline1)
Call:
glm(formula = y ~ ns(x, knots = c(500)), family = Gamma(link = "log"),
data = df)
Deviance Residuals:
Min 1Q Median 3Q Max
-4.0849 -0.1124 -0.0111 0.0988 1.1346
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.17460 0.02994 139.43 <2e-16 ***
ns(x, knots = c(500))1 3.83042 0.06700 57.17 <2e-16 ***
ns(x, knots = c(500))2 0.71388 0.03644 19.59 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Gamma family taken to be 0.1108924)
Null deviance: 916.12 on 999 degrees of freedom
Residual deviance: 621.29 on 997 degrees of freedom
AIC: 13423
Number of Fisher Scoring iterations: 9
इस बिंदु पर, मैं r के भीतर पूर्वानुमान कार्य का उपयोग कर सकता हूं और पूरी तरह से स्वीकार्य उत्तर प्राप्त कर सकता हूं। समस्या यह है कि मैं एक्सेल में वर्कबुक बनाने के लिए मॉडल परिणामों का उपयोग करना चाहता हूं।
भविष्यवाणी फ़ंक्शन की मेरी समझ यह है कि एक नया "x" मान दिया गया है, उस नए x को उचित स्पलाइन फ़ंक्शन में प्लग करता है (या तो 500 से ऊपर मानों के लिए फ़ंक्शन या 500 से नीचे के मानों के लिए फ़ंक्शन), फिर यह उस परिणाम को ले जाता है और गुणा करता है यह उपयुक्त गुणांक से और उस बिंदु से इसे किसी अन्य मॉडल शब्द की तरह मानता है। मुझे ये स्पलाइन फ़ंक्शंस कैसे मिलेंगे?
(नोट: मुझे एहसास है कि लॉग-लिंक्ड गामा GLM प्रदान किए गए डेटा सेट के लिए उपयुक्त नहीं हो सकता है। मैं GLMs को कैसे या कब फिट करना है, इसके बारे में नहीं पूछ रहा हूं। मैं उस सेट को प्रतिलिपि प्रस्तुत करने योग्य प्रयोजनों के लिए एक उदाहरण के रूप में प्रदान कर रहा हूं।)
rm(list=ls())
) को हटा देता है , विशेष रूप से बिना किसी चेतावनी के। किसी सकता है अपने कोड आर का एक खुला सत्र में जहां वे पहले से ही कुछ चर (लेकिन कोई भी कहा जाता है कॉपी-पेस्टx
,y
,df
याspline1
) और याद आती है कि अपने कोड को अपने काम का सफाया। क्या उनके लिए ऐसा करना गूंगा है? हाँ। लेकिन यह अभी भी विनम्र है कि उन्हें निर्णय लेने दें कि कब अपने स्वयं के चर को हटाना है।