Re: [R-es] Propensity Score Matching
Básicamente propensity score matching es una técnica útil cuando tienes muchas covariables que ajustar en una base de datos pequeña (por ejemplo, si tu número de eventos es menor que el número de predictores por 5). En ese caso lo que haces es colapsar toda la información de las covariables en un score (un número de cero a cien). El propensity score te permite hacer el ajuste de varias formas, a través del matching de sujetos con similar propensity score, o incluso usando el propensity score transformado como término de la ecuación. Si tienes suficientes pacientes y eventos, la regresión multivariable, metiendo en la ecuación todos los predictores, suele ser una solución más eficiente, porque te evitas varios problemas asociados al PS y es más elegante. El jue., 12 nov. 2020 a las 18:03, Cristian Rodelo-Haad (< crisroh...@gmail.com>) escribió: > Hola chic@s, alguien con experiencia en propensión score matching? > > Planteo duda: Clasicamente el PSM se ha utilizado en un intento de > homogeneizar cohortes de enfermos quienes han estado “expuestos” a un > tratamiento x Vs aquellos que no han estado expuestos (no expuestos). Esto > aplica para medicamentos o procedimientos quirúrgicos o no. > > Bien, En algún articulo he leído que el PSM se puede utilizar como un > elemento de clasificación y por tanto de homogeneización. > Mi intención es aplicar el PSM a un análisis de supervivencia. En este > sentido mi hipótesis es que una variable “x” tanto en su versión > cuantitativa como categorizada a terciles,cuartiles o quintiles influye > sobre la supervivencia de los sujetos. Esto entiendo que puedo resolverlo > con un análisis de supervivencia y posteriormente con una regresión de Cox. > Este método seria valido desde el punto de vista estadístico si bien desde > el punto de vista biológico podría tener alguna duda de interpretación > sobretodo por la inclusión en los modelos de variables colineales o con > interacción. > Por otro lado el PSM me permitiría balancear todas las variables desde el > primer momento e incluirlos en el análisis de supervivencia con la premisa > de que parten de valores iguales/cuasi-iguales. > > Aquí es donde tengo dudas: si decido aplicar el PSM > Como debo realizar esta homogeneización? > > 1. Si tengo 2 estados por ejemplo vivo vs Muerto?—> Calculo el riesgo de > propensión a partir de esta variable “estado” cuando realize el glm inicial > ya que mi variable de exposición/tratamiento es estar vivo o Muerto? > 2. Utilizar mi variable “x” categorizada como variable exposición y partir > de esta calcular el score de propensión? > > Muchas gracias, espero haber sido claro. > > Saludos, > > > Cristian Rodelo-Haad > crisroh...@gmail.com > > ___________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Avda. Marqués de los Vélez, s/n. 30001-Murcia Teléfono: 968-360900// 968-360969 (secretaría) Fax: 968-360969 Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] transformación a formato largo en modelos multietapa
Eso puede ser por errores en las fechas, por ejemplo que el estado intermedio sea posterior a la muerte, etc. Repasa todas las fechas. El vie., 7 ago. 2020 23:09, José Miguel Torregrosa Díaz escribió: > Hola, > > Estoy intentando realizar una estimación de riesgos de evento mediante un > modelo de cox multietapa. El trabajo es un modelo básico de cancer: estado > inicial --> evento intermedio --> evento final (normalmente la muerte). > > Para ello estoy usando el paquete mstate de Hein Putter. Así, he definido > mi matriz de transición y mis covariables de interés, pero al intentar > poner los datos en formato largo (una fila = un estado a riesgo de una > transición, en lugar de una fila un paciente) usando el comando msprep, me > escupe un error , a saber : > > Error in hlpsrt[, 1] - hlpsrt[, 2] : > argumento no-numérico para operador binario > > Mi código para esta parte es: > formato_largo<-msprep(time = c(*NA*, "tiempo_evento_intermedio", > "tiempo_evento_final"), > status = c(*NA*, "evento_intermedio", "evento_final"), > data = mydata, > trans = tmat, > keep = covs) > > Por más que modifico las variables no consigo salir del error. Si alguien > tiene una sugerencia o me puede ayudar, estaré enormemente agradecido. > > Un saludo y gracias de antemano > > Jose > > > > -- > Jose Miguel Torregrosa Díaz > Hématoloie Oncologique et Thérapie Cellulaire > CHU de Poitiers, France > > > > > * AVISO LEGAL * > Este mensaje electrónico está dirigido exclusivamente a sus > destinatarios, pudiendo contener documentos anexos de carácter privado > y confidencial. > Si por error, ha recibido este mensaje y no se encuentra entre los > destinatarios, por favor, no use, informe, distribuya, imprima o copie > su contenido por ningún medio. Le ruego lo comunique al remitente y > borre completamente el mensaje y sus anexos. > > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] error estándar en un modelo AFT, a mano, en R
Hola, me gustaría aprender a obtener el error estándar de una predicción de supervivencia de un modelo AFT (pe., la probabilidad de supervivencia a un año), por el método delta. Esto se hace de forma trivial con la función survest del paquete rms, pero a mí me gustaría saber reproducirlo a mano. Sin embargo, cuando he tratado de calcular el método delta a mano obtengo una cifra equivocada. ¿Alguien puede ayudarme? Para tratar de reproducir la estimación, incluyo un código de ejemplo: library(survival) library(rms) data(lung) head(lung) ddist <- datadist(lung) options(datadist='ddist') lung$SurvObj <- with(lung, Surv(time, status == 2)) fit <- psm(SurvObj ~ rcs(age,3)+sex+ph.karno, dist="lognormal", x=T , y=T , data=lung) newdata <- expand.grid(age=70, sex=1, ph.karno=60) # sur<-survest(fit,newdata,times = 365) sur # obtengo un SE de 0.16. # tras ello intento reproducirlo a mano xb<-surlinear.predictors survival365<−1−pnorm((log(365)−xb)/fitscale) pdf <- (dnorm((log(365)-xb)/fitscale))/(365∗fitscale) x <- c(70,70,70,1,60) # son cinco términos por las splines se <- pdf %% t(x)%%vcov(fit) %% x %% pdf %>% sqrt se # obtengo 0.059, aproximadamente la mitad ¿Alguien sabe qué está mal? -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Avda. Marqués de los Vélez, s/n. 30001-Murcia Teléfono: 968-360900// 968-360969 (secretaría) Fax: 968-360969 Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Texto en el eje de ordenadas de un gráfico
Es lo mismo que te había dicho yo... jeje De todas formas tú eres muy listo, e igual puedes reprogramar el código del pequete... El mié., 10 oct. 2018 a las 16:36, Fernando Sanchez via R-help-es (< r-help-es@r-project.org>) escribió: > Hola a todos, > Cierro este tema con la propia respuesta del autor del paquete, Dimitri > Rizopoulos. > > Dear Fernando, > > > > Thanks for your e-mail and interestin my package. Regarding your question, > unfortunately, it is not possible to dothat with the plot method. You will > need to create the figure yourself byextracting the relevant components. > > > > Best, > > Dimitris > > > saludos, > Fernando > En martes, 9 de octubre de 2018 23:19:15 CEST, Fernando > Sanchez via R-help-es escribió: > > Mando este mensaje de respuesta para dar las gracias tanto a Pedro como > a Carlos por sus sugerencias. Ahora ya tengo los números que quiero en la > gráfica, me falta por quitar los que no quiero. Teniendo en cuenta lo que > dice Pedro, voy a preguntar al autor de la librería. > saludos, > Fernando > > En martes, 9 de octubre de 2018 13:23:51 CEST, Carlos Ortega < > c...@qualityexcellence.es> escribió: > > Hola, > Vaya, como ahora casi todo el mundo usa ggplot, este tipo de preguntas > ahora resulta complicadas de responder cuando uno habla de los gráficos > tipo "base".Cuando quieres incluir marcas a la medida en cualquiera de los > ejes, tienes que trabajar con la función "axis()". Con esta función > definirás dónde quieres las marcas, que es como decir que te quiten las de > por defecto porque solo aparecerán las que tú definas. > Mira este ejemplo: > https://stackoverflow.com/questions/11775692/how-to-specify-the-actual-x-axis-values-to-plot-as-x-axis-ticks-in-r > Saludos,Carlos > <https://stackoverflow.com/questions/11775692/how-to-specify-the-actual-x-axis-values-to-plot-as-x-axis-ticks-in-rSaludos,Carlos> > Ortegawww.qualityexcellence.es > > El lun., 8 oct. 2018 a las 18:34, Fernando Sanchez via R-help-es (< > r-help-es@r-project.org>) escribió: > > Hola a todos, > Estoy usando la librería ltm, de teoría de respuesta al ítem, para crear > gráficos. Resulta que añado unas líneas horizontales en los valores de > 0.25, 0.50 y 0.75. Me gustaría que en el gráfico, desaparezcan las marcas > de 0,.2, 0.4, 0.6 y 0.8 y aparezcan en 0.25, 0.50 y 0.75. He probado varias > cosas que he visto por Googe pero no me han funcionado. ¿Alguna idea? > library(ltm) > # creo el modelo > modelo <- ltm(LSAT ~ z1) > # represento el modelo > plot(modelo, legend = TRUE, cx = "bottomright", lwd = 3,cex.main = 1.5, > cex.lab = 1.3, cex = 1.1,main="") > # creamos las líneas horizontales > abline(h=0.25, col="purple") > abline(h=0.50, col="red") > abline(h=0.75, col="green") > saludos y muchas gracias, > Fernando > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > [[alternative HTML version deleted]] > > ___________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Avda. Marqués de los Vélez, s/n. 30001-Murcia Teléfono: 968-360900// 968-360969 (secretaría) Fax: 968-360969 Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Texto en el eje de ordenadas de un gráfico
pues que exportes a pdf y modifiques con libreoffice no es muy fino pero no falla El lun., 8 oct. 2018 a las 18:34, Fernando Sanchez via R-help-es (< r-help-es@r-project.org>) escribió: > Hola a todos, > Estoy usando la librería ltm, de teoría de respuesta al ítem, para crear > gráficos. Resulta que añado unas líneas horizontales en los valores de > 0.25, 0.50 y 0.75. Me gustaría que en el gráfico, desaparezcan las marcas > de 0,.2, 0.4, 0.6 y 0.8 y aparezcan en 0.25, 0.50 y 0.75. He probado varias > cosas que he visto por Googe pero no me han funcionado. ¿Alguna idea? > library(ltm) > # creo el modelo > modelo <- ltm(LSAT ~ z1) > # represento el modelo > plot(modelo, legend = TRUE, cx = "bottomright", lwd = 3,cex.main = 1.5, > cex.lab = 1.3, cex = 1.1,main="") > # creamos las líneas horizontales > abline(h=0.25, col="purple") > abline(h=0.50, col="red") > abline(h=0.75, col="green") > saludos y muchas gracias, > Fernando > [[alternative HTML version deleted]] > > _______ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Avda. Marqués de los Vélez, s/n. 30001-Murcia Teléfono: 968-360900// 968-360969 (secretaría) Fax: 968-360969 Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] fractales
Mira el conjunto de mandelbrot en r cómo mola https://www.google.es/amp/s/www.r-bloggers.com/the-mandelbrot-set-in-r/amp/ El 3 nov. 2017 4:20 PM, "eric" escribió: > hola luis, podrias explicarte un poco mas ? que quieres decir con "obtener > fractales de una imagen" ? > > Puedes construir una imagen con fractales, pero obtener (extraer o sacar > quieres decir?) fractales de una imagen, no se me ocurre a que se puede > referir, a menos que la imagen sea un fractal, en cuyo caso ya lo tienes > ... :) > > Slds, eric. > > > > > On 11/03/2017 12:05 PM, Luis E wrote: > > > Hola > > Quisiera saber si podrían informar como puedo hacer para obtener fractales > de una imagen con R. Hay algún paquete? o tutorial que me guíe? > > Desde ya muchas gracias. > > Atentamente, Luis > ___ > R-help-es mailing > listR-help-es@r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es > > Nota: Las tildes se han omitido para asegurar compatibilidad con algunos > lectores de correo. > > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Filtrar datos con una excepción
Hola, se filtra así: datos2<-subset(datos, !(evolucionsi==0&evolucionno==0)) Con esto creas un subgrupo de datos que cumple esas condiciones. Si en lugar de AND quieres usar OR entonces el símbolo lo cambias a | El símbolo de admiración ! es una negación NOT; por tanto te quedas con los datos tales que ni evolucionsi vale 0 ni evolucionno vale 0. Saludos. El 23 de octubre de 2017, 11:27, Freddy Omar López Quintero < freddy.vat...@gmail.com> escribió: > El lun, 23-10-2017 a las 03:54 +0200, miriam.alz...@unavarra.es > escribió: > > Gracias...sí pero creo que no me has entendido...El código tampoco es > > el > > que necesito. Necesito todas las observaciones de Datos, excepto > > aquellas > > para las que se cumpla conjuntamente que evollucionsi=0 y > > evolucionno>0. > > Ok, ha quedado claro que yo no he entendido, pero esa misma lógica que > mencionas (que debe ser muy fácil) es la que debes incluir en tu > filtro, sea cual fuere ¿podrías intentarlo, tal vez?. Reemplaza los > iguales, desiguales, mayores o menores en él y se acabó. > > > > -- > «...homines autem hominum causa esse generatos...» > > Cicero > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Avda. Marqués de los Vélez, s/n. 30001-Murcia Teléfono: 968-360900// 968-360969 (secretaría) Fax: 968-360969 Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Re: [R-es] Estudios de no inferioridad en R
Siendo un tema de cirugía se tratará probablemente de un análisis de supervivencia o de un resultado dicotómico. En tal caso, no se requiere un paquete de R diferente, sino de la interpretación de los intervalos de confianza de los tests habituales, por ejemplo survival para tiempo al evento. Se trata de realizar un test de una cola teniendo en cuenta los intervalos de confianza del parámetro analizado y el margen de no inferioridad elegido, lo que constituye la mayor complicación de este tipo de análisis. El 18 de octubre de 2017, 17:06, Jesús Para Fernández < j.para.fernan...@hotmail.com> escribió: > Otra opción, si estas comparando solo 2 tratamientos es hacer un t.test, > esta en el paquete base: > > ?t.test > > De: R-help-es en nombre de Freddy Omar > López Quintero > Enviado: miércoles, 18 de octubre de 2017 16:41 > Para: José Martín Arévalo > Cc: r-help-es@r-project.org > Asunto: Re: [R-es] Estudios de no inferioridad en R > > > > > El 18-10-2017, a las 11:15, José Martín Arévalo > escribió: > > > > ver si tres tratamientos quirúrgicos son equivalentes en el tratamiento > de una patología > > ¿Te refieres a un análisis de varianza? > > En este caso, la referencia inmediata es la función aov. Debes definir tu > variable respuesta (numérica) y tus tratamientos en un factor (vector con > categorías) en un data.frame y usar la sintaxis aproximada: > > aov(respuesta~tratamientos, data=datos) > > La ayuda de la función (?aov) te dará algunos ejemplos. > > Pero si no te estás refiriendo a un análisis de varianza, por favor > háznoslo saber para ser más específicos. Una minúscula muestra de tus datos > también sería prudente. > > ¡Salud! > [[alternative HTML version deleted]] > > ___ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > [[alternative HTML version deleted]] > > > _______________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Alberto Carmona Bayonas Servicio de Hematología y Oncología Médica Hospital Universitario Morales Meseguer Murcia. Spain. La información y los archivos adjuntos en esta transmisión puede contener información confidencial o información privilegiada y es para uso exclusivo del destinatario destinados / s /. Si usted no es el destinatario, se le notifica que cualquier divulgación, copia, distribución, o dependencia de los contenidos de esta transmisión está estrictamente prohibida. Por favor, notifique al remitente y destruir este mensaje. E-mail comunicaciones no se puede garantizar que sea seguro o libre de errores, ya que la información puede ser interceptada, corrompido, modificado, perdido, destruido, llegar tarde o incompleta, o contener virus. No aceptamos la responsabilidad por cualquiera de esas cuestiones o de sus consecuencias. Se han tomado todas las precauciones razonables para asegurarse de que cualquier archivo adjunto a la dirección de e-mail ha sido escaneado en busca de virus. Sin embargo, no podemos aceptar la responsabilidad por cualquier daño sufrido como resultado de los virus de software y asesorará que el desempeño de su propio virus escanea antes de abrir cualquier archivo adjunto. [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
[R-es] enigma con regresión de Fine & Gray y variable dependiente del tiempo
Hola, necesito ayuda de la comunidad sobre una duda acerca de una regresión de riesgos competitivos. Mi idea era llevar a cabo una regresión de Fine y Gray multivariante usando como predictores una variable fija X y otra dependiente del tiempo Y. Para ello primero he hecho un modelo univariante usando sólo la variable fija X. Aquí sin problema, obtengo el mismo resultado tanto con la función crr del paquete cmprsk, como con la función finegray seguida de survival del paquete survival. Aquí podéis ver la pinta de los datos, donde ftime2 es el tiempo al evento, cause es el evento (0=cens, 1 evento de interés, 2=competing) y days_pd son los días hasta el predictor dependiente del tiempo Y (NA cuando no lo tiene): > head(epi2,40) id ftime2 days_pd X cause 1 1 15.0 NA 1 2 2 3 24.0 NA 0 2 3 4 1094.0 NA 0 2 4 51.0 NA 1 2 5 65.0 NA 1 2 6 72.0 NA 1 2 7 8 110.0 NA 1 2 8 10 506.0 NA 1 0 9 129.0 NA 1 2 10 13 128.0 NA 1 2 > tail(epi2,40) id ftime2 days_pd X cause 1036 877562 525 1 2 1037 876614 538 0 2 1038 892592 539 1 0 1039 905613 539 0 1 1040 97713 572 0 2 1041 962784 572 0 1 1042 885574 574 1 0 1043 1018 1168 590 0 0 1044 959786 595 0 2 1045 948750 596 0 2 *Cuando evalúo el efecto de X el código es:* > pdata <- finegray(Surv(ftime2, cause) ~ ., data=epi2,id=id) > fgfit <- coxph(Surv(fgstart, fgstop, fgstatus) ~ X, +weight=fgwt, data=pdata) > fgfit Call: coxph(formula = Surv(fgstart, fgstop, fgstatus) ~ X, data = pdata, weights = fgwt) coef exp(coef) se(coef) z p X -0.614 0.5410.228 -2.69 0.0072 Likelihood ratio test=7.62 on 1 df, p=0.00577 n= 25625, number of events= 86 *Tras ello intento generar una base de datos en formato largo para la variable dependiente del tiempo days_pd usando tmerge * epitd<-subset (epi, select=c(id, ftime2, X, Y, days_pd, cause)) epitd1 <- tmerge(epitd, epitd, id=id, cause = event(ftime2, cause)) epitd2 <- tmerge(epitd1, epitd1, id=id, Y= tdc(days_pd, Y)) epitd2$Y[is.na(epitd2$Y)]=0 > tail(epitd2,40) idftime2 X days_pd cause prog tstart tstopY 1430 985893 0 762 21762 893 1 1431 982869 1 789 0 1 0 789 0 1432 982869 1 789 2 1789 869 1 1433 987909 1 810 0 1 0 810 0 1434 987909 1 8102 1810 909 1 1435 1022 1224 0 831 0 1 0 831 0 1436 1022 1224 0 831 0 1831 1224 1 1437 1023 1225 1 852 0 1 0 852 0 1438 1023 1225 1 852 1 1852 1225 1 *Se observa que los casos se duplican, por ejemplo, el id=982 desarrolla la variante dependiente del tiempo Y en el punto 789 y luego tiene el evento competitivo=2 en el momento 869.* *Tras ello aplico la regresión de FG para X, que es la variable fija, y el resultado NO es consistente con el que se obtuvo con la base de datos en formato corto (HR 0.541 antes y 0.597 ahora).* *No sé si tiene que ver o no con el warning que aparece... * *¿Alguien sabría explicarme qué tipo de sesgo he cometido?* > pdata_1 <- finegray(Surv(tstart,tstop,event) ~ ., data=epitd2, count="var", na.action= na.pass,id=id) Warning message: In any(sorty[-last, 3]) : coercing argument of type 'double' to logical > fgfit4 <- coxph(Surv(fgstart, fgstop, fgstatus==1) ~ X+cluster(id), +weight=fgwt, data=pdata_1) > fgfit4 Call: coxph(formula = Surv(fgstart, fgstop, fgstatus == 1) ~ X+ cluster(id), data = pdata_1, weights = fgwt) coef exp(coef) se(coef) robust se z p X -0.517 0.5970.228 0.227 -2.28 0.023 Likelihood ratio test=5.37 on 1 df, p=0.0205 n= 30290, number of events= 86 [[alternative HTML version deleted]] ___ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es