Weibull मॉडल फिट करना

Python में Survival Analysis

Shae Wang

Senior Data Scientist

प्रायिकता वितरण

एक प्रायिकता वितरण

एक गणितीय फंक्शन जो अलग-अलग परिणामों की प्रायिकता बताता है।

normal distribution

Python में Survival Analysis

פרायिकता वितरण

एक प्रायिकता वितरण

एक गणितीय फंक्शन जो अलग-अलग परिणामों की प्रायिकता बताता है。

uniform distribution

Python में Survival Analysis

Weibull वितरण परिचय

Weibull वितरण

एक सतत प्रायिकता वितरण, जो time-to-event डेटा को अच्छी तरह मॉडल करता है (मूलतः कण आकार वितरण के लिए प्रयुक्त)।

Weibull प्रायिकता घनत्व फंक्शन

$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k}$$ $$x\geq0,k>0,\lambda>0$$

Python में Survival Analysis

Weibull वितरण परिचय

$k$

आकार निर्धारित करता है

varying_k

$\lambda$

स्केल निर्धारित करता है

varying_lambda

Python में Survival Analysis

डेटा पर Weibull वितरण फिट करना

एक कंपनी ऐसी मशीनों का बेड़ा चलाती है जिनमें फेल होने की प्रवृत्ति है...

machine_failure_histogram

Python में Survival Analysis

डेटा पर Weibull वितरण फिट करना

एक कंपनी ऐसी मशीनों का बेड़ा चलाती है जिनमें फेल होने की प्रवृत्ति है...

machine_failure_weibull

Python में Survival Analysis

Weibull से survival फंक्शन तक

$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k} \quad\rightarrow\quad\qquad\qquad S(t)=e^{-(t/\lambda)^\rho}$$

weibull_to_survival_function

$\rho$ k के बराबर है

Python में Survival Analysis

नॉब्स: k और lambda

k और $\lambda$
  • k (या $\rho$): आकार निर्धारित करता है
  • $\lambda$: स्केल निर्धारित करता है (जब 63.2% आबादी में घटना घट चुकी हो)

$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k} \quad\rightarrow\quad f(x;\lambda,k=3)=\frac{3}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^2e^{-(x/\lambda)^3}$$

  • Weibull वितरण: फेल/इवेंट रेट समय की किसी घात के अनुपाती होता है।
Python में Survival Analysis

k (या $\rho$) की व्याख्या

k<1, event rate decreases

  • जब $k<1$, फेल/इवेंट रेट समय के साथ घटता है।
Python में Survival Analysis

k (या $\rho$) की व्याख्या

k=1, event rate constant

  • जब $k=1$, फेल/इवेंट रेट समय के साथ स्थिर रहता है।
Python में Survival Analysis

k (या $\rho$) की व्याख्या

k>1, event rate increases

  • जब $k>1$, फेल/इवेंट रेट समय के साथ बढ़ता है।
Python में Survival Analysis

Weibull वितरण के साथ survival विश्लेषण

  1. WeibullFitter क्लास इम्पोर्ट करें
    from lifelines import WeibullFitter
    
  2. WeibullFitter क्लास का ऑब्जेक्ट बनाएँ
    wb = WeibullFitter()
    
  3. एस्टीमेटर को डेटा पर फिट करने के लिए .fit() कॉल करें
    wb.fit(durations, event_observed)
    
  4. .survival_function_, .lambda_, .rho_, .summary, .predict() एक्सेस करें
Python में Survival Analysis

Weibull मॉडल उदाहरण

DataFrame का नाम: mortgage_df

id duration paid_off
1 25 0
2 17 1
3 5 0
... ... ...
1000 30 1
from lifelines import WeibullFitter
wb = WeibullFitter()
wb.fit(durations=mortgage_df["duration"],
       event_observed=mortgage_df["paid_off"])
Python में Survival Analysis

Weibull मॉडल उदाहरण

wb.survival_function_.plot()
plt.show()

उदाहरण Weibull survival कर्व

print(wb.lambda_, wb.rho_)
6.11  0.94
print(wb.predict(20))
0.05
Python में Survival Analysis

अभ्यास करते हैं!

Python में Survival Analysis

Preparing Video For Download...