इस मामले में, मेरा मानना है कि यदि हम अपने अस्तित्व विश्लेषण टोपी पर रखते हैं, तो समाधान का मार्ग मौजूद है। ध्यान दें कि भले ही इस मॉडल में सेंसर किए गए विषय नहीं हैं (पारंपरिक अर्थों में), हम अभी भी अस्तित्व विश्लेषण का उपयोग कर सकते हैं और विषयों के खतरों के बारे में बात कर सकते हैं।
हमें इस क्रम में तीन चीजों को मॉडल करने की आवश्यकता है: i) संचयी खतरा, ii) खतरा, iii) लॉग संभावना।
i) हम चरणों में भाग i) करेंगे। पॉसों के यादृच्छिक चर का संचयी खतरा, क्या है ? असतत वितरण के लिए, it but को परिभाषित करने के दो तरीके हैं, लेकिन हम परिभाषा । तो लिए संचयी खतरा हैएच( टी )एच( t ) = - लॉगएस( टी )टी∼ पीओ मैं ( λ )
एचटी( t ) = - लॉग( 1 - क्यू ( टी , λ ) ) =-लॉगपी( टी , λ )
जहां क्रमशः ऊपरी, निचला नियमित गामा कार्य है।क्यू , पी
अब हम बाहर चल रहे बीमा के "खतरों" को जोड़ना चाहते हैं। संचयी खतरों के बारे में अच्छी बात यह है कि वे योगात्मक हैं, इसलिए हमें 7, 14, 21: समय पर "जोखिम" जोड़ना होगा।
एचटी'( t ) = - लॉगपी( टी , λ ) +एक⋅1( t > 7 )+ b ⋅1( t > 14 )+ सी ⋅1(t > 21 )
स्वाभाविक रूप से, एक रोगी पृष्ठभूमि "पॉइसन" जोखिम के अधीन है, और फिर 7, 14 और 21 पर बिंदु-वार जोखिम है। (क्योंकि यह एक संचयी खतरा है, हम उन बिंदु-वार जोखिमों को जमा करते हैं, इसलिए )। पता नहीं और हैं, लेकिन हम बाद में उन्हें बीमा की हमारी संभावनाओं से जोड़ देंगे।>ए , बीसी
दरअसल, जब से हम जानते हैं कि 21 ऊपरी सीमा है और उसके बाद सभी रोगियों को हटा दिया जाता है, हम को अनंत होने के लिए निर्धारित कर सकते हैं ।सी
एचटी'( t ) = - लॉगपी( टी , λ ) +एक⋅1( t > 7 )+ b ⋅1( t > 14 )+ ∞ ⋅1( t > 21 )
ii) आगे हम खतरों को प्राप्त करने के लिए संचयी खतरे का उपयोग करते हैं, । इसके लिए सूत्र है:ज ( टी )
h ( t ) = 1 - ऍक्स्प( एच( t ) - एच( t + 1 ) )
हमारे संचयी खतरे में प्लगिंग, और सरलीकरण:
जटी'( t ) = 1 -पी( t + 1 , λ )पी( टी , λ )exp- ( ए ⋅1( t = 7 )- बी ⋅1( t = 14 )- ∞ ⋅1( t = 21 ))
iii) अंत में, उत्तरजीविता मॉडल (बिना सेंसर किए) के लिए लॉग लाइबिलिटी लिखना एक बार सुपर आसान है, क्योंकि हमारे पास खतरा और कमज़ोर खतरा है:
एल एल ( λ , ए , बी|t ) =Σमैं = १एन( लॉगज (टीमैं) - एच(टीमैं) )
और वहाँ यह है!
ऐसे रिश्ते मौजूद हैं जो हमारे बिंदु-वार खतरे के गुणांक और बीमा लंबाई की संभावनाओं को जोड़ते हैं: ।a = - लॉग( 1 -पीए) , बी = - लॉग( 1 -पीए-पीख) - लॉग( 1 -पीए) ,पीसी= 1 - (पीए+पीख)
साक्ष्य पुडिंग में है। आइए जीवन रेखा के कस्टम मॉडल शब्दार्थ का उपयोग करके कुछ सिमुलेशन और निष्कर्ष निकालें।
from lifelines.fitters import ParametericUnivariateFitter
from autograd_gamma import gammaincln, gammainc
from autograd import numpy as np
MAX = 1e10
class InsuranceDischargeModel(ParametericUnivariateFitter):
"""
parameters are related by
a = -log(1 - p_a)
b = -log(1 - p_a - p_b) - log(1 - p_a)
p_c = 1 - (p_a + p_b)
"""
_fitted_parameter_names = ["lbd", "a", "b"]
_bounds = [(0, None), (0, None), (0, None)]
def _hazard(self, params, t):
# from (1.64c) in http://geb.uni-giessen.de/geb/volltexte/2014/10793/pdf/RinneHorst_hazardrate_2014.pdf
return 1 - np.exp(self._cumulative_hazard(params, t) - self._cumulative_hazard(params, t+1))
def _cumulative_hazard(self, params, t):
lbd, a, b = params
return -gammaincln(t, lbd) + a * (t > 7) + b * (t > 14) + MAX * (t > 21)
def gen_data():
p_a, p_b = 0.4, 0.2
p = [p_a, p_b, 1 - p_a - p_b]
lambda_ = 18
death_without_insurance = np.random.poisson(lambda_)
insurance_covers_until = np.random.choice([7, 14, 21], p=p)
if death_without_insurance < insurance_covers_until:
return death_without_insurance
else:
return insurance_covers_until
durations = np.array([gen_data() for _ in range(40000)])
model = InsuranceDischargeModel()
model.fit(durations)
model.print_summary(5)
"""
<lifelines.InsuranceDischargeModel: fitted with 40000 observations, 0 censored>
number of subjects = 40000
number of events = 40000
log-likelihood = -78845.10392
hypothesis = lbd != 1, a != 1, b != 1
---
coef se(coef) lower 0.95 upper 0.95 p -log2(p)
lbd 18.05026 0.03353 17.98455 18.11598 <5e-06 inf
a 0.50993 0.00409 0.50191 0.51794 <5e-06 inf
b 0.40777 0.00557 0.39686 0.41868 <5e-06 inf
"""
Section धारा 1.2 यहाँ देखें