{
  "_id": "6ac75fd5de46216d5edcf0f7",
  "Package": "SDModels",
  "Title": "Spectrally Deconfounded Models",
  "Version": "2.0.2",
  "Authors@R": "c(\nperson(\"Markus\", \"Ulmer\", email = \"markus.ulmer@stat.math.ethz.ch\",\nrole = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0000-0001-7783-8475\")),\nperson(\"Cyrill\", \"Scheidegger\", role = \"aut\", comment = c(ORCID = \"0009-0005-2851-1384\")))",
  "Description": "Screen for and analyze non-linear sparse direct effects in\nthe presence of unobserved confounding using the spectral\ndeconfounding techniques (Ćevid, Bühlmann, and Meinshausen\n(2020)<jmlr.org/papers/v21/19-545.html>, Guo, Ćevid, and\nBühlmann (2022) <doi:10.1214/21-AOS2152>). These methods have\nbeen shown to be a good estimate for the true direct effect if\nwe observe many covariates, e.g., high-dimensional settings,\nand we have fairly dense confounding. Even if the assumptions\nare violated, it seems like there is not much to lose, and the\ndeconfounded models will, in general, estimate a function\ncloser to the true one than classical least squares\noptimization. 'SDModels' provides functions SDAM() for\nSpectrally Deconfounded Additive Models (Scheidegger, Guo, and\nBühlmann (2025) <doi:10.1145/3711116>) and SDForest() for\nSpectrally Deconfounded Random Forests (Ulmer, Scheidegger, and\nBühlmann (2025) <doi:10.1080/10618600.2025.2569602>).",
  "License": "GPL-3",
  "RdMacros": "Rdpack",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "knitr",
  "URL": "https://www.markus-ulmer.ch/SDModels/",
  "BugReports": "https://github.com/markusul/SDModels/issues",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "cmake libfontconfig1-dev libfreetype6-dev\nlibglpk-dev make libicu-dev libuv1-dev libxml2-dev libx11-dev",
  "Repository": "https://markusul.r-universe.dev",
  "Date/Publication": "2025-12-12 16:40:09 UTC",
  "RemoteUrl": "https://github.com/markusul/sdmodels",
  "RemoteRef": "HEAD",
  "RemoteSha": "c1dd77fba4993f957620093e052f91616cb7f98e",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-08 09:04:34 UTC",
    "User": "root"
  },
  "Author": "Markus Ulmer [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0001-7783-8475>),\nCyrill Scheidegger [aut] (ORCID:\n<https://orcid.org/0009-0005-2851-1384>)",
  "Maintainer": "Markus Ulmer <markus.ulmer@stat.math.ethz.ch>",
  "_user": "markusul",
  "_type": "src",
  "_file": "SDModels_2.0.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/f3c68e33c293965ff39372bd0766fa811c49279fd6872a617f87ab51f9b89b23",
  "_filesize": 1034920,
  "_sha256": "f3c68e33c293965ff39372bd0766fa811c49279fd6872a617f87ab51f9b89b23",
  "_expires": "2027-01-16T09:18:11.000Z",
  "_created": "2026-10-08T09:04:34.000Z",
  "_published": "2026-10-08T09:18:13.355Z",
  "_buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 113234511518,
      "time": 180,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11539936047"
    },
    {
      "job": 113234511373,
      "time": 182,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11539517253"
    },
    {
      "job": 113234511550,
      "time": 215,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11538934461"
    },
    {
      "job": 113234511416,
      "time": 171,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11540127410"
    },
    {
      "job": 113233189001,
      "time": 199,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11539615918"
    },
    {
      "job": 113234511239,
      "time": 151,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11539566718"
    },
    {
      "job": 113234511429,
      "time": 126,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11539346680"
    },
    {
      "job": 113234511428,
      "time": 108,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11538799992"
    },
    {
      "job": 113234511464,
      "time": 144,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11540106008"
    }
  ],
  "_upstream": "https://github.com/markusul/sdmodels",
  "_commit": {
    "id": "c1dd77fba4993f957620093e052f91616cb7f98e",
    "author": "Markus Ulmer <markus.ulmer@stat.math.ethz.ch>",
    "committer": "Markus Ulmer <markus.ulmer@stat.math.ethz.ch>",
    "message": "update dependency parallely is only needed, if one wants to process in parallel\n",
    "time": 1765557609
  },
  "_maintainer": {
    "name": "Markus Ulmer",
    "email": "markus.ulmer@stat.math.ethz.ch",
    "login": "markusul",
    "description": "",
    "uuid": 94674564,
    "orcid": "0000-0001-7783-8475"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "DiagrammeR",
      "role": "Imports"
    },
    {
      "package": "future.apply",
      "role": "Imports"
    },
    {
      "package": "future",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "igraph",
      "role": "Imports"
    },
    {
      "package": "ggraph",
      "role": "Imports"
    },
    {
      "package": "gridExtra",
      "role": "Imports"
    },
    {
      "package": "Rdpack",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "fda",
      "role": "Imports"
    },
    {
      "package": "grplasso",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "progressr",
      "role": "Imports"
    },
    {
      "package": "parallelly",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "datasets",
      "role": "Suggests"
    },
    {
      "package": "rpart",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "ranger",
      "role": "Suggests"
    },
    {
      "package": "HDclassif",
      "role": "Suggests"
    },
    {
      "package": "qpdf",
      "role": "Suggests"
    },
    {
      "package": "cli",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "markusul",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-49",
      "n": 5
    },
    {
      "week": "2025-50",
      "n": 7
    }
  ],
  "_tags": [],
  "_stars": 2,
  "_contributors": [
    {
      "user": "markusul",
      "count": 377,
      "uuid": 94674564
    },
    {
      "user": "cyrillsch",
      "count": 17,
      "uuid": 152972630
    }
  ],
  "_userbio": {
    "uuid": 94674564,
    "type": "user",
    "name": "Markus Ulmer",
    "followers": 8
  },
  "_downloads": {
    "count": 248,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/SDModels"
  },
  "_devurl": "https://github.com/markusul/sdmodels",
  "_pkgdown": "https://www.markus-ulmer.ch/SDModels/",
  "_searchresults": 23,
  "_rbuild": "4.6.1",
  "_assets": [
    "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",
    "extra/SDModels.html"
  ],
  "_homeurl": "https://github.com/markusul/sdmodels",
  "_realowner": "markusul",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.4",
      "date": "2025-02-19"
    },
    {
      "version": "1.0.7",
      "date": "2025-04-09"
    },
    {
      "version": "1.0.10",
      "date": "2025-05-09"
    },
    {
      "version": "1.0.13",
      "date": "2025-06-05"
    },
    {
      "version": "2.0.0",
      "date": "2025-12-11"
    },
    {
      "version": "2.0.2",
      "date": "2025-12-14"
    }
  ],
  "_exports": [
    "cvSDTree",
    "f_four",
    "get_cp_seq",
    "get_Q",
    "get_W",
    "mergeForest",
    "partDependence",
    "plotOOB",
    "predict_individual_fj",
    "predictOOB",
    "prune",
    "regPath",
    "SDAM",
    "SDForest",
    "SDTree",
    "simulate_data_nonlinear",
    "simulate_data_step",
    "stabilitySelection",
    "varImp"
  ],
  "_help": [
    {
      "page": "cvSDTree",
      "title": "Cross-validation for the SDTree",
      "topics": [
        "cvSDTree"
      ]
    },
    {
      "page": "f_four",
      "title": "Function of x on a fourier basis",
      "topics": [
        "f_four"
      ]
    },
    {
      "page": "get_cp_seq.SDForest",
      "title": "Get the sequence of complexity parameters of an SDForest",
      "topics": [
        "get_cp_seq",
        "get_cp_seq.SDForest"
      ]
    },
    {
      "page": "get_cp_seq.SDTree",
      "title": "Get the sequence of complexity parameters of an SDTree",
      "topics": [
        "get_cp_seq.SDTree"
      ]
    },
    {
      "page": "get_Q",
      "title": "Estimation of spectral transformation",
      "topics": [
        "get_Q"
      ]
    },
    {
      "page": "get_W",
      "title": "Estimation of anchor transformation",
      "topics": [
        "get_W"
      ]
    },
    {
      "page": "mergeForest",
      "title": "Merge two forests",
      "topics": [
        "mergeForest"
      ]
    },
    {
      "page": "partDependence",
      "title": "Partial dependence",
      "topics": [
        "partDependence"
      ]
    },
    {
      "page": "plot.partDependence",
      "title": "Plot partial dependence",
      "topics": [
        "plot.partDependence"
      ]
    },
    {
      "page": "plot.paths",
      "title": "Visualize the paths of an SDTree or SDForest",
      "topics": [
        "plot.paths"
      ]
    },
    {
      "page": "plot.SDForest",
      "title": "Plot performance of SDForest against number of trees",
      "topics": [
        "plot.SDForest"
      ]
    },
    {
      "page": "plot.SDTree",
      "title": "Plot SDTree",
      "topics": [
        "plot.SDTree"
      ]
    },
    {
      "page": "plotOOB",
      "title": "Visualize the out-of-bag performance of an SDForest",
      "topics": [
        "plotOOB"
      ]
    },
    {
      "page": "predict_individual_fj",
      "title": "Predictions of individual component functions for SDAM",
      "topics": [
        "predict_individual_fj"
      ]
    },
    {
      "page": "predict.SDAM",
      "title": "Predictions for SDAM",
      "topics": [
        "predict.SDAM"
      ]
    },
    {
      "page": "predict.SDForest",
      "title": "Predictions for the SDForest",
      "topics": [
        "predict.SDForest"
      ]
    },
    {
      "page": "predict.SDTree",
      "title": "Predictions for the SDTree",
      "topics": [
        "predict.SDTree"
      ]
    },
    {
      "page": "predictOOB",
      "title": "Out-of-bag predictions for the SDForest",
      "topics": [
        "predictOOB"
      ]
    },
    {
      "page": "print.partDependence",
      "title": "Print partDependence",
      "topics": [
        "print.partDependence"
      ]
    },
    {
      "page": "print.SDAM",
      "title": "Print SDAM",
      "topics": [
        "print.SDAM"
      ]
    },
    {
      "page": "print.SDForest",
      "title": "Print SDForest",
      "topics": [
        "print.SDForest"
      ]
    },
    {
      "page": "prune.SDForest",
      "title": "Prune an SDForest",
      "topics": [
        "prune",
        "prune.SDForest"
      ]
    },
    {
      "page": "prune.SDTree",
      "title": "Prune an SDTree",
      "topics": [
        "prune.SDTree"
      ]
    },
    {
      "page": "regPath.SDForest",
      "title": "Calculate the regularization path of an SDForest",
      "topics": [
        "regPath",
        "regPath.SDForest"
      ]
    },
    {
      "page": "regPath.SDTree",
      "title": "Calculate the regularization path of an SDTree",
      "topics": [
        "regPath.SDTree"
      ]
    },
    {
      "page": "SDAM",
      "title": "Spectrally Deconfounded Additive Models",
      "topics": [
        "SDAM"
      ]
    },
    {
      "page": "SDForest",
      "title": "Spectrally Deconfounded Random Forests",
      "topics": [
        "SDForest"
      ]
    },
    {
      "page": "SDTree",
      "title": "Spectrally Deconfounded Tree",
      "topics": [
        "SDTree"
      ]
    },
    {
      "page": "simulate_data_nonlinear",
      "title": "Simulate data with linear confounding and non-linear causal effect",
      "topics": [
        "simulate_data_nonlinear"
      ]
    },
    {
      "page": "simulate_data_step",
      "title": "Simulate data with linear confounding and causal effect following a step-function",
      "topics": [
        "simulate_data_step"
      ]
    },
    {
      "page": "stabilitySelection.SDForest",
      "title": "Calculate the stability selection of an SDForest",
      "topics": [
        "stabilitySelection",
        "stabilitySelection.SDForest"
      ]
    },
    {
      "page": "varImp.SDAM",
      "title": "Extract Variable importance for SDAM",
      "topics": [
        "varImp.SDAM"
      ]
    },
    {
      "page": "varImp.SDForest",
      "title": "Extract variable importance of an SDForest",
      "topics": [
        "varImp",
        "varImp.SDForest"
      ]
    },
    {
      "page": "varImp.SDTree",
      "title": "Extract variable importance of an SDTree",
      "topics": [
        "varImp.SDTree"
      ]
    }
  ],
  "_pkglogo": "https://github.com/markusul/sdmodels/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/markusul/sdmodels/raw/HEAD/README.md",
  "_rundeps": [
    "ash",
    "base64enc",
    "bit",
    "bit64",
    "bitops",
    "bslib",
    "cachem",
    "cli",
    "clipr",
    "cluster",
    "codetools",
    "colorspace",
    "cpp11",
    "crayon",
    "deSolve",
    "DiagrammeR",
    "digest",
    "dplyr",
    "evaluate",
    "farver",
    "fastmap",
    "fda",
    "fds",
    "FNN",
    "fontawesome",
    "fs",
    "future",
    "future.apply",
    "generics",
    "ggforce",
    "ggplot2",
    "ggraph",
    "ggrepel",
    "globals",
    "glue",
    "graphlayouts",
    "gridExtra",
    "grplasso",
    "gtable",
    "hdrcde",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "igraph",
    "isoband",
    "jquerylib",
    "jsonlite",
    "kernlab",
    "KernSmooth",
    "knitr",
    "ks",
    "labeling",
    "lattice",
    "lifecycle",
    "listenv",
    "locfit",
    "magrittr",
    "MASS",
    "Matrix",
    "mclust",
    "memoise",
    "mgcv",
    "mime",
    "multicool",
    "mvtnorm",
    "nlme",
    "parallelly",
    "pcaPP",
    "pillar",
    "pkgconfig",
    "polyclip",
    "pracma",
    "prettyunits",
    "progress",
    "progressr",
    "purrr",
    "R6",
    "rainbow",
    "rappdirs",
    "rbibutils",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "RCurl",
    "Rdpack",
    "readr",
    "rlang",
    "rmarkdown",
    "rstudioapi",
    "S7",
    "sass",
    "scales",
    "stringi",
    "stringr",
    "systemfonts",
    "tibble",
    "tidygraph",
    "tidyr",
    "tidyselect",
    "tinytex",
    "tweenr",
    "tzdb",
    "utf8",
    "vctrs",
    "viridis",
    "viridisLite",
    "visNetwork",
    "vroom",
    "withr",
    "xfun",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "Runtime.Rmd",
      "filename": "Runtime.html",
      "title": "Runtime",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Parallel Processing",
        "Approximations"
      ],
      "created": "2024-06-17 08:45:40",
      "modified": "2025-12-12 14:57:12",
      "commits": 10
    }
  ],
  "_score": 4.662757831681574,
  "_indexed": true,
  "_nocasepkg": "sdmodels",
  "_universes": [
    "markusul"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.0.2",
      "date": "2026-10-08T09:07:25.000Z",
      "distro": "resolute",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/9b7afa4f12f357eefb93cfc94061ff8a8e0b4c7f277e76936c130bd3f0674f11",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "2.0.2",
      "date": "2026-10-08T09:07:25.000Z",
      "distro": "resolute",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/6c177d70de61bc1f05eef696e4b018092e65f9129481fcf8e52ebc231b010a21",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.0.2",
      "date": "2026-10-08T09:16:25.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/9e1425b534d8aa343610e38ef829b17288624ece899e0c64746db03eebac1626",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "2.0.2",
      "date": "2026-10-08T09:14:54.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/c0a982e260584ed1a31ae9f4a9372a088fbf1494cc26d8aff88bf5c311a3ec36",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.0.2",
      "date": "2026-10-08T09:07:27.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/707156dcdc66da1ab3f0e7892c8584536abf2701e0d73eec6ecda81ccb60f96b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.0.2",
      "date": "2026-10-08T09:06:15.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/34cc43fba6bc7551636265ab80d3392d6b41315051ec932f109ffe0c7c1267d1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.0.2",
      "date": "2026-10-08T09:05:53.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/985c89a3565904248db8ff98d824a2d10d733f6e241799eac9f5f4f2237867c3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "2.0.2",
      "date": "2026-10-08T09:06:25.000Z",
      "commit": "c1dd77fba4993f957620093e052f91616cb7f98e",
      "fileid": "https://r2.ropensci.org/fe11c376b74de0c69f9023ede38c36d4c1f5c2f7166d5f99882c09108a3adf71",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/markusul/actions/runs/37753692978"
    }
  ]
}