Comments (4)
from jm.
Hi, I have tried the following with what you have suggested (twice). There is no patient with 0 follow-up time. Missing data were also excluded from the beginning.
Because in your book, when comparing with the time-dependent model, JM should have given us a less underestimated result. However, it seems that it was not the case in my data. The time-dependent model which used a biomarker measured at each visit paid by patients as the main predictor is as follows:
Call:
coxph(formula = Surv(as.numeric(START0), as.numeric(LaboDate),
MACE) ~ logMarker + BASE_AGE + SEX, data = ANA_df,
ties = "breslow")
n= 689548, number of events= 1959
coef exp(coef) se(coef) z Pr(>|z|)
logMarker 0.638440 1.893525 0.138547 4.608 4.06e-06 ***
BASE_AGE 0.024577 1.024881 0.002027 12.125 < 2e-16 ***
SEX -0.535464 0.585398 0.050854 -10.530 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
I(log(RESULT_MEAN)) 1.8935 0.5281 1.4432 2.4843
BASE_AGE 1.0249 0.9757 1.0208 1.0290
SEX 0.5854 1.7082 0.5299 0.6468
Concordance= 0.605 (se = 0.006 )
Likelihood ratio test= 252.6 on 3 df, p=<2e-16
Wald test = 238.8 on 3 df, p=<2e-16
Score (logrank) test = 239.5 on 3 df, p=<2e-16
So I was expecting to see a stronger relationship between this biomarker and the hazard of the event.
However, when I fitted the mixed effect linear model and the Cox regression model with your approach, I found that the association is gone:
lmeFit.DF <- lme(logMarker ~ obstime + SEX + BASE_AGE,
random = ~ obstime | PatientId, data = ANA_df)
coxFit.DF <- coxph(Surv(Time, MACE) ~ SEX + BASE_AGE, data = DF_1strow,
x = TRUE, model = TRUE)
jointFit.DF <- jointModel(lmeFit.DF, coxFit.DF, timeVar = "obstime",
method = "piecewise-PH-aGH")
# Call:
# jointModel(lmeObject = lmeFit.DF, survObject = coxFit.DF, timeVar = "obstime",
# method = "piecewise-PH-aGH")
#
# Data Descriptives:
# Longitudinal Process Event Process
# Number of Observations: 689548 Number of Events: 1959 (3.7%)
# Number of Groups: 52511
#
# Joint Model Summary:
# Longitudinal Process: Linear mixed-effects model
# Event Process: Relative risk model with piecewise-constant
# baseline risk function
# Parameterization: Time-dependent
#
# log.Lik AIC BIC
# 589034 -1178032 -1177872
#
# Variance Components:
# StdDev Corr
# (Intercept) 0.1511 (Intr)
# obstime 0.0001 -0.4542
# Residual 0.0853
#
# Coefficients:
# Longitudinal Process
# Value Std.Err z-value p-value
# (Intercept) 2.0248 0.0037 552.4671 <0.0001
# obstime 0.0000 0.0000 -28.0565 <0.0001
# SEX 0.0066 0.0013 4.9324 <0.0001
# BASE_AGE -0.0014 0.0000 -27.9929 <0.0001
#
# Event Process
# Value Std.Err z-value p-value
# SEX -0.5044 0.0507 -9.9453 <0.0001
# BASE_AGE 0.0312 0.0022 14.0130 <0.0001
# Assoct 0.3949 0.4403 0.8969 0.3698
# log(xi.1) -13.8911 0.9143 -15.1927
# log(xi.2) -13.1572 0.9062 -14.5189
# log(xi.3) -12.9483 0.9031 -14.3368
# log(xi.4) -12.6816 0.9021 -14.0575
# log(xi.5) -12.4629 0.9027 -13.8065
# log(xi.6) -12.1712 0.9070 -13.4184
# log(xi.7) -9.6649 0.9121 -10.5962
#
# Integration:
# method: (pseudo) adaptive Gauss-Hermite
# quadrature points: 3
#
# Optimization:
# Convergence: 0
Do you have any suggestion on how to interpret this result? Maybe I can try adding more markers since they were measured at the same longitudinal time points.
from jm.
from jm.
OK, thanks for your help. So it was not because of any error in my coding?
from jm.
Related Issues (20)
- Query on getting back association parameter from data simulation in weibull-ph-agh
- Error in exp(coefs[1]) : non-numeric argument to mathematical function- fail to run CompRisk HOT 5
- Error in if (w_dif < specs$tol || iter == specs$maxiter) break : missing value where TRUE/FALSE needed
- Error in if (w_dif < specs$tol || iter == specs$maxiter) break : missing value where TRUE/FALSE needed
- Simulating data and GLMMPQL using JM
- issues in running survfitJM
- Error in aeqSurv(Y) : aeqSurv exception, an interval has effective length 0
- Error in d * log.hazard + log.survival : non-conformable arrays In addition: Warning message: In wk * rep(x$P, each = nk) : longer object length is not a multiple of shorter object length HOT 3
- Error in optim(thetas, opt.survPC, gr.survPC, method = "BFGS", control = list(maxit = if (it < : non-finite value supplied by optim HOT 3
- `survfitJM` expects newdata to be ordered by subject, and by time within each subject, else things go wrong
- Error in in optim(thetas, LogLik.splineGH, Score.splineGH, method = "BFGS", HOT 1
- ***caught segfault*** caused by Error in names(fit$coef) <- cname : 'names' attribute [4] must be the same length as the vector [2] HOT 5
- problem running fuction jointModel() in JM package HOT 1
- problem running fuction jointModel() in JM package with method = "Cox-PH-aGH" option HOT 1
- Question about the calculation of standard deviation in the "random effects parameterization"
- Extract fitted lme object from the jointModel HOT 2
- Error in if (t1 || t2) { : missing value where TRUE/FALSE needed
- code graphical time dependent slope
- sample sizes in the longitudinal and event processes differ.
- The interpretation of exp(Assoct) in JM
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jm.