'For internal use'

def fitting_proc(self, group):

    t = group[:, self.endog].astype(float).astype(int)
    if (self.censoring == None):
        events = np.bincount(t)
        t = np.unique(t)
        events = events[:, list(t)]
        events = events.astype(float)
        eventsSum = np.cumsum(events)
        eventsSum = np.r_[(0, eventsSum)]
        n = (len(group) - eventsSum[:(-1)])
    else:
        censoring = group[:, self.censoring].astype(float).astype(int)
        reverseCensoring = ((-1) * (censoring - 1))
        events = np.bincount(t, censoring)
        censored = np.bincount(t, reverseCensoring)
        t = np.unique(t)
        censored = censored[:, list(t)]
        censored = censored.astype(float)
        censoredSum = np.cumsum(censored)
        censoredSum = np.r_[(0, censoredSum)]
        events = events[:, list(t)]
        events = events.astype(float)
        eventsSum = np.cumsum(events)
        eventsSum = np.r_[(0, eventsSum)]
        n = ((len(group) - eventsSum[:(-1)]) - censoredSum[:(-1)])
        self.censorings.append(censored)
    survival = np.cumprod((1 - (events / n)))
    var = ((survival * survival) * np.cumsum((events / (n * (n - events)))))
    se = np.sqrt(var)
    self.results.append(np.array([survival, se]))
    self.ts.append(t)
    self.event.append(events)
