Skip to content

Commit

Permalink
Embedded new nonparametric model to survivors
Browse files Browse the repository at this point in the history
  • Loading branch information
iuliivasilev committed Jun 23, 2024
1 parent 1234417 commit c0a8aa2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
15 changes: 15 additions & 0 deletions survivors/external/leaf_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,21 @@ def fit(self, *args, **kwargs):
self.weights = np.ones_like(self.lists[cnt.TIME_NAME])


class StableLeafModel(NonparamLeafModel):
def fit(self, *args, **kwargs):
super().fit(*args, **kwargs)

durs = np.random.normal(np.median(self.lists[cnt.TIME_NAME]),
np.std(self.lists[cnt.TIME_NAME]) / np.sqrt(2), 10000)
events = np.random.choice(self.lists[cnt.CENS_NAME], size=10000, replace=True)
durs = np.hstack([self.lists[cnt.TIME_NAME], durs])
events = np.hstack([self.lists[cnt.CENS_NAME], events])

self.lists[cnt.CENS_NAME] = events[durs > 0]
self.lists[cnt.TIME_NAME] = durs[durs > 0]
self.weights = np.ones_like(self.lists[cnt.TIME_NAME])


class MeaningLeafModel(NonparamLeafModel):
def fit(self, *args, **kwargs):
super().fit(*args, **kwargs)
Expand Down
8 changes: 7 additions & 1 deletion survivors/external/nonparametric.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import numpy as np
from scipy.stats import norm
from .leaf_model import NonparamLeafModel, MixLeafModel, NormalizedLeafModel, MeaningLeafModel
from .leaf_model import NonparamLeafModel, MixLeafModel, NormalizedLeafModel, MeaningLeafModel, StableLeafModel
from lifelines import KaplanMeierFitter, NelsonAalenFitter


Expand Down Expand Up @@ -193,6 +193,11 @@ class BaseNormalizedLeafModel(NormalizedLeafModel):
hazard_class = NelsonAalen


class StableLeafModel(StableLeafModel):
survival_class = KaplanMeierZeroAfter
hazard_class = NelsonAalen


class BaseMeaningLeafModel(MeaningLeafModel):
survival_class = KaplanMeierZeroAfter
hazard_class = NelsonAalen
Expand All @@ -214,6 +219,7 @@ class BaseLeafModeLL(NonparamLeafModel):
"only_hazard": BaseLeafModelOnlyHazard,
"only_survive": BaseLeafModelOnlySurv,
"base_zero_after": BaseNormalizedLeafModel,
"stable_zero_after": StableLeafModel,
"base_normal": BaseNormalizedLeafModel,
"base_meaning": BaseMeaningLeafModel,
"base_mix": BaseMixLeafModel
Expand Down

0 comments on commit c0a8aa2

Please sign in to comment.