आर में लॉजिस्टिक विकास घटता फिट करने के लिए सबसे दर्दनाक तरीका क्या है?


19

यह Google के लिए कुछ अन्य चीजों जितना आसान नहीं है, स्पष्ट होने के लिए, मैं श्रेणीबद्ध चर की भविष्यवाणी करने के लिए प्रतिगमन का उपयोग करने के अर्थ में लॉजिस्टिक प्रतिगमन के बारे में बात नहीं कर रहा हूं।

मैं दिए गए डेटा पॉइंट्स को लॉजिस्टिक ग्रोथ कर्व फिट करने की बात कर रहा हूं। विशिष्ट होना करने के लिए, 1958 से 2012 तक एक दिए गए वर्ष है और y वैश्विक सीओ 2 पीपीएम का अनुमान (कार्बन डाइऑक्साइड की प्रति दस लाख भागों) की वर्ष नवंबर में है एक्सएक्सyएक्स

अभी इसमें तेजी आ रही है लेकिन कुछ बिंदु पर यह बंद हो गया है। इसलिए मुझे लॉजिस्टिक कर्व चाहिए।

मुझे अभी तक ऐसा करने का अपेक्षाकृत सीधा रास्ता नहीं मिला है।


3
लॉजिस्टिक कर्व एकमात्र ऐसा वक्र नहीं है जो 'लेवल ऑफ' हो। वास्तव में किसी भी निरंतर cdf के कई उस आवश्यकता को पूरा करेगा।
Glen_b -Reinstate Monica

2
पैकेज ग्रोफ़िट का उपयोग करें, तख़्ता और विकास घटता का उपयोग करें।

निक, आपके कोड को पॉज़िट करने के लिए बहुत-बहुत धन्यवाद, मैं बस सोच रहा था कि इसे समीकरण के रूप में कैसे लिखा जाए? कोड में C, a और K किस मापदंडों को संदर्भित करते हैं?

1
मुझे लगता है कि आप मुझे @ user2581681 पर ले जा रहे हैं। मैंने बस उनका जवाब संपादित किया।
निक कॉक्स

जवाबों:


19

nls()समारोह देखें । इसमें सेल्फ स्टार्टिंग लॉजिस्टिक कर्व मॉडल फंक्शन है SSlogis()। से उदाहरण के लिए ?nlsसहायता पृष्ठ

> library("nls")
> DNase1 <- subset(DNase, Run == 1)
>      
> ## using a selfStart model
> fm1DNase1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal), 
+                  DNase1)

मेरा सुझाव है कि आप इन कार्यों के लिए सहायता पृष्ठ पढ़ें और यदि संभव हो तो लिंक किए गए संदर्भों को और अधिक जानने के लिए।


9

थोड़ी देर पहले मेरा भी यही सवाल था। यह है जो मैंने पाया:

फॉक्स और वीज़बर्ग ने नेल्स फंक्शन (गेविन द्वारा उल्लिखित स्व-शुरुआती विकल्प के साथ और बिना दोनों) का उपयोग करते हुए एक शानदार पूरक लेख लिखा। इसे यहां पर देख जा सकता है:

http://socserv.mcmaster.ca/jfox/Books/Companion/appendix/Appendix-Nonlinear-Regression.pdf

उस लेख से, मैंने अपने वर्ग के लिए एक फ़ंक्शन लिखने का उपयोग करते हुए लिखा कि जब उनके डेटा के लिए एक तार्किक वक्र फिटिंग हो:

###Log fit - be sure to use quotes around the variable names in the call
log.fit <- function(dep, ind, yourdata){
#Self-starting...

y <- yourdata[, dep]
x <- yourdata[, ind]

log.ss <- nls(y ~ SSlogis(x, phi1, phi2, phi3))

#C
C <- summary(log.ss)$coef[1]
#a
A <- exp((summary(log.ss)$coef[2]) * (1/summary(log.ss)$coef[3]))
#k
K <- (1 / summary(log.ss)$coef[3])

plot(y ~ x, main = "Logistic Function", xlab=ind, ylab=dep)
lines(0:max(x), predict(log.ss, data.frame(x=0:max(x))), col="red")

r1 <- sum((x - mean(x))^2)
r2 <- sum(residuals(log.ss)^2)

r_sq <- (r1 - r2) / r1

out <- data.frame(cbind(c(C=C, a=A, k=K, R.value=sqrt(r_sq))))
names(out)[1] <- "Logistic Curve"

return(out)
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.