Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
我如何使用带有R中生存包的AFT模型进行预测?_R_Prediction_Survival Analysis_Weibull - Fatal编程技术网

我如何使用带有R中生存包的AFT模型进行预测?

我如何使用带有R中生存包的AFT模型进行预测?,r,prediction,survival-analysis,weibull,R,Prediction,Survival Analysis,Weibull,我用带a的a来预测数据。我使用in R进行此操作。我在训练和测试中分割数据,在训练集上进行训练,然后尝试预测测试集的值。为此,我将测试集作为newdata参数通过,如中所述。我得到一个错误,说newdata与训练数据的大小不同(很明显!)。然后,该函数似乎评估并预测训练集的值 如何预测新数据的值? # get data library(KMsurv) library(survival) data("kidtran") n = nrow(kidtran) kidtran <- kidtra

我用带a的a来预测数据。我使用in R进行此操作。我在训练和测试中分割数据,在训练集上进行训练,然后尝试预测测试集的值。为此,我将测试集作为
newdata
参数通过,如中所述。我得到一个错误,说
newdata
与训练数据的大小不同(很明显!)。然后,该函数似乎评估并预测训练集的值

如何预测新数据的值?

# get data
library(KMsurv)
library(survival)
data("kidtran") 
n = nrow(kidtran)
kidtran <- kidtran[sample(n),] # shuffle row-wise
kidtran.train = kidtran[1:(n * 0.8),]
kidtran.test = kidtran[(n * 0.8):n,]

# create model 
aftmodel <- survreg(kidtransurv~kidtran.train$gender+kidtran.train$race+kidtran.train$age, dist = "weibull")
predicted <- predict(aftmodel, newdata = kidtran.test)
#获取数据
图书馆(KMsurv)
图书馆(生存)
数据(“kidtran”)
n=nrow(kidtran)

kidtran问题似乎在于你对因变量的说明

您的问题中缺少受抚养人的数据和代码定义,因此我看不出具体的错误是什么,但它似乎不是正确的
Surv()
生存对象(请参见
?survreg

此代码变体修复了以下问题,对格式进行了一些小的改进,并且运行良好:

require(survival)
pacman::p_load(KMsurv)

library(KMsurv)
library(survival)
data("kidtran") 

n = nrow(kidtran)

kidtran       <- kidtran[sample(n),] 
kidtran.train <- kidtran[1:(n * 0.8),]
kidtran.test  <- kidtran[(n * 0.8):n,]

# Whatever kidtransurv was supposed to be is missing from your question,
#   so I will replace it with something not-missing
#   and I will make it into a proper survival object with Surv()

aftmodel  <- survreg(Surv(time, delta) ~ gender + race + age, dist = "weibull", data = kidtran.train)
predicted <- predict(aftmodel, newdata = kidtran.test)


head(predicted)

我添加了你丢失的
语句,这些语句跳到了我的面前。我们仍然缺少kidtransurv,谢谢你的更新。看起来我正确地猜到了您想要在Y中输入哪些列。您需要像我在回答中那样键入它(将定义保留在
survreg
函数中)。使用
data=
不是必需的,但是它可以大大清理您的代码并减少键入。非常感谢,它现在可以工作了。我假设定义
kidtransurv@User12547645不客气。一开始我可能也这么想。
require(survival)
pacman::p_load(KMsurv)

library(KMsurv)
library(survival)
data("kidtran") 

n = nrow(kidtran)

kidtran       <- kidtran[sample(n),] 
kidtran.train <- kidtran[1:(n * 0.8),]
kidtran.test  <- kidtran[(n * 0.8):n,]

# Whatever kidtransurv was supposed to be is missing from your question,
#   so I will replace it with something not-missing
#   and I will make it into a proper survival object with Surv()

aftmodel  <- survreg(Surv(time, delta) ~ gender + race + age, dist = "weibull", data = kidtran.train)
predicted <- predict(aftmodel, newdata = kidtran.test)


head(predicted)
       302        636        727        121         85        612 
 33190.413  79238.898 111401.546  16792.180   4601.363  17698.895