tidyLPA

tidyLPA: An R Package to Easily Carry Out Latent Profile Analysis (LPA) Using Open-Source or Commercial Software - Published in JOSS (2018)

https://github.com/data-edu/tidyLPA

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: springer.com, joss.theoj.org
  • Committers with academic emails
    4 of 11 committers (36.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Easily carry out Latent Profile Analysis (LPA) using open-source or commercial software

Basic Info
Statistics
  • Stars: 59
  • Watchers: 6
  • Forks: 16
  • Open Issues: 34
  • Releases: 6
Created over 8 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog License Code of conduct Support

README.Rmd

---
output: github_document
---



```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-"
)
```

[![CRAN status](https://www.r-pkg.org/badges/version/tidyLPA)](https://cran.r-project.org/package=tidyLPA)
[![](https://cranlogs.r-pkg.org/badges/tidyLPA)](https://cran.r-project.org/package=tidyLPA)
[![lifecycle](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)
[![DOI](http://joss.theoj.org/papers/10.21105/joss.00978/status.svg)](https://doi.org/10.21105/joss.00978)
[![R-CMD-check](https://github.com/data-edu/tidyLPA/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/data-edu/tidyLPA/actions/workflows/R-CMD-check.yaml)
[![test-coverage](https://github.com/data-edu/tidyLPA/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/data-edu/tidyLPA/actions/workflows/test-coverage.yaml)

## Background

Latent Profile Analysis (LPA) is a statistical modeling approach for estimating distinct profiles, or groups, of variables. In the social sciences and in educational research, these profiles could represent, for example, how different youth experience dimensions of being engaged (i.e., cognitively, behaviorally, and affectively) at the same time. 

tidyLPA provides the functionality to carry out LPA in R. In particular, tidyLPA provides functionality to specify different models that determine whether and how different parameters (i.e., means, variances, and covariances) are estimated and to specify (and compare solutions for) the number of profiles to estimate. The package is designed and documented to be easy to use, especially for beginners to LPA, but with fine-grained options available for estimating models and evaluating specific output as part of more complex analyses.

## Installation

You can install tidyLPA from CRAN with:

```{r, eval = F}
install.packages("tidyLPA")
```

You can also install the development version of tidyLPA from GitHub with:

```{r gh-installation, eval = FALSE}
install.packages("devtools")
devtools::install_github("data-edu/tidyLPA")
```

## Examples

### Mclust

Here is a brief example using the built-in `pisaUSA15` data set and variables for broad interest, enjoyment, and self-efficacy. Note that we first type the name of the data frame, followed by the unquoted names of the variables used to create the profiles. We also specify the number of profiles and the model. See `?estimate_profiles` for more details.

In these examples, we pass the results of one function to the next by *piping* (using the `%>%` operator, loaded from the `dplyr` package). We pass the data to a function that selects relevant variables, and then to `estimate_profiles`:

```{r, message = F}
library(tidyLPA)
library(dplyr)
```

```{r}
pisaUSA15[1:100, ] %>%
  select(broad_interest, enjoyment, self_efficacy) %>%
  single_imputation() %>%
  estimate_profiles(3)
```

A simple summary of the analysis is printed to the console (and its posterior probability). 

The resulting object can be further passed down a pipeline to other functions, such as:

- `plot_profiles()`
- `compare_solutions()`
- `get_data()`
- `get_fit()`

This is the "tidy" part, in that the function can be embedded in a tidy analysis pipeline.

### Mplus

We can use MPlus simply by changing the package argument for `estimate_profiles()` to `"MplusAutomation"` (please note that _MPlus must be installed on your computer for this functionality to work_):

```{r, eval = FALSE}
pisaUSA15[1:100, ] %>%
  select(broad_interest, enjoyment, self_efficacy) %>%
  single_imputation() %>%
  estimate_profiles(3, package = "MplusAutomation")
```

# Learning More

To learn more, we highly recommend the following:

* Browse the tidyLPA [website](https://data-edu.github.io/tidyLPA/) (especially check out the Reference page to see more about other functions)
* *Read the Introduction to tidyLPA* [vignette](https://data-edu.github.io/tidyLPA/articles/Introduction_to_tidyLPA.html), which has much more information on the models that can be specified with tidyLPA and on additional functionality

## Citing tidyLPA

> Rosenberg, J. M., Beymer, P. N., Anderson, D. J., Van Lissa, C. J., & Schmidt, J. A. (2018). tidyLPA: An R Package to Easily Carry Out Latent Profile Analysis (LPA) Using Open-Source or Commercial Software. *Journal of Open Source Software, 3*(30), 978, https://doi.org/10.21105/joss.00978

## Contributing and Contact Information

One of the easiest but also most important ways to contribute is to post a question or to provide feedback. Both positive *and* negative feedback is welcome and helpful. You can get in touch by:

* Sending a message via [tidylpa@googlegroups.com](mailto:tidylpa@googlegroups.com) or view the [the tidyLPA group page](https://groups.google.com/forum/#!forum/tidylpa)

* Filing an issue on GitHub [here](https://github.com/data-edu/tidyLPA)

Contributions are also welcome via by making pull requests (PR), e.g. through [this page on GitHub](https://github.com/data-edu/tidyLPA/pulls). 

It may be easier if you first file an issue outlining what you will do in the PR. You can also reach out via the methods described above.

## Contributor Code of Conduct

Please note that this project is released with a [Contributor Code of Conduct](https://link.springer.com/article/10.1007/s41686-019-00030-5). By participating in this project you agree to abide by its terms.

## Acknowledgments

This material is based upon work supported by the National Science Foundation under *Grant No.: DRL#1661064*. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not reflect the views of the National Science Foundation.

Owner

  • Name: DataEDU
  • Login: data-edu
  • Kind: organization

GitHub Events

Total
  • Issues event: 3
  • Watch event: 3
  • Issue comment event: 2
  • Fork event: 1
Last Year
  • Issues event: 3
  • Watch event: 3
  • Issue comment event: 2
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 720
  • Total Committers: 11
  • Avg Commits per committer: 65.455
  • Development Distribution Score (DDS): 0.397
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Joshua Rosenberg j****n@m****u 434
Joshua Rosenberg j****g@g****m 107
cjvanlissa c****a@u****l 92
Joshua Rosenberg j****8@g****m 53
Daniel Anderson d****a@u****u 11
gbiele g****e@g****m 10
Joshua Rosenberg j****g@u****u 6
Gootjes 3****s 2
jmichaelrosenberg@gmail.com j****8@M****l 2
Rosenberg j****8@c****u 2
Caspar van Lissa v****a@f****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 73
  • Total pull requests: 34
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 8 days
  • Total issue authors: 43
  • Total pull request authors: 3
  • Average comments per issue: 2.48
  • Average comments per pull request: 1.88
  • Merged pull requests: 30
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: about 18 hours
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jrosen48 (17)
  • cjvanlissa (10)
  • ebmtnprof (3)
  • teindor (2)
  • ellaaguinaldo (2)
  • jnese (2)
  • Teebusch (1)
  • benjaminwnelson (1)
  • a-rosenberg (1)
  • nzpsych (1)
  • namalea (1)
  • AnselmJeong (1)
  • Christian-T (1)
  • tchau30 (1)
  • Daniel28052 (1)
Pull Request Authors
  • cjvanlissa (20)
  • jrosen48 (12)
  • Gootjes (2)
Top Labels
Issue Labels
enhancement (3) bug (2) invalid (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 3,080 last-month
  • Total docker downloads: 42,041
  • Total dependent packages: 1
  • Total dependent repositories: 3
  • Total versions: 17
  • Total maintainers: 1
cran.r-project.org: tidyLPA

Easily Carry Out Latent Profile Analysis (LPA) Using Open-Source or Commercial Software

  • Versions: 17
  • Dependent Packages: 1
  • Dependent Repositories: 3
  • Downloads: 3,080 Last month
  • Docker Downloads: 42,041
Rankings
Docker downloads count: 0.6%
Forks count: 5.5%
Stargazers count: 6.5%
Downloads: 9.1%
Average: 9.4%
Dependent repos count: 16.5%
Dependent packages count: 18.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • OpenMx * depends
  • R >= 2.10 depends
  • lavaan * depends
  • tidySEM >= 0.2.0 depends
  • MplusAutomation * imports
  • dplyr * imports
  • ggplot2 * imports
  • grid * imports
  • gtable * imports
  • mclust * imports
  • methods * imports
  • mix * imports
  • tibble * imports
  • knitr * suggests
  • lme4 * suggests
  • missForest * suggests
  • parallel * suggests
  • pillar * suggests
  • rmarkdown * suggests
  • testthat * suggests
.github/workflows/check-standard.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
.github/workflows/test-coverage.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite