Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与cox回归风险模型类似,我们可以使用survivalsvm获得生存曲线和风险比吗?_R_Machine Learning_Svm_Survival Analysis_Hazard - Fatal编程技术网

与cox回归风险模型类似,我们可以使用survivalsvm获得生存曲线和风险比吗?

与cox回归风险模型类似,我们可以使用survivalsvm获得生存曲线和风险比吗?,r,machine-learning,svm,survival-analysis,hazard,R,Machine Learning,Svm,Survival Analysis,Hazard,我是一个初学者,试图使用机器学习对肺癌数据集进行生存分析。我知道如何使用Cox比例风险模型进行生存分析。Cox比例风险模型为我们提供了风险比,它只是回归系数的指数。我想知道,我们是否可以用机器学习做同样的事情。作为初学者,我正在尝试使用R语言编写survivalsvm。请看下面的例子。我使用内置的癌症数据进行生存分析。以下是R代码,在此处给出 库(生存) 图书馆(survivalsvm) 种子集(123) n这个问题现在有点老了,但我还是要回答,因为这是一个难题,当我第一次使用它时,我与{sur

我是一个初学者,试图使用机器学习对肺癌数据集进行生存分析。我知道如何使用Cox比例风险模型进行生存分析。Cox比例风险模型为我们提供了风险比,它只是回归系数的指数。我想知道,我们是否可以用机器学习做同样的事情。作为初学者,我正在尝试使用R语言编写
survivalsvm
。请看下面的例子。我使用内置的癌症数据进行生存分析。以下是R代码,在此处给出

库(生存)
图书馆(survivalsvm)
种子集(123)

n这个问题现在有点老了,但我还是要回答,因为这是一个难题,当我第一次使用它时,我与{survivalsvm}进行了斗争

因此,根据
类型
参数,您可以得到不同的输出。在您的案例中,
type=“regression”
表示您正在绘制Shivasway(希望我拼写正确)SVCR,它预测事件发生之前的时间,因此这些是生存时间预测

为了将其转换为生存曲线,您必须对生存分布的形状进行一些假设。例如,假设你认为生存时间是正态分布的
N(mu,sigma)
。然后,您可以使用预测的生存时间作为
mu
,并预测或假设
sigma

下面是一个使用您的代码和我的{Distribut6}包的示例,它可以快速计算许多发行版以及打印和打印函数:

library(survival)
library(survivalsvm)
set.seed(123)
n <- nrow(veteran)
train.index <- sample(1:n, 0.7 * n, replace = FALSE)
test.index <- setdiff(1:n, train.index)
survsvm.reg <- survivalsvm(Surv(diagtime, status) ~ ., 
                           subset = train.index, data = veteran,
                           type = "regression", gamma.mu = 1,
                           opt.meth = "quadprog", kernel = "add_kernel")
print(survsvm.reg)
pred.survsvm.reg <- predict(object = survsvm.reg,
                            newdata = veteran, subset = test.index)


# load distr6
library(distr6)

# create a vector of normal distributions each with
# mean as the predicted time and with variance 1
# `decorators = "ExoticStatistics"` adds survival function
v = VectorDistribution$new(distribution = "Normal",
                       params = data.frame(mean = as.numeric(pred.survsvm.reg$predicted)),
                       shared_params = list(var = 1),
                       decorators = "ExoticStatistics")
# survival function evaluated at times = 1:10
v$survival(1:10)
# plot survival function for first individual
plot(v[1], fun = "survival")
# plot hazard function for first individual
plot(v[1], fun = "hazard")
库(生存)
图书馆(survivalsvm)
种子集(123)

n这个问题现在有点老了,但我还是要回答,因为这是一个难题,当我第一次使用它时,我与{survivalsvm}进行了斗争

因此,根据
类型
参数,您可以得到不同的输出。在您的案例中,
type=“regression”
表示您正在绘制Shivasway(希望我拼写正确)SVCR,它预测事件发生之前的时间,因此这些是生存时间预测

为了将其转换为生存曲线,您必须对生存分布的形状进行一些假设。例如,假设你认为生存时间是正态分布的
N(mu,sigma)
。然后,您可以使用预测的生存时间作为
mu
,并预测或假设
sigma

下面是一个使用您的代码和我的{Distribut6}包的示例,它可以快速计算许多发行版以及打印和打印函数:

library(survival)
library(survivalsvm)
set.seed(123)
n <- nrow(veteran)
train.index <- sample(1:n, 0.7 * n, replace = FALSE)
test.index <- setdiff(1:n, train.index)
survsvm.reg <- survivalsvm(Surv(diagtime, status) ~ ., 
                           subset = train.index, data = veteran,
                           type = "regression", gamma.mu = 1,
                           opt.meth = "quadprog", kernel = "add_kernel")
print(survsvm.reg)
pred.survsvm.reg <- predict(object = survsvm.reg,
                            newdata = veteran, subset = test.index)


# load distr6
library(distr6)

# create a vector of normal distributions each with
# mean as the predicted time and with variance 1
# `decorators = "ExoticStatistics"` adds survival function
v = VectorDistribution$new(distribution = "Normal",
                       params = data.frame(mean = as.numeric(pred.survsvm.reg$predicted)),
                       shared_params = list(var = 1),
                       decorators = "ExoticStatistics")
# survival function evaluated at times = 1:10
v$survival(1:10)
# plot survival function for first individual
plot(v[1], fun = "survival")
# plot hazard function for first individual
plot(v[1], fun = "hazard")
库(生存)
图书馆(survivalsvm)
种子集(123)
N