Latent Profile Analysis (LPA) is a statistical modeling approach forestimating distinct profiles, or groups, of variables. In the socialsciences 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. Inparticular, tidyLPA provides functionality to specify different modelsthat determine whether and how different parameters (i.e., means,variances, and covariances) are estimated and to specify (and comparesolutions for) the number of profiles to estimate. The package isdesigned and documented to be easy to use, especially for beginners toLPA, but with fine-grained options available for estimating models andevaluating specific output as part of more complex analyses.
You can install tidyLPA from CRAN with:
install.packages("tidyLPA")You can also install the development version of tidyLPA from GitHubwith:
install.packages("devtools")devtools::install_github("data-edu/tidyLPA")Here is a brief example using the built-inpisaUSA15data set and variables for broad interest, enjoyment, and self-efficacy.Note that we first type the name of the data frame, followed by theunquoted names of the variables used to create the profiles. We alsospecify 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 bypiping (using the%>% operator, loaded from thedplyr package). We pass the data to a function that selectsrelevant variables, and then toestimate_profiles:
library(tidyLPA)library(dplyr)pisaUSA15[1:100, ]%>%select(broad_interest, enjoyment, self_efficacy)%>%single_imputation()%>%estimate_profiles(3)#> tidyLPA analysis using mclust:#>#> Model Classes AIC BIC Entropy prob_min prob_max n_min n_max BLRT_p#> 1 3 629.72 666.20 0.80 0.84 0.95 0.04 0.67 0.01A simple summary of the analysis is printed to the console (and itsposterior probability).
The resulting object can be further passed down a pipeline to otherfunctions, such as:
plot_profiles()compare_solutions()get_data()get_fit()This is the “tidy” part, in that the function can be embedded in atidy analysis pipeline.
We can use MPlus simply by changing the package argument forestimate_profiles() to"MplusAutomation"(please note thatMPlus must be installed on your computer for thisfunctionality to work):
pisaUSA15[1:100, ]%>%select(broad_interest, enjoyment, self_efficacy)%>%single_imputation()%>%estimate_profiles(3,package ="MplusAutomation")To learn more, we highly recommend the following:
Rosenberg, J. M., Beymer, P. N., Anderson, D. J., Van Lissa, C. J.,& Schmidt, J. A. (2018). tidyLPA: An R Package to Easily Carry OutLatent Profile Analysis (LPA) Using Open-Source or Commercial Software.Journal of Open Source Software, 3(30), 978,https://doi.org/10.21105/joss.00978
One of the easiest but also most important ways to contribute is topost a question or to provide feedback. Both positiveandnegative feedback is welcome and helpful. You can get in touch by:
Sending a message viatidylpa@googlegroups.comor view thethe tidyLPA grouppage
Filing an issue on GitHubhere
Contributions are also welcome via by making pull requests (PR),e.g. throughthispage on GitHub.
It may be easier if you first file an issue outlining what you willdo in the PR. You can also reach out via the methods describedabove.
Please note that this project is released with aContributorCode of Conduct. By participating in this project you agree to abideby its terms.
This material is based upon work supported by the National ScienceFoundation underGrant No.: DRL#1661064. Any opinions,findings, conclusions, or recommendations expressed in this material arethose of the authors and do not reflect the views of the NationalScience Foundation.