{
  "_id": "6add1eda36cb6c0442e4f70b",
  "Package": "OptimalFactor",
  "Type": "Package",
  "Title": "Item Selection in Factor Analysis by Boosting and Specification\nSearch",
  "Version": "1.5.0",
  "Date": "2026-10-05",
  "Authors@R": "person(\"Jose\", \"Ventura-Leon\",\nemail = \"jventuraleon@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0003-2996-4244\"))",
  "Description": "Provides an iterative optimization algorithm for\nexploratory and confirmatory factor analysis that follows a\nboosting approach inspired by machine learning. It uses a\ncomposite fit index whose weights adapt to the degrees of\nfreedom and the sample size, following Kenny and McCoach (2003)\n<doi:10.1207/S15328007SEM1003_1> and Shi, Lee and\nMaydeu-Olivares (2019) <doi:10.1177/0013164418783530>. It\ndetects and removes problematic items (Heywood cases,\ncross-loadings, low loadings) with greedy or global search\nstrategies, checks interfactor correlations, and supports\nordinal data with WLSMV estimation and several rotation\nmethods. A heuristic specification search for confirmatory\nmodels (MacCallum, 1986 <doi:10.1037/0033-2909.100.1.107>)\nexplores move, drop and covariance operations across seed\nconfigurations. It also evaluates the resampling stability of\nthe item selection, the recovery of a known or theoretical\nstructure, and offers an optional conceptual analysis of\nremoved items through a large language model service.",
  "License": "GPL (>= 3)",
  "URL": "https://github.com/jventural/OptimalFactor,\nhttps://jventural.github.io/OptimalFactor/",
  "BugReports": "https://github.com/jventural/OptimalFactor/issues",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.3.2",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-24 21:06:42 UTC",
    "User": "root"
  },
  "Author": "Jose Ventura-Leon [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-2996-4244>)",
  "Maintainer": "Jose Ventura-Leon <jventuraleon@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-24 16:30:08 UTC",
  "RemoteUrl": "https://github.com/cran/OptimalFactor",
  "RemoteRef": "HEAD",
  "RemoteSha": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
  "_user": "cran",
  "_type": "src",
  "_file": "OptimalFactor_1.5.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/514a4b0120f4a043cf30288bc78fcc70313d6163d6563ae3fb001bd55282b7e1",
  "_filesize": 904893,
  "_sha256": "514a4b0120f4a043cf30288bc78fcc70313d6163d6563ae3fb001bd55282b7e1",
  "_expires": "2027-02-01T21:10:48.000Z",
  "_created": "2026-10-24T21:06:42.000Z",
  "_published": "2026-10-24T21:10:50.717Z",
  "_upstream": "https://github.com/cran/OptimalFactor",
  "_status": "success",
  "_maintainer": {
    "name": "Jose Ventura-Leon",
    "email": "jventuraleon@gmail.com",
    "login": "jventural",
    "description": "",
    "uuid": 60574394,
    "orcid": "0000-0003-2996-4244"
  },
  "_jobs": [
    {
      "job": 120987924726,
      "time": 200,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12575438835"
    },
    {
      "job": 120987924754,
      "time": 134,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12575443680"
    },
    {
      "job": 120987196576,
      "time": 193,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12575238423"
    },
    {
      "job": 120987924838,
      "time": 123,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12575223745"
    },
    {
      "job": 120987924747,
      "time": 122,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12575123889"
    },
    {
      "job": 120987924724,
      "time": 96,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12575493520"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008",
  "_commit": {
    "id": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
    "author": "Jose Ventura-Leon <jventuraleon@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.5.0\n",
    "time": 1792859408
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "lavaan",
      "role": "Imports"
    },
    {
      "package": "psych",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "R.utils",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "semTools",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-43",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.5.0",
      "date": "2026-10-24"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "jventural",
      "count": 1,
      "uuid": 60574394
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/OptimalFactor"
  },
  "_devurl": "https://github.com/jventural/optimalfactor",
  "_pkgdown": "https://jventural.github.io/OptimalFactor/",
  "_searchresults": 5,
  "_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/OptimalFactor.html",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.5.0",
      "date": "2026-10-24"
    }
  ],
  "_exports": [
    "algorithm_stability",
    "bifactor_indices",
    "cfa_boosting",
    "cross_validate_cfa",
    "discriminant_boosting",
    "efa_boosting",
    "efa_optimizer",
    "export_cfa_boosting",
    "export_conceptual_analysis",
    "imprimir_items_eliminados",
    "item_stability",
    "local_fit_search",
    "optimal_cfa_with_ai",
    "optimal_efa_with_ai",
    "print_cfa_boosting",
    "print_cfa_results",
    "print_conceptual_analysis",
    "print_efa_results",
    "redundancy_short_form",
    "report_cfa_results",
    "report_efa_results",
    "simulate_cfa_recovery",
    "simulate_recovery",
    "specification_search",
    "specification_search_theory",
    "theory_recovery"
  ],
  "_datasets": [
    {
      "name": "Data_Expectativas",
      "title": "Expectativas Dataset",
      "object": "Data_Expectativas",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "EAF1",
        "EAF2",
        "EAF3",
        "EAF4",
        "EAF5",
        "EAF6",
        "EAF7",
        "EAF8",
        "EAF9",
        "EAF10"
      ],
      "rows": 100,
      "table": true,
      "tojson": true
    },
    {
      "name": "Data_Personality",
      "title": "Personality Dataset",
      "object": "Data_Personality",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "PPTQ1",
        "PPTQ2",
        "PPTQ3",
        "PPTQ4",
        "PPTQ5",
        "PPTQ6",
        "PPTQ7",
        "PPTQ8",
        "PPTQ9",
        "PPTQ10",
        "PPTQ11",
        "PPTQ12",
        "PPTQ13",
        "PPTQ14",
        "PPTQ15"
      ],
      "rows": 100,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "algorithm_stability",
      "title": "Split-Half Stability of Any Item-Selection Algorithm",
      "topics": [
        "algorithm_stability"
      ]
    },
    {
      "page": "bifactor_indices",
      "title": "Bifactor Statistical Indices",
      "topics": [
        "bifactor_indices"
      ]
    },
    {
      "page": "cfa_boosting",
      "title": "CFA-Boosting Optimization",
      "topics": [
        "cfa_boosting"
      ]
    },
    {
      "page": "cross_validate_cfa",
      "title": "Split-Half Cross-Validation of a Factor Model",
      "topics": [
        "cross_validate_cfa"
      ]
    },
    {
      "page": "Data_Expectativas",
      "title": "Expectativas Dataset",
      "topics": [
        "Data_Expectativas"
      ]
    },
    {
      "page": "Data_Personality",
      "title": "Personality Dataset",
      "topics": [
        "Data_Personality"
      ]
    },
    {
      "page": "discriminant_boosting",
      "title": "Discriminant-Boosting: Rescue the Discriminant Validity of a Scale",
      "topics": [
        "discriminant_boosting"
      ]
    },
    {
      "page": "efa_boosting",
      "title": "EFA-Boosting Optimization",
      "topics": [
        "efa_boosting"
      ]
    },
    {
      "page": "efa_optimizer",
      "title": "Exploratory Factor Analysis Optimizer with Optional LLM Support",
      "topics": [
        "efa_optimizer"
      ]
    },
    {
      "page": "export_cfa_boosting",
      "title": "Export CFA Boosting Results to Structured Data Frames",
      "topics": [
        "export_cfa_boosting"
      ]
    },
    {
      "page": "export_conceptual_analysis",
      "title": "Export LLM Conceptual Analyses to a UTF-8 Text File",
      "topics": [
        "export_conceptual_analysis"
      ]
    },
    {
      "page": "imprimir_items_eliminados",
      "title": "Impresión de Ítems Eliminados",
      "topics": [
        "imprimir_items_eliminados"
      ]
    },
    {
      "page": "item_stability",
      "title": "Resampling Stability of the EFA-Boosting Item Selection",
      "topics": [
        "item_stability",
        "print.item_stability"
      ]
    },
    {
      "page": "local_fit_search",
      "title": "Local-Fit Search for a Unidimensional Model",
      "topics": [
        "local_fit_search"
      ]
    },
    {
      "page": "optimal_cfa_with_ai",
      "title": "Confirmatory Factor Analysis Optimization with AI Assistance",
      "topics": [
        "optimal_cfa_with_ai"
      ]
    },
    {
      "page": "optimal_efa_with_ai",
      "title": "Exploratory Factor Analysis Optimization with AI Assistance",
      "topics": [
        "optimal_efa_with_ai"
      ]
    },
    {
      "page": "plot.simulate_cfa_recovery",
      "title": "Plot a CFA Recovery Simulation",
      "topics": [
        "plot.simulate_cfa_recovery"
      ]
    },
    {
      "page": "plot.simulate_recovery",
      "title": "Plot a Recovery Simulation",
      "topics": [
        "plot.simulate_recovery"
      ]
    },
    {
      "page": "print_cfa_boosting",
      "title": "Print CFA-Boosting Results",
      "topics": [
        "print_cfa_boosting"
      ]
    },
    {
      "page": "print_cfa_results",
      "title": "Print Results from AI-Assisted CFA Refinement",
      "topics": [
        "print_cfa_results"
      ]
    },
    {
      "page": "print_conceptual_analysis",
      "title": "Pretty-print LLM Conceptual Analyses for Removed/Retained Items",
      "topics": [
        "print_conceptual_analysis"
      ]
    },
    {
      "page": "print_efa_results",
      "title": "Print Results from AI-Assisted EFA Refinement",
      "topics": [
        "print_efa_results"
      ]
    },
    {
      "page": "print.discriminant_boosting",
      "title": "Print method for discriminant_boosting",
      "topics": [
        "print.discriminant_boosting"
      ]
    },
    {
      "page": "print.local_fit_search",
      "title": "Print method for local_fit_search",
      "topics": [
        "print.local_fit_search"
      ]
    },
    {
      "page": "print.specification_search",
      "title": "Print method for specification_search",
      "topics": [
        "print.specification_search"
      ]
    },
    {
      "page": "redundancy_short_form",
      "title": "Redundancy-Guided Short Form of a Unidimensional Scale",
      "topics": [
        "redundancy_short_form"
      ]
    },
    {
      "page": "report_cfa_results",
      "title": "Report the CFA boosting results",
      "topics": [
        "report_cfa_results"
      ]
    },
    {
      "page": "report_efa_results",
      "title": "Console Report for EFA Optimization Results",
      "topics": [
        "report_efa_results"
      ]
    },
    {
      "page": "simulate_cfa_recovery",
      "title": "Monte Carlo Recovery of a Known Structure with CFA-Boosting",
      "topics": [
        "print.simulate_cfa_recovery",
        "simulate_cfa_recovery"
      ]
    },
    {
      "page": "simulate_recovery",
      "title": "Monte Carlo Recovery of a Known Factor Structure",
      "topics": [
        "print.simulate_recovery",
        "simulate_recovery"
      ]
    },
    {
      "page": "specification_search_theory",
      "title": "Theory-Guided Specification Search for CFA Models",
      "topics": [
        "specification_search_theory"
      ]
    },
    {
      "page": "theory_recovery",
      "title": "How Much of the Theoretical Structure a Solution Recovers",
      "topics": [
        "theory_recovery"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/OptimalFactor/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/OptimalFactor/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "GPArotation",
    "gtable",
    "isoband",
    "labeling",
    "lattice",
    "lavaan",
    "lifecycle",
    "magrittr",
    "MASS",
    "mnormt",
    "nlme",
    "numDeriv",
    "pbivnorm",
    "pillar",
    "pkgconfig",
    "psych",
    "purrr",
    "quadprog",
    "R6",
    "RColorBrewer",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "efa-boosting.Rmd",
      "filename": "efa-boosting.html",
      "title": "EFA-Boosting Algorithm",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Algorithm Overview",
        "How It Works",
        "Step 1: Initial Model Fit",
        "Step 2: Problem Detection",
        "Step 3: Item Removal Strategy",
        "Greedy Search (Default)",
        "Global Search",
        "Step 4: Adaptive Fit Calculation",
        "Step 5: Convergence",
        "Usage Examples",
        "Basic Usage",
        "Advanced Configuration",
        "With AI Analysis",
        "Parameters",
        "Output"
      ],
      "created": "2026-10-24 16:30:08",
      "modified": "2026-10-24 16:30:08",
      "commits": 1
    },
    {
      "source": "OptimalFactor.Rmd",
      "filename": "OptimalFactor.html",
      "title": "Introduction to OptimalFactor",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Installation",
        "Main Features",
        "EFA-Boosting Algorithm",
        "CFA Optimization",
        "Quick Start",
        "Basic EFA-Boosting",
        "Theoretical Background",
        "References"
      ],
      "created": "2026-10-24 16:30:08",
      "modified": "2026-10-24 16:30:08",
      "commits": 1
    }
  ],
  "_score": 3,
  "_indexed": false,
  "_nocasepkg": "optimalfactor",
  "_universes": [
    "cran",
    "jventural"
  ],
  "_indexurl": "https://jventural.r-universe.dev/OptimalFactor",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.5.0",
      "date": "2026-10-24T21:09:36.000Z",
      "distro": "resolute",
      "commit": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
      "fileid": "https://r2.ropensci.org/39ca5b991ac790234817319ddfd61b14e31c1cae772997cb745d57e200636bc2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.5.0",
      "date": "2026-10-24T21:08:45.000Z",
      "distro": "resolute",
      "commit": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
      "fileid": "https://r2.ropensci.org/d65bf3a3503cff43479da6d78ca92b35ea2b26f94c528b67197adcb370c22145",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.5.0",
      "date": "2026-10-24T21:09:06.000Z",
      "commit": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
      "fileid": "https://r2.ropensci.org/59aaf9ee2ca0a5e800828117dce80d9294104188cf631353a5eb1132025b961b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.5.0",
      "date": "2026-10-24T21:08:05.000Z",
      "commit": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
      "fileid": "https://r2.ropensci.org/2d5ff25c3badc5a09b9353007aae7161b25d5baccbb319f390b13d116fb710d7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.5.0",
      "date": "2026-10-24T21:07:54.000Z",
      "commit": "8bfdcbfe058a911eb08f1824e9003822c6a46038",
      "fileid": "https://r2.ropensci.org/781d70a5a7afbf019937e8154b3d6c67d061e9fb2565676d993099921f9444b5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40132540008"
    }
  ]
}