first link you provided वास्तव में एक सुंदर उदाहरण के साथ, यह कैसे काम करता है इस सिद्धांत पर स्पष्ट स्पष्टीकरण है। (इसके लिए धन्यवाद, यह एक अच्छा संसाधन है जिसका उपयोग मैं अपने काम में करूँगा।)
curve
फ़ंक्शन का उपयोग करने के लिए, आपको कुछ फ़ंक्शन को तर्क के रूप में पास करने की आवश्यकता होगी। यह सच है कि *weibull
फ़ंक्शन का परिवार survreg
से वेबुल के लिए एक अलग पैरामीटरकरण का उपयोग करता है, लेकिन इसे आपके पहले लिंक को समझाया गया है, लेकिन इसे आसानी से बदला जा सकता है। इसके अलावा, survreg
में प्रलेखन से:
वीबुल वितरण को पैरामीटर करने के कई तरीके हैं। बचे हुए फ़ंक्शन इसे सामान्य स्थान-पैमाने पर पारिवारिक रूप में चित्रित करता है, जो कि रिवेबल फ़ंक्शन की तुलना में अलग पैरामीटरकरण है, और अक्सर भ्रम के लिए की ओर जाता है।
survreg's scale = 1/(rweibull shape)
survreg's intercept = log(rweibull scale)
यहाँ इतना आसान परिवर्तन के एक कार्यान्वयन है:
# The parameters
intercept<-4.0961
scale<-1.15
par(mfrow=c(1,2),mar=c(5.1,5.1,4.1,2.1)) # Make room for the hat.
# S(t), the survival function
curve(pweibull(x, scale=exp(intercept), shape=1/scale, lower.tail=FALSE),
from=0, to=100, col='red', lwd=2, ylab=expression(hat(S)(t)), xlab='t',bty='n',ylim=c(0,1))
# h(t), the hazard function
curve(dweibull(x, scale=exp(intercept), shape=1/scale)
/pweibull(x, scale=exp(intercept), shape=1/scale, lower.tail=FALSE),
from=0, to=100, col='blue', lwd=2, ylab=expression(hat(h)(t)), xlab='t',bty='n')
par(mfrow=c(1,1),mar=c(5.1,4.1,4.1,2.1))
मैं, समझते हैं कि आप अपने जवाब है कि आप pweibull
फ़ंक्शन का उपयोग नहीं करना चाहता था में उल्लेख किया है, लेकिन मुझे लगता है कि आप इसका उपयोग नहीं करना चाहते थे क्योंकि यह एक अलग पैरामीटरकरण का उपयोग करता है। अन्यथा, आप बस pweibull
का उपयोग करता है के अपने स्वयं के संस्करण लिख सकता है कि survreg
के parameterization:
my.weibull.surv<-function(x,intercept,scale) pweibull(x,scale=exp(intercept),shape=1/scale,lower.tail=FALSE)
my.weibull.haz<-function(x,intercept,scale) dweibull(x, scale=exp(intercept), shape=1/scale)/pweibull(x,scale=exp(intercept),shape=1/scale,lower.tail=FALSE)
curve(my.weibull.surv(x,intercept,scale),1,100,lwd=2,col='red',ylim=c(0,1),bty='n')
curve(my.weibull.haz(x,intercept,scale),1,100,lwd=2,col='blue',bty='n')
मैं टिप्पणी में उल्लेख किया है, मैं आपने ऐसा क्यों होता है पता नहीं है (जब तक यह है होमवर्क), लेकिन आप pweibull
और dweibull
handcode सकता है अगर आप की तरह:
my.dweibull <- function(x,shape,scale) (shape/scale) * (x/scale)^(shape-1) * exp(- (x/scale)^shape)
my.pweibull <- function(x,shape,scale) exp(- (x/scale)^shape)
उन परिभाषाओं ?dweibull
से बाहर सीधे आते हैं। अब pweibull
और dweibull
के बजाय बस उन, धीमे, अवांछित कार्यों को लपेटें।
से अधिक आपके विस्तृत ईमेल के लिए केएस लेकिन मैं किसी भी * * Weibull' फ़ंक्शन का उपयोग नहीं करना चाहता हूं। क्या 'इंटरसेप्ट', 'आयु (+ अन्य कॉवरिएट्स)', और 'स्केल' के कार्य के रूप में खतरे को व्यक्त करना संभव है? –
एचएम, शायद आप मेरे अंतिम पैराग्राफ को याद करते हैं, जहां मैं आपको एक फ़ंक्शन लिखने के लिए दिखाता हूं जो कि 'pweibull' का एक रैपर है। मुझे नहीं पता कि आप 'pweibull' को फिर से लिखना क्यों चाहते हैं, क्योंकि इसे सी में कोड किया गया है, और यह बहुत तेज और अच्छी तरह से परीक्षण किया गया है। जब तक यह सिर्फ होमवर्क नहीं है। वैसे भी, मैं आपको दिखाता हूं कि 'pweibull' और' dweibull' को कैसे संभालें। – nograpes
मुझे लगता है कि ओपी आर आउटपुट और खतरे/अस्तित्व समारोह के बीच गणित कनेक्शन को याद करता है – ECII