tick.survival.SimuCoxReg

class tick.survival.SimuCoxReg(coeffs: numpy.ndarray, features: numpy.ndarray = None, n_samples: int = 200, times_distribution: str = 'weibull', shape: float = 1.0, scale: float = 1.0, censoring_factor: float = 2.0, features_type: str = 'cov_toeplitz', cov_corr: float = 0.5, features_scaling: str = 'none', seed: int = None, verbose: bool = True, dtype='float64')[source]

Simulation of a Cox regression for proportional hazards

Parameters

coeffs : numpy.ndarray, shape=(n_coeffs,)

The array of coefficients of the model

features : numpy.ndarray, shape=(n_samples, n_features), default=`None`

The features matrix to use. If None, it is simulated

n_samples : int, default=200

Number of samples

times_distribution : str, default=”weibull”

The distrubution of times. Only "weibull" is implemented for now

scale : float, default=1.0

Scaling parameter to use in the distribution of times

shape : float, default=1.0

Shape parameter to use in the distribution of times

censoring_factor : float, default=2.0

Level of censoring. Increasing censoring_factor leads to less censored times and conversely.

features_type : str, default=”cov_toeplitz”

The type of features matrix to simulate

  • If "cov_toeplitz" : a Gaussian distribution with Toeplitz correlation matrix

  • If "cov_uniform" : a Gaussian distribution with correlation matrix given by O.5 * (U + U.T), where U is uniform on [0, 1] and diagonal filled with ones.

cov_corr : float, default=0.5

Correlation to use in the Toeplitz correlation matrix

features_scaling : str, default=”none”

The way the features matrix is scaled after simulation

  • If "standard" : the columns are centered and normalized

  • If "min-max" : remove the minimum and divide by max-min

  • If "norm" : the columns are normalized but not centered

  • If "none" : nothing is done to the features

seed : int, default=None

The seed of the random number generator. If None it is not seeded

verbose : bool, default=True

If True, print things

Attributes

features : numpy.ndarray, shape=(n_samples, n_features)

The simulated (or given) features matrix

times : numpy.ndarray, shape=(n_samples,)

Simulated times

censoring : numpy.ndarray, shape=(n_samples,)

Simulated censoring indicator, where censoring[i] == 1 indicates that the time of the i-th individual is a failure time, and where censoring[i] == 0 means that the time of the i-th individual is a censoring time

time_start : str

Start date of the simulation

time_elapsed : int

Duration of the simulation, in seconds

time_end : str

End date of the simulation

dtype : {'float64', 'float32'}, default=’float64’

Type of the generated arrays. Used in the case features is None

Notes

There is no intercept in this model

__init__(coeffs: numpy.ndarray, features: numpy.ndarray = None, n_samples: int = 200, times_distribution: str = 'weibull', shape: float = 1.0, scale: float = 1.0, censoring_factor: float = 2.0, features_type: str = 'cov_toeplitz', cov_corr: float = 0.5, features_scaling: str = 'none', seed: int = None, verbose: bool = True, dtype='float64')[source]

Initialize self. See help(type(self)) for accurate signature.

simulate()[source]

Launch simulation of the data

Returns

features : numpy.ndarray, shape=(n_samples, n_features)

The simulated (or given) features matrix

times : numpy.ndarray, shape=(n_samples,)

Simulated times

censoring : numpy.ndarray, shape=(n_samples,)

Simulated censoring indicator, where censoring[i] == 1 indicates that the time of the i-th individual is a failure time, and where censoring[i] == 0 means that the time of the i-th individual is a censoring time

Examples using tick.survival.SimuCoxReg