Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Version: 0.1.0
Authors@R: c(
person("Darjus", "Hosszejni", role = c("aut", "cre"), email = "darjus.hosszejni@wu.ac.at", comment = c(ORCID = "0000-0002-3803-691X")),
person("Sylvia", "Frühwirth-Schnatter", role = c("ths"), email = "sylvia.fruehwirth-schnatter@wu.ac.at", comment = c(ORCID = "0000-0003-0516-5552")))
Description: This is an implementation of the algorithm described in Section 3 of Hosszejni and Frühwirth-Schnatter (2022) <doi:10.48550/arXiv.2211.00671>. The algorithm is used to verify that the counting rule CR(r,1) holds for the sparsity pattern of the transpose of a factor loading matrix. As detailed in Section 2 of the same paper, if CR(r,1) holds, then the idiosyncratic variances are generically identified. If CR(r,1) does not hold, then we do not know whether the idiosyncratic variances are identified or not.
Description: This is an implementation of the algorithm described in Section 3 of Hosszejni and Frühwirth-Schnatter (2026) <doi:10.1016/j.jmva.2025.105536>. The algorithm is used to verify that the counting rule CR(r,1) holds for the sparsity pattern of the transpose of a factor loading matrix. As detailed in Section 2 of the same paper, if CR(r,1) holds, then the idiosyncratic variances are generically identified. If CR(r,1) does not hold, then we do not know whether the idiosyncratic variances are identified or not.
License: GPL (>= 3)
SystemRequirements: C++14
Encoding: UTF-8
Expand Down
9 changes: 5 additions & 4 deletions R/RcppExports.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#' Verify that the counting rule CR(r,1) holds
#'
#' This is an implementation of the algorithm described in Section 3 of
#' Hosszejni and Fruehwirth-Schnatter (2022). The algorithm is used to verify
#' Hosszejni and Fruehwirth-Schnatter (2026). The algorithm is used to verify
#' that the counting rule CR(r,1) holds for the sparsity pattern of the transpose
#' of a factor loading matrix. As detailed in Section 2 of the same paper, if
#' CR(r,1) holds, then the idiosyncratic variances are generically identified.
Expand All @@ -17,9 +17,10 @@
#' @keywords models multivariate
#' @concept factor analysis variance identification
#' @seealso [stats::factanal()]
#' @references Hosszejni and Fruehwirth-Schnatter (2022). "Cover It Up! Bipartite
#' Graphs Uncover Identifiability in Sparse Factor Analysis". arXiv:2211.00671.
#' <doi:10.48550/arXiv.2211.00671>
#' @references Hosszejni and Fruehwirth-Schnatter (2026). "Cover It Up! Bipartite
#' Graphs Uncover Identifiability in Sparse Factor Analysis". Journal of
#' Multivariate Analysis, 211, 105536. ISSN 0047-259X.
#' <doi:10.1016/j.jmva.2025.105536>
#' @example inst/examples/counting_rule_holds.R
#' @export
counting_rule_holds <- function(delta) {
Expand Down
2 changes: 1 addition & 1 deletion README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ knitr::opts_chunk$set(
# Package `sparvaride`

The package implements the variance identification algorithm for sparse factor analysis described in the paper "Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis" by Darjus Hosszejni and Sylvia Frühwirth-Schnatter.
The paper is available at [arXiv](https://arxiv.org/abs/2211.00671).
The paper is published in the [Journal of Multivariate Analysis](https://doi.org/10.1016/j.jmva.2025.105536).

The package is still under development and the API is subject to change.
For a Matlab implementation, see [`sparvaride-matlab`](https://github.com/hdarjus/sparvaride-matlab).
Expand Down
25 changes: 15 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
The package implements the variance identification algorithm for sparse
factor analysis described in the paper “Cover It Up\! Bipartite Graphs
Uncover Identifiability in Sparse Factor Analysis” by Darjus Hosszejni
and Sylvia Frühwirth-Schnatter. The paper is available at
[arXiv](https://arxiv.org/abs/2211.00671).
and Sylvia Frühwirth-Schnatter. The paper is published in the [Journal
of Multivariate
Analysis](https://doi.org/10.1016/j.jmva.2025.105536).

The package is still under development and the API is subject to change.
For a Matlab implementation, see [`sparvaride-matlab`](https://github.com/hdarjus/sparvaride-matlab).
Expand Down Expand Up @@ -75,18 +76,22 @@ citation("sparvaride")
#>
#> To cite sparvaride in publications use:
#>
#> Hosszejni D, Frühwirth-Schnatter S (2022). "Cover It Up! Bipartite
#> Graphs Uncover Identifiability in Sparse Factor Analysis."
#> doi:10.48550/arXiv.2211.00671
#> <https://doi.org/10.48550/arXiv.2211.00671>, arXiv: 2211.00671.
#> Hosszejni D, Frühwirth-Schnatter S (2026). "Cover It Up! Bipartite
#> Graphs Uncover Identifiability in Sparse Factor Analysis." _Journal
#> of Multivariate Analysis_, *211*, 105536. ISSN 0047-259X,
#> doi:10.1016/j.jmva.2025.105536
#> <https://doi.org/10.1016/j.jmva.2025.105536>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Unpublished{,
#> @Article{,
#> title = {Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis},
#> author = {Darjus Hosszejni and Sylvia Frühwirth-Schnatter},
#> year = {2022},
#> note = {arXiv: 2211.00671},
#> doi = {10.48550/arXiv.2211.00671},
#> journal = {Journal of Multivariate Analysis},
#> year = {2026},
#> volume = {211},
#> pages = {105536},
#> issn = {0047-259X},
#> doi = {10.1016/j.jmva.2025.105536},
#> }
```
1 change: 1 addition & 0 deletions _codeql_detected_source_root
11 changes: 7 additions & 4 deletions inst/CITATION
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,20 @@ if(!exists("meta") || is.null(meta)) meta <- packageDescription("sparvaride")
year <- sub("-.*", "", meta$Packaged)
note <- sprintf("R package version %s", meta$Version)

bibentry(bibtype = "unpublished",
bibentry(bibtype = "article",
title = "Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis",
author = c(person(given = "Darjus",
family = "Hosszejni",
email = "darjus.hosszejni@wu.ac.at"),
person(given = "Sylvia",
family = "Frühwirth-Schnatter",
email = "sylvia.fruehwirth-schnatter@wu.ac.at")),
year = "2022",
note = "arXiv: 2211.00671",
doi = "10.48550/arXiv.2211.00671",
journal = "Journal of Multivariate Analysis",
year = "2026",
volume = "211",
pages = "105536",
issn = "0047-259X",
doi = "10.1016/j.jmva.2025.105536",
header = "To cite sparvaride in publications use:"
)

9 changes: 5 additions & 4 deletions man/counting_rule_holds.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions src/check_counting_rule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
//' Verify that the counting rule CR(r,1) holds
//'
//' This is an implementation of the algorithm described in Section 3 of
//' Hosszejni and Fruehwirth-Schnatter (2022). The algorithm is used to verify
//' Hosszejni and Fruehwirth-Schnatter (2026). The algorithm is used to verify
//' that the counting rule CR(r,1) holds for the sparsity pattern of the transpose
//' of a factor loading matrix. As detailed in Section 2 of the same paper, if
//' CR(r,1) holds, then the idiosyncratic variances are generically identified.
Expand All @@ -40,9 +40,10 @@
//' @keywords models multivariate
//' @concept factor analysis variance identification
//' @seealso [stats::factanal()]
//' @references Hosszejni and Fruehwirth-Schnatter (2022). "Cover It Up! Bipartite
//' Graphs Uncover Identifiability in Sparse Factor Analysis". arXiv:2211.00671.
//' <doi:10.48550/arXiv.2211.00671>
//' @references Hosszejni and Fruehwirth-Schnatter (2026). "Cover It Up! Bipartite
//' Graphs Uncover Identifiability in Sparse Factor Analysis". Journal of
//' Multivariate Analysis, 211, 105536. ISSN 0047-259X.
//' <doi:10.1016/j.jmva.2025.105536>
//' @example inst/examples/counting_rule_holds.R
//' @export
// [[Rcpp::export(name="counting_rule_holds", rng=false)]]
Expand Down
4 changes: 2 additions & 2 deletions vignettes/short_intro.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ knitr::opts_chunk$set(

This is a short introduction to the `sparvaride` package.
The package implements the variance identification algorithm for sparse factor analysis described in the paper "Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis" by Darjus Hosszejni and Sylvia Frühwirth-Schnatter.
The paper is available at [arXiv](https://arxiv.org/abs/2211.00671).
The paper is published in the [Journal of Multivariate Analysis](https://doi.org/10.1016/j.jmva.2025.105536).

The package is still under development and the API is subject to change.

Expand All @@ -34,7 +34,7 @@ For mathematical tractability, we assume orthogonal factors, i.e., $\text{cov}(f

In this setup, the covariance matrix $\text{cov}(\epsilon_i)$ of the idiosyncratic errors may not be uniquely identified if there are too many zeros in $\beta$ (and thus in $\delta$).
The 3579 counting rule is a sufficient condition for the uniqueness of the covariance matrix $\text{cov}(\epsilon_i)$.
More information on the 3579 counting rule can be found in the paper "Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis" by Darjus Hosszejni and Sylvia Frühwirth-Schnatter at [https://arxiv.org/abs/2211.00671](https://arxiv.org/abs/2211.00671).
More information on the 3579 counting rule can be found in the paper "Cover It Up! Bipartite Graphs Uncover Identifiability in Sparse Factor Analysis" by Darjus Hosszejni and Sylvia Frühwirth-Schnatter at [https://doi.org/10.1016/j.jmva.2025.105536](https://doi.org/10.1016/j.jmva.2025.105536).

## The 3579 Counting Rule

Expand Down
Loading