{
  "_id": "6ad1e0670edca5be25022472",
  "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",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Repository": "https://wenhaoli18.r-universe.dev",
  "Date/Publication": "2026-10-16 06:08:54 UTC",
  "RemoteUrl": "https://github.com/wenhaoli18/bjm",
  "RemoteRef": "HEAD",
  "RemoteSha": "3e866faacfe8c0d59f3120dc33bae115452e9519",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-16 07:40:30 UTC",
    "User": "root"
  },
  "Author": "Wenhao Li [aut, cre],\nLiang Li [aut]",
  "_user": "wenhaoli18",
  "_type": "src",
  "_file": "BJM_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/7ba30798d02bb08ab77b6dabd6de81d7abb52ae99e56bc839f1ab8027b2b17db",
  "_filesize": 779920,
  "_sha256": "7ba30798d02bb08ab77b6dabd6de81d7abb52ae99e56bc839f1ab8027b2b17db",
  "_expires": "2027-01-24T08:29:25.000Z",
  "_created": "2026-10-16T07:40:30.000Z",
  "_published": "2026-10-16T08:29:27.578Z",
  "_buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116867646408,
      "time": 333,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12033050438"
    },
    {
      "job": 116867646419,
      "time": 333,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032318582"
    },
    {
      "job": 116867646443,
      "time": 416,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12033813710"
    },
    {
      "job": 116867646336,
      "time": 354,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12034980180"
    },
    {
      "job": 116866425900,
      "time": 212,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032272733"
    },
    {
      "job": 116867646378,
      "time": 110,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12032705379"
    },
    {
      "job": 116867646360,
      "time": 225,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12032253404"
    },
    {
      "job": 116867646365,
      "time": 322,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12032755836"
    },
    {
      "job": 116867646414,
      "time": 277,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12032428161"
    }
  ],
  "_upstream": "https://github.com/wenhaoli18/bjm",
  "_commit": {
    "id": "3e866faacfe8c0d59f3120dc33bae115452e9519",
    "author": "Wenhao Li <liwh0904@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #9 from wenhaoli18/fix/pre-cran-review-3\n\nFix imputation covariates, add missing examples, and clean up dead code",
    "time": 1792130934
  },
  "_maintainer": {
    "name": "Wenhao Li",
    "email": "wenhaoli.jlu@gmail.com",
    "login": "wenhaoli18",
    "description": "Ph.D.,\nSenior Biostatistician at Edwards Lifesciences",
    "uuid": 108327889
  },
  "_distro": "resolute",
  "_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": "wenhaoli18",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-39",
      "n": 25
    },
    {
      "week": "2026-40",
      "n": 24
    },
    {
      "week": "2026-41",
      "n": 3
    },
    {
      "week": "2026-42",
      "n": 3
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "wenhaoli18",
      "count": 94,
      "uuid": 108327889
    }
  ],
  "_userbio": {
    "uuid": 108327889,
    "type": "user",
    "name": "Wenhao Li",
    "followers": 0,
    "description": "Ph.D.,\r\nSenior Biostatistician at Edwards Lifesciences"
  },
  "_downloads": {
    "count": 457,
    "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": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-07-04"
    },
    {
      "version": "0.2.0",
      "date": "2026-09-25"
    }
  ],
  "_exports": [
    "calibrationPlot",
    "checkBandcountConvergence",
    "cifPlot",
    "cmtPlot",
    "fitIntervalBJM",
    "imputeLongitudinal",
    "longitudinalSub",
    "performancePlot",
    "poolLongitudinalSub",
    "predictLongitudinal",
    "predictPlot",
    "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": "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 with a deep generative model",
      "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": "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/wenhaoli18/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()",
        "Optional: imputing interrupted follow-up before fitting",
        "A diffusion-based alternative",
        "Propagating imputation uncertainty with poolLongitudinalSub()",
        "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-24 05:45:28",
      "modified": "2026-10-16 05:41:41",
      "commits": 7
    },
    {
      "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-02 03:50:03",
      "modified": "2026-10-02 03:50:03",
      "commits": 1
    }
  ],
  "_score": 4.6020599913279625,
  "_indexed": true,
  "_nocasepkg": "bjm",
  "_universes": [
    "wenhaoli18"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-16T07:43:05.000Z",
      "distro": "resolute",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/bb0bf53f5f17f68ed71c9ece8ff7c38260c6205e957abebb80cd7860037aefba",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-16T07:42:55.000Z",
      "distro": "resolute",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/4d1fd03d794fd6d755326ed44d8ad7bf02272e02504db1055231d574329aec53",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-16T08:24:55.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/352b8627a3bd3521aa64caefca677fe1db20726f2b83be21681d3bf9c18f21aa",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-16T08:21:53.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/2c17f7621088d0eb1c1c5a059b50e55e669148b2b72081bfb46a28462e076f99",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-10-16T07:42:47.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/004ee76995b92713caa5386d89d846b288f3afb8e546b2339d7bb8ed99af3f2b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-16T07:41:54.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/9462f582a51e6455d79c1da6de0f7a2495cdf1e315406f42db68911a971fb94b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-16T07:41:59.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/13aaf9fcbbe0d54f254ae2dd64746a86a4ad1b5fd2cde12e3e18f4863f389420",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-16T07:41:58.000Z",
      "commit": "3e866faacfe8c0d59f3120dc33bae115452e9519",
      "fileid": "https://r2.ropensci.org/e353dd3ef7f9f465310b085fb1ed6c38205e1d5710b7c842a874c81a5873988f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/wenhaoli18/actions/runs/38868361894"
    }
  ]
}