Descripción
Quiero simular la supervivencia de predicción usando redes neuronales se describe en este documento titulado "Aplicación de la Red Neuronal Artificial Basado en el Análisis de Supervivencia en Dos de Cáncer de Mama conjuntos de datos" por Chi, de la Calle y Wolberg donde un vector blanco de 1 representa los puntos de tiempo se evalúa y devuelve un vector de probabilidades. Lamentablemente no proporcionar el software utilizado para crear el método.
Por ejemplo, un conjunto de datos con time
, status
(lo que indica vivo o muerto) y otras variables predictoras son necesarios para ser entrenado en una red neuronal. Habrá una estructura de datos para mantener los puntos de tiempo de las necesidades de la investigación (por ejemplo, un {1,1,1,1,1,1}
, intervalos de seis meses en tres años). La salida de este modelo, después de tomar en cuenta las mencionadas variables predictoras tendrá este aspecto: {0.98761,0.91111,0.82710,0.70003,0.64253,0.47181}
que corresponde a:
6 12 18 24 30 36
1 0.98761 0.91111 0.82710 0.70003 0.64253 0.47181
2 ...
Estos datos pueden ser utilizados para futuros registros que serán alimentados en la red.
R red neuronal de paquetes
He estado buscando la manera de implementar esto en la nnet
, neuralnet
y rminer
paquetes y por desgracia, mi limitado conocimiento no puede modificar para adaptarse a mis necesidades. Sólo sé que estos predecir el valor nominal y los valores numéricos pero ahora, ¿cómo hacer vectores.
Hasta ahora las funciones relacionadas con la predicción de los paquetes no dar una pista sobre el uso de un vector de salida.
nnet
'spredict()
's descripción dice claramente a continuación.Predecir nuevos ejemplos por una red neuronal entrenada.
# X1, X2, and the rest of predictive variables model.nnet <- nnet(Surv(time,status)~X1+X2, data=data.train, size=1, maxit=500)
neuralnet
'scompute()
no es compatible con similar objetivo de vectores de soporte.Cálculo de una red neuronal para un determinado covariable vectores.
rminer
'spredict()
ylforecast()
demostrar que tiene potencial (basado en los ejemplos), pero no tengo idea de cómo transformarlos en lo que quiero hacer.el
survnnet
paquete se dice que es compatible con el común de lapredictSurvProb
función de lapec
paquete pero yo me mantenía alejado de él a causa de la poca documentación y apoyo aquí en el Internet.Predecir nuevos ejemplos por un agente de la supervivencia de la red neuronal.
model.survnet <- survnnet(Surv(time,status)~X1+X2, data=dat, model='llog', decay=0.1, bias.decay=25, size=1, skip=T, alpha=0.1) predictions <- predict(model.survnet, data.train, type="raw")
Cox PH (actual método conocido)
El más cercano método que he conseguido hasta ahora era coxph
y cph
aplicado con la predictSurvProb
función donde un times
variable es declarada con el número de puntos de interés.
Generalmente hago esto:
data.train <- SimSurv(300)
model.coxph <- cph(Surv(time,status)~X2,data=dat,surv=TRUE,x=TRUE,y=TRUE)
# declare target times as 25,50,75,100,150 for probabilities
predictions <- predictSurvProb(coxph12, newdata=data.train, times=c(25,50,75,100,150))
round(predictions, digits=6)
y me gustaría tener una salida de probabilidades por período de tiempo que se especifica:
25 50 75 100 150
1 0.648268 0.509353 0.460196 0.425917 0.324364
2 0.648268 0.509353 0.460196 0.425917 0.324364
3 0.756732 0.648020 0.607077 0.577596 0.484789
4 0.648268 0.509353 0.460196 0.425917 0.324364
5 0.648268 0.509353 0.460196 0.425917 0.324364
Estos están ahora listos para ser integrados como nuevas variables en el conjunto de datos para otros fines.
Ahora quiero implementar esto en una red neuronal con el objetivo de vectores o de una implementación similar a la de la Cox PH proceso como en el ejemplo anterior.
Lamentablemente no puedo encontrar un sencillo paquete o tutorial en línea que afirma que si es posible hacerlo, como he dicho antes.
Me registré en el software de minería de datos WEKA s MultilayerPerceptron
ejecución, sino que requiere que la variable de resultado (o en mi caso un vector de probabilidades) existente en primer lugar, lo que me lleva de vuelta aquí en R.
Este método es posible en estos paquetes de R, o la única manera es crear mi propia? Toda la ayuda y sugerencias serán bienvenidos.