{
  "_id": "6adc793358000136b5c83a38",
  "Package": "msPCA",
  "Type": "Package",
  "Title": "Sparse Principal Component Analysis with Multiple Principal\nComponents",
  "Version": "0.5.1",
  "Date": "2026-08-25",
  "Authors@R": "c(\nperson(\"Ryan\", \"Cory-Wright\", , \"r.cory-wright@imperial.ac.uk\", role = c(\"aut\", \"cph\"),\ncomment = c(ORCID = \"0000-0002-4485-0619\")),\nperson(\"Jean\", \"Pauphilet\", , \"jpauphilet@london.edu\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0001-6352-0984\"))\n)",
  "Description": "Implements an algorithm for computing multiple sparse\nprincipal components of a dataset. The method is based on\nCory-Wright and Pauphilet \"Sparse PCA with Multiple Components\"\n(2026) <doi:10.1287/opre.2023.0598>. The algorithm uses an\niterative deflation heuristic with a truncated power method\napplied at each iteration to compute sparse principal\ncomponents with controlled sparsity.",
  "License": "MIT + file LICENSE",
  "URL": "https://jeanpauphilet.github.io/msPCA/",
  "BugReports": "https://github.com/jeanpauphilet/msPCA/issues",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "LazyDataCompression": "xz",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "Roxygen": "list(markdown = TRUE)",
  "Repository": "https://jeanpauphilet.r-universe.dev",
  "Date/Publication": "2026-08-25 10:54:33 UTC",
  "RemoteUrl": "https://github.com/jeanpauphilet/mspca",
  "RemoteRef": "HEAD",
  "RemoteSha": "67452dea77b8bddd588e4d8db9268323ccdab388",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-24 09:17:10 UTC",
    "User": "root"
  },
  "Author": "Ryan Cory-Wright [aut, cph] (ORCID:\n<https://orcid.org/0000-0002-4485-0619>),\nJean Pauphilet [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0001-6352-0984>)",
  "Maintainer": "Jean Pauphilet <jpauphilet@london.edu>",
  "_user": "jeanpauphilet",
  "_type": "src",
  "_file": "msPCA_0.5.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/b6528f8ec5900012f4e4489e7be89f6fe5f79c81a6131a9e8010e405b16b4abe",
  "_filesize": 1514804,
  "_sha256": "b6528f8ec5900012f4e4489e7be89f6fe5f79c81a6131a9e8010e405b16b4abe",
  "_expires": "2027-02-01T09:24:02.000Z",
  "_created": "2026-10-24T09:17:10.000Z",
  "_published": "2026-10-24T09:24:03.655Z",
  "_upstream": "https://github.com/jeanpauphilet/mspca",
  "_status": "success",
  "_maintainer": {
    "name": "Jean Pauphilet",
    "email": "jpauphilet@london.edu",
    "login": "jeanpauphilet",
    "description": "",
    "uuid": 9570405,
    "orcid": "0000-0001-6352-0984"
  },
  "_jobs": [
    {
      "job": 120835491366,
      "time": 141,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12554894960"
    },
    {
      "job": 120835491340,
      "time": 130,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12554274961"
    },
    {
      "job": 120835491329,
      "time": 108,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555850569"
    },
    {
      "job": 120835491357,
      "time": 124,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12554619077"
    },
    {
      "job": 120835491338,
      "time": 214,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12555880498"
    },
    {
      "job": 120835491381,
      "time": 305,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12555216914"
    },
    {
      "job": 120835491429,
      "time": 161,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555113976"
    },
    {
      "job": 120835491320,
      "time": 303,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555138442"
    },
    {
      "job": 120834865013,
      "time": 189,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555197443"
    },
    {
      "job": 120835491391,
      "time": 98,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12555501652"
    },
    {
      "job": 120835491377,
      "time": 341,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12555028026"
    },
    {
      "job": 120835491335,
      "time": 153,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12555746020"
    },
    {
      "job": 120835491352,
      "time": 120,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12555411886"
    },
    {
      "job": 120835491369,
      "time": 361,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555676485"
    },
    {
      "job": 120835491373,
      "time": 117,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12555257580"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864",
  "_commit": {
    "id": "67452dea77b8bddd588e4d8db9268323ccdab388",
    "author": "jeanpauphilet <jean.pauphilet@gmail.com>",
    "committer": "jeanpauphilet <jean.pauphilet@gmail.com>",
    "message": "Update pkgdown site for 0.5.1\n",
    "time": 1787655273
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppEigen",
      "role": "LinkingTo"
    },
    {
      "package": "Rcpp",
      "version": ">= 1.0.11",
      "role": "Imports"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "datasets",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "jeanpauphilet",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-48",
      "n": 7
    },
    {
      "week": "2025-49",
      "n": 6
    },
    {
      "week": "2025-50",
      "n": 6
    },
    {
      "week": "2026-03",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 12
    },
    {
      "week": "2026-21",
      "n": 14
    },
    {
      "week": "2026-24",
      "n": 7
    },
    {
      "week": "2026-25",
      "n": 9
    },
    {
      "week": "2026-26",
      "n": 5
    },
    {
      "week": "2026-27",
      "n": 2
    },
    {
      "week": "2026-33",
      "n": 18
    },
    {
      "week": "2026-34",
      "n": 19
    },
    {
      "week": "2026-35",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2025-12-02"
    },
    {
      "name": "v0.2.0",
      "date": "2026-01-12"
    },
    {
      "name": "v0.4.0",
      "date": "2026-05-22"
    },
    {
      "name": "v0.4.1",
      "date": "2026-06-12"
    },
    {
      "name": "v0.5.0",
      "date": "2026-06-25"
    },
    {
      "name": "v0.5.1",
      "date": "2026-08-25"
    }
  ],
  "_topics": [
    "dimensionality-reduction",
    "principal-component-analysis",
    "sparse-pca",
    "cpp"
  ],
  "_stars": 1,
  "_contributors": [
    {
      "user": "jeanpauphilet",
      "count": 181,
      "uuid": 9570405
    },
    {
      "user": "chenkaima",
      "count": 30,
      "uuid": 66942624
    }
  ],
  "_userbio": {
    "uuid": 9570405,
    "type": "user",
    "name": "Jean Pauphilet",
    "followers": 40
  },
  "_downloads": {
    "count": 294,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/msPCA"
  },
  "_devurl": "https://github.com/jeanpauphilet/mspca",
  "_pkgdown": "https://jeanpauphilet.github.io/msPCA/",
  "_searchresults": 6,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/msPCA.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/jeanpauphilet/mspca",
  "_realowner": "jeanpauphilet",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2025-12-11"
    },
    {
      "version": "0.2.0",
      "date": "2026-01-12"
    },
    {
      "version": "0.3.0",
      "date": "2026-05-15"
    },
    {
      "version": "0.4.0",
      "date": "2026-05-22"
    },
    {
      "version": "0.4.1",
      "date": "2026-06-12"
    },
    {
      "version": "0.5.0",
      "date": "2026-06-25"
    },
    {
      "version": "0.5.1",
      "date": "2026-08-25"
    }
  ],
  "_exports": [
    "feasibility_violation_off",
    "fraction_variance_explained",
    "fraction_variance_explained_perPC",
    "mspca",
    "tpm",
    "variance_explained_perPC"
  ],
  "_datasets": [
    {
      "name": "snp500",
      "title": "Market-deflated correlation matrix of S&P 500 daily returns",
      "object": "snp500",
      "class": [
        "matrix",
        "array"
      ],
      "fields": [],
      "rows": 423,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "feasibility_violation_off",
      "title": "Feasibility Violation",
      "topics": [
        "feasibility_violation_off"
      ]
    },
    {
      "page": "fraction_variance_explained",
      "title": "Fraction of Variance Explained",
      "topics": [
        "fraction_variance_explained"
      ]
    },
    {
      "page": "fraction_variance_explained_perPC",
      "title": "Fraction of Variance Explained Per PC",
      "topics": [
        "fraction_variance_explained_perPC"
      ]
    },
    {
      "page": "mspca",
      "title": "Multiple Sparse PCA",
      "topics": [
        "mspca"
      ]
    },
    {
      "page": "print.mspca",
      "title": "Print an mspca Object",
      "topics": [
        "print.mspca"
      ]
    },
    {
      "page": "snp500",
      "title": "Market-deflated correlation matrix of S&P 500 daily returns",
      "topics": [
        "snp500"
      ]
    },
    {
      "page": "summary.mspca",
      "title": "Summarize an mspca Object",
      "topics": [
        "summary.mspca"
      ]
    },
    {
      "page": "tpm",
      "title": "Truncated Power Method",
      "topics": [
        "tpm"
      ]
    },
    {
      "page": "variance_explained_perPC",
      "title": "Variance Explained Per PC",
      "topics": [
        "variance_explained_perPC"
      ]
    }
  ],
  "_readme": "https://github.com/jeanpauphilet/mspca/raw/HEAD/README.md",
  "_rundeps": [
    "Rcpp",
    "RcppEigen"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "algorithm-and-implementation.Rmd",
      "filename": "algorithm-and-implementation.html",
      "title": "Algorithm and implementation notes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem",
        "Evaluation metrics",
        "Lagrangian alternating maximization",
        "Implementation details",
        "Computational complexity",
        "Guidance on parameter choices",
        "Choosing the sparsity budgets ks",
        "Choosing the constraint type",
        "Iteration and restart budgets",
        "References"
      ],
      "created": "2026-08-12 10:13:17",
      "modified": "2026-08-19 05:07:09",
      "commits": 8
    },
    {
      "source": "case-study-snp500.Rmd",
      "filename": "case-study-snp500.html",
      "title": "Case study: sparse factors in S&P 500 returns",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The data",
        "Sparse factor extraction",
        "Comparing the two constraint types",
        "Interpreting the sparse components",
        "Under orthogonality constraints",
        "Under zero-correlation constraints",
        "Takeaway",
        "References"
      ],
      "created": "2026-08-12 10:13:17",
      "modified": "2026-08-18 14:35:31",
      "commits": 5
    },
    {
      "source": "msPCA.Rmd",
      "filename": "msPCA.html",
      "title": "Worked example: msPCA on mtcars",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Install and load",
        "Fit two sparse PCs",
        "Working from the raw data matrix",
        "Orthogonality versus zero correlation",
        "Diagnostics",
        "Comparison with dense PCA",
        "Where to go next"
      ],
      "created": "2026-06-12 15:38:00",
      "modified": "2026-08-18 10:00:27",
      "commits": 9
    }
  ],
  "_score": 5.290034611362518,
  "_indexed": true,
  "_nocasepkg": "mspca",
  "_universes": [
    "jeanpauphilet"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:33.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/59ecf5bd44eda5e956c8afda749b8dacc5495322f78baa0bd682056c145499b5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:14.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/becafa73acb7d6e18df5d8b2dbe7a87c4b82988947278639e04e853ee7f18b0d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:06.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/44cf5ef136e2c34baa5233bbacab207fb5a87df19b104e2b4b110db4c1219954",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:12.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/d37bdb9861c043266fb2a9946a291dd73c512130544e0a8a7af07bc36569120e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:54.000Z",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/2a075a9cf25694d464ce9cf0decff95006fba6b69600267735fd21a3715d3f64",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-24T09:21:14.000Z",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/f24c587101f1be2b9c6971089f0ec825bbfb9c75009cfec667ea443d5b853cb6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:31.000Z",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/1fe64c8993977a1e0cf1ed6817caade3107588e9226f078a65d2f5be818cbb91",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.1",
      "date": "2026-10-24T09:21:15.000Z",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/0842e1181316e84cb1d35f1d468cb05a0c4f42f0671d9e5723819b30ca24eba5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.1",
      "date": "2026-10-24T09:19:08.000Z",
      "arch": "emscripten",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/c802ccb4cae47e6b331ef97cbeb89e3d530d310542a5bcde30e3e96b8830f88f",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-24T09:22:02.000Z",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/d0539ad382866c9260509397408a7fecac37e6e6edb54e4e398cd7d616681ef4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-24T09:18:29.000Z",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/d50989882f47c25a2042eaefba8801de46dc6d297cd75b6f7732e2c591fcde5c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-24T09:18:39.000Z",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/baed5b5a0c0bd7e3b89440c83c3ebb7e75bca80db70b66c8b987029b45d638f3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-24T09:22:31.000Z",
      "arch": "aarch64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/452155b5d5c9e4c86f8cfc2af7c2a6f97fb796d6ff82e2b8199f33759347a443",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.1",
      "date": "2026-10-24T09:18:30.000Z",
      "arch": "x86_64",
      "commit": "67452dea77b8bddd588e4d8db9268323ccdab388",
      "fileid": "https://r2.ropensci.org/c22a340eb0c629d79a0277e9bfbb2da43b68629031701b3b7eeff7d5df037401",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jeanpauphilet/actions/runs/40081150864"
    }
  ]
}