{
  "_id": "6ae639ec1e2c7b3a4f52f0e1",
  "Package": "BJM",
  "Title": "Backward Joint Model for the Dynamic Prediction of Both\nTime-to-Event and Longitudinal Outcomes",
  "Version": "0.3.0",
  "Authors@R": "c(\nperson(\"Wenhao\", \"Li\", email = \"wenhaoli.jlu@gmail.com\", role = c(\"aut\", \"cre\")),\nperson(\"Liang\", \"Li\", role = c('aut'),email = \"LLi15@mdanderson.org\"))",
  "Maintainer": "Wenhao Li <wenhaoli.jlu@gmail.com>",
  "Description": "Provides tools to fit joint models of multivariate\nlongitudinal data and time-to-event data for dynamic\nprediction. It allows the joint prediction of both future\ntime-to-event outcomes and future longitudinal outcomes\nconditional on survival. The models accommodate irregularly\nmeasured longitudinal data and competing risks outcomes. The\nuse of the backward joint model enables fast and efficient\ncomputation, especially for applications with large sample\nsizes and many longitudinal variables. Methods without\ncompeting risks are described in Shen and Li (2021)\n<doi:10.1002/sim.9037>, and their extension to competing risks\nis described in Li et al. (2026)\n<doi:10.1007/s10985-026-09725-x>.",
  "License": "MIT + file LICENSE",
  "URL": "https://wenhaoli18.github.io/BJM/,\nhttps://github.com/wenhaoli18/BJM",
  "BugReports": "https://github.com/wenhaoli18/BJM/issues",
  "LazyData": "true",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-31 18:49:44 UTC",
    "User": "root"
  },
  "Author": "Wenhao Li [aut, cre], Liang Li [aut]",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-31 12:48:18 UTC",
  "RemoteUrl": "https://github.com/cran/BJM",
  "RemoteRef": "HEAD",
  "RemoteSha": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
  "_user": "cran",
  "_type": "src",
  "_file": "BJM_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/ef9f43f1f958bae6f1a321a159e4378dc8fa27cdb9ade3e27277a3a32533360c",
  "_filesize": 897440,
  "_sha256": "ef9f43f1f958bae6f1a321a159e4378dc8fa27cdb9ade3e27277a3a32533360c",
  "_expires": "2027-02-08T18:56:42.000Z",
  "_created": "2026-10-31T18:49:44.000Z",
  "_published": "2026-10-31T18:56:44.403Z",
  "_upstream": "https://github.com/cran/BJM",
  "_status": "success",
  "_maintainer": {
    "name": "Wenhao Li",
    "email": "wenhaoli.jlu@gmail.com",
    "login": "wenhaoli18",
    "description": "Ph.D.,\nSenior Biostatistician at Edwards Lifesciences",
    "uuid": 108327889
  },
  "_jobs": [
    {
      "job": 124625999451,
      "time": 296,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13053857832"
    },
    {
      "job": 124625999660,
      "time": 367,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "13053912550"
    },
    {
      "job": 124625022492,
      "time": 249,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "13054016218"
    },
    {
      "job": 124625999440,
      "time": 140,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13053563412"
    },
    {
      "job": 124625999461,
      "time": 346,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13053429419"
    },
    {
      "job": 124625999437,
      "time": 353,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13053678658"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183",
  "_commit": {
    "id": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
    "author": "Wenhao Li <wenhaoli.jlu@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.3.0\n",
    "time": 1793450898
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "survival",
      "role": "Depends"
    },
    {
      "package": "nlme",
      "role": "Imports"
    },
    {
      "package": "mvtnorm",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.4.0",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "torch",
      "role": "Suggests"
    },
    {
      "package": "ordinal",
      "role": "Suggests"
    },
    {
      "package": "timeROC",
      "role": "Suggests"
    },
    {
      "package": "riskRegression",
      "role": "Suggests"
    },
    {
      "package": "prodlim",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-27",
      "n": 1
    },
    {
      "week": "2026-39",
      "n": 1
    },
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.0",
      "date": "2026-07-04"
    },
    {
      "name": "0.2.0",
      "date": "2026-09-25"
    },
    {
      "name": "0.3.0",
      "date": "2026-10-31"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "wenhaoli18",
      "count": 3,
      "uuid": 108327889
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 635,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 433,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/BJM"
  },
  "_devurl": "https://github.com/wenhaoli18/bjm",
  "_pkgdown": "https://wenhaoli18.github.io/BJM/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/BJM.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/wenhaoli18/bjm",
  "_realowner": "wenhaoli18",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-07-04"
    },
    {
      "version": "0.2.0",
      "date": "2026-09-25"
    },
    {
      "version": "0.3.0",
      "date": "2026-10-31"
    }
  ],
  "_exports": [
    "buildRecurrentEpisodes",
    "calibrationPlot",
    "checkBandcountConvergence",
    "cifPlot",
    "cmtPlot",
    "fitIntervalBJM",
    "imputeLongitudinal",
    "longitudinalSub",
    "performancePlot",
    "poolLongitudinalSub",
    "predictLongitudinal",
    "predictPlot",
    "predictRecurrentCount",
    "predictRisk",
    "riskPlot",
    "simulateTrajectory",
    "spaghettiPlot",
    "survivalSub",
    "survivalTrans"
  ],
  "_datasets": [
    {
      "name": "pbc3",
      "title": "Mayo Clinic primary biliary cirrhosis data used as example code",
      "object": "pbc3",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "years",
        "status",
        "drug",
        "age",
        "sex",
        "year",
        "ascites",
        "hepatomegaly",
        "spiders",
        "edema",
        "serBilir",
        "serChol",
        "albumin",
        "alkaline",
        "SGOT",
        "platelets",
        "prothrombin",
        "histologic",
        "status2",
        "status3",
        "status4",
        "status5",
        "Tyears1",
        "Tyears2",
        "Tyears3",
        "Tyears4"
      ],
      "rows": 1945,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "buildRecurrentEpisodes",
      "title": "Reshape recurrent-event data into gap-time episodes for the backward joint model",
      "topics": [
        "buildRecurrentEpisodes"
      ]
    },
    {
      "page": "calibrationPlot",
      "title": "Plot calibration of dynamic risk predictions",
      "topics": [
        "calibrationPlot"
      ]
    },
    {
      "page": "checkBandcountConvergence",
      "title": "Check whether bandcount1/bandcount2/bandcount3 are large enough",
      "topics": [
        "checkBandcountConvergence"
      ]
    },
    {
      "page": "cifPlot",
      "title": "Plot cumulative incidence functions",
      "topics": [
        "cifPlot"
      ]
    },
    {
      "page": "cmtPlot",
      "title": "Plot conditional mean trajectories (CMT)",
      "topics": [
        "cmtPlot"
      ]
    },
    {
      "page": "fitIntervalBJM",
      "title": "Fit the backward joint model to interval-censored event times",
      "topics": [
        "fitIntervalBJM"
      ]
    },
    {
      "page": "imputeLongitudinal",
      "title": "Impute missing longitudinal biomarker values",
      "topics": [
        "imputeLongitudinal"
      ]
    },
    {
      "page": "longitudinalSub",
      "title": "Fit a multivariate longitudinal sub-model",
      "topics": [
        "longitudinalSub"
      ]
    },
    {
      "page": "pbc3",
      "title": "Mayo Clinic primary biliary cirrhosis data used as example code",
      "topics": [
        "pbc3"
      ]
    },
    {
      "page": "performancePlot",
      "title": "Plot predictive performance across landmark times",
      "topics": [
        "performancePlot"
      ]
    },
    {
      "page": "plot.longitudinalSub.BJM",
      "title": "Plot a fitted longitudinal sub-model",
      "topics": [
        "plot.longitudinalSub.BJM"
      ]
    },
    {
      "page": "plot.predictLongitudinal.BJM",
      "title": "Plot predicted biomarker distributions",
      "topics": [
        "plot.predictLongitudinal.BJM"
      ]
    },
    {
      "page": "plot.simulateTrajectory.BJM",
      "title": "Plot simulated futures",
      "topics": [
        "plot.simulateTrajectory.BJM"
      ]
    },
    {
      "page": "plot.survivalSub.BJM",
      "title": "Plot a fitted survival sub-model",
      "topics": [
        "plot.survivalSub.BJM"
      ]
    },
    {
      "page": "poolLongitudinalSub",
      "title": "Pool longitudinal sub-model fits across multiple imputations with Rubin's rules",
      "topics": [
        "poolLongitudinalSub"
      ]
    },
    {
      "page": "predictLongitudinal",
      "title": "Dynamic prediction function for future longitudinal outcomes",
      "topics": [
        "predictLongitudinal"
      ]
    },
    {
      "page": "predictPlot",
      "title": "Plot risk and future biomarker predictions across a horizon sweep",
      "topics": [
        "predictPlot"
      ]
    },
    {
      "page": "predictRecurrentCount",
      "title": "Predict the number of recurrent events in a window, by rolling episodes forward",
      "topics": [
        "predictRecurrentCount"
      ]
    },
    {
      "page": "predictRisk",
      "title": "Dynamic prediction function for future event risk",
      "topics": [
        "predictRisk"
      ]
    },
    {
      "page": "riskPlot",
      "title": "Plot predicted risk across a sweep of landmark times",
      "topics": [
        "riskPlot"
      ]
    },
    {
      "page": "simulateTrajectory",
      "title": "Simulate future trajectories from the backward joint model",
      "topics": [
        "simulateTrajectory"
      ]
    },
    {
      "page": "spaghettiPlot",
      "title": "Plot individual longitudinal trajectories (spaghetti plot)",
      "topics": [
        "spaghettiPlot"
      ]
    },
    {
      "page": "survivalSub",
      "title": "Fit the survival sub-model",
      "topics": [
        "survivalSub"
      ]
    },
    {
      "page": "survivalTrans",
      "title": "Build a survival-time transform basis from cut points",
      "topics": [
        "survivalTrans"
      ]
    }
  ],
  "_readme": "https://github.com/cran/BJM/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lattice",
    "lifecycle",
    "Matrix",
    "mvtnorm",
    "nlme",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "survival",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "BJM-intro.Rmd",
      "filename": "BJM-intro.html",
      "title": "Getting started with BJM",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Step 1: Fit the survival sub-model with survivalSub()",
        "Step 2: Fit the longitudinal sub-models with longitudinalSub()",
        "Missing biomarker values",
        "Step 3: Predict event risk with predictRisk()",
        "Step 4: Predict a future biomarker value with predictLongitudinal()",
        "Choosing bandcount1, bandcount2, bandcount3",
        "Friendly error messages",
        "Where to go next"
      ],
      "created": "2026-09-25 02:30:02",
      "modified": "2026-10-31 12:48:18",
      "commits": 2
    },
    {
      "source": "nonlinear-terms.Rmd",
      "filename": "nonlinear-terms.html",
      "title": "Nonlinear terms in longitudinal formulas",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Terms that are always safe",
        "Explicit polynomials and transforms",
        "Interactions",
        "Terms that are safe only in a continuous biomarker's long_sub_fixed",
        "Orthogonal poly(), splines, and factor()",
        "What goes wrong elsewhere",
        "Precomputed time transforms with survivalTrans()",
        "Putting it together: a spline term through to prediction"
      ],
      "created": "2026-10-31 12:48:18",
      "modified": "2026-10-31 12:48:18",
      "commits": 1
    }
  ],
  "_score": 3.4771212547196626,
  "_indexed": false,
  "_nocasepkg": "bjm",
  "_universes": [
    "cran"
  ],
  "_indexurl": "https://wenhaoli18.r-universe.dev/BJM",
  "_previous": "0.2.0",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-31T18:52:21.000Z",
      "distro": "resolute",
      "commit": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
      "fileid": "https://r2.ropensci.org/50596926686935de637b8a302a72aaf7bbec3bf237fb0815793eb66b544963bb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-31T18:52:18.000Z",
      "distro": "resolute",
      "commit": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
      "fileid": "https://r2.ropensci.org/4d063b12fac943b53ed027973ff73d021d7bf43529a4662af72f686aa66306bf",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-10-31T18:52:31.000Z",
      "commit": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
      "fileid": "https://r2.ropensci.org/6c92890a61cf342f349a41f7235a5c262a04eef8eddc00341958fd5d5d602830",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-31T18:51:40.000Z",
      "commit": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
      "fileid": "https://r2.ropensci.org/dc0ae7e396740226b4f68df53fb92a7a7df487ac2bfe3fb875c7acc186656fad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-31T18:51:44.000Z",
      "commit": "0fc5e1fa7e43f96709456c2078e209659f00ad0d",
      "fileid": "https://r2.ropensci.org/9077dd8d832878342c6311adb595542f2bff2818a8442733a8bd21ec3cdd5ac7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/41230977183"
    }
  ]
}