Predicted values from a fitted Akritas estimator.
(akritas(1)
)
Object of class inheriting from "akritas"
.
(data.frame(1))
Testing data of data.frame
like object, internally is coerced with stats::model.matrix()
.
If missing then training data from fitted object is used.
(numeric())
Times at which to evaluate the estimator. If NULL
(default) then evaluated at all unique times
in the training set.
(numeric(1)
)
Bandwidth parameter for uniform smoothing kernel in nearest neighbours estimation.
The default value of 0.5
is arbitrary and should be chosen by the user.
(character(1)
)
Type of predicted value. Choices are survival probabilities over all time-points in training
data ("survival"
) or a relative risk ranking ("risk"
), which is the sum of the predicted
cumulative hazard function so higher rank implies higher risk of event, or both ("all"
).
(logical(1)
)
If FALSE
(default) and type
is "survival"
or "all"
returns matrix of survival
probabilities, otherwise returns a distr6::Matdist()
.
(numeric(1))
Number of unique time-points in the training set, default is 150.
(numeric(1))
Number of decimal places to round time-points to, default is 2, set to FALSE
for no rounding.
ANY
Currently ignored.
A numeric
if type = "risk"
, a distr6::Matdist()
(if distr6 = TRUE
)
and type = "survival"
; a matrix
if (distr6 = FALSE
) and type = "survival"
where
entries are survival probabilities with rows of observations and columns are time-points;
or a list combining above if type = "all"
.
This implementation uses a fit/predict interface to allow estimation on unseen data after fitting on training data. This is achieved by fitting the empirical CDF on the training data and applying this to the new data.
Akritas, M. G. (1994). Nearest Neighbor Estimation of a Bivariate Distribution Under Random Censoring. Ann. Statist., 22(3), 1299–1327. doi:10.1214/aos/1176325630
if (requireNamespaces(c("distr6", "survival"))) {
library(survival)
train <- 1:10
test <- 11:20
fit <- akritas(Surv(time, status) ~ ., data = rats[train, ])
predict(fit, newdata = rats[test, ])
# when lambda = 1, identical to Kaplan-Meier
fit <- akritas(Surv(time, status) ~ ., data = rats[1:100, ])
predict_akritas <- predict(fit, newdata = rats[1:100, ], lambda = 1)[1, ]
predict_km <- survfit(Surv(time, status) ~ 1, data = rats[1:100, ])$surv
all(predict_akritas == predict_km)
# Use distr6 = TRUE to return a distribution
predict_distr <- predict(fit, newdata = rats[test, ], distr6 = TRUE)
predict_distr$survival(100)
# Return a relative risk ranking with type = "risk"
predict(fit, newdata = rats[test, ], type = "risk")
# Or survival probabilities and a rank
predict(fit, newdata = rats[test, ], type = "all", distr6 = TRUE)
}
#> $surv
#> Matdist(10x38)
#>
#> $risk
#> [1] 3.011104 3.011104 3.011104 3.011104 3.011104 2.786911 2.903377 2.903377
#> [9] 2.903377 3.011104
#>