2015-10-24 4 views
8

जब एक आर में एक logit प्रतिगमन प्रदर्शन करती है, इसके बाद अनुकूलन एल्गोरिथ्म coefficients() समारोह के साथ कन्वर्ज्ड है (या नहीं) गुणांक प्राप्त करना संभव है:क्या glm function में अनुकूलन एल्गोरिदम के प्रत्येक चरण के लिए गुणांक प्राप्त करने का कोई तरीका है?

library(MASS) 
data(menarche) 
glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age, 
       family=binomial(logit), data=menarche) 
coefficients(glm.out) 
## (Intercept)   Age 
## -21.226395 1.631968 

वहाँ के प्रत्येक चरण के लिए गुणांक प्राप्त करने के लिए एक रास्ता है अनुकूलन एल्गोरिदम अपने चरणों का पता लगाने के लिए?

उत्तर

7

दिखाया मूल्य के साथ control= तर्क मुद्रित करने के लिए विचलन का कारण बनता है और trace बयान गुणांक मूल्यों मुद्रित करने के लिए कारण होगा:

trace(glm.fit, quote(print(coefold)), at = list(c(22, 4, 8, 4, 19, 3))) 
glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age, 
        family=binomial(logit), data=menarche, 
        control = glm.control(trace = TRUE)) 

उत्पादन इस तरह दिखेगा:

Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3 
NULL 
Deviance = 27.23412 Iterations - 1 
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3 
[1] -20.673652 1.589536 
Deviance = 26.7041 Iterations - 2 
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3 
[1] -21.206854 1.630468 
Deviance = 26.70345 Iterations - 3 
Tracing glm.fit(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, .... step 22,4,8,4,19,3 
[1] -21.226370 1.631966 
Deviance = 26.70345 Iterations - 4 

करने के लिए ट्रेस उपयोग को हटाएं:

untrace(glm.fit) 

ध्यान दें कि trace कॉल में, coefoldglm.fit स्रोत कोड में आंतरिक रूप से उपयोग किए जाने वाले चर का नाम है और उपयोग की गई संख्या स्रोत कोड में कथन संख्याओं का संदर्भ देती है और इसलिए glm.fit स्रोत परिवर्तनों में या तो बदला जा सकता है। मैं "आर संस्करण 3.2.2 पैच (2015-10-19 r69550)" का उपयोग कर रहा हूं।

संबंधित मुद्दे

 संबंधित मुद्दे