This tutorial shows how to estimate a confirmatory factor analysis (CFA) model using the R lavaan package. The model, which consists of two latent variables and eight manifest variables, is described here. To review, the model to be fit is the following:
The data can be accessed from the built-in Bollen dataset in the sem package.
library(sem) library(lavaan) data("Bollen") All required packages are loaded first with the library() commands. The data are then loaded into the environment using the data() function.

This tutorial shows how to estimate a full structural equation model (SEM) with latent variables using the lavaan package in R. The model consists of three latent variables and eleven manifest variables, as described here. To review, the model to be fit is the following:
The data can be accessed from the built-in Bollen dataset in the sem package.
library(sem) library(lavaan) data("Bollen") All required packages are loaded first with the library() commands.

To read and write Excel files from R, click here. To read and write SPSS, SAS and Stata files from R, click here. To read and write text files from R, click here.

This tutorial walks you through how to use the readxl package to read Microsoft Excel .xls and .xlsx file formats into R, and how to export data from R back out to an Excel format using the writexl package. readxl’s functions are related to importing Excel files into a tibble object, which is modern R’s internal data format. A tibble can then be manipulated to create summary tables or plots, run statistical tests, or perform other common analysis tasks.

Estimating HLM Models Using R: Part 1 There are a number of different R packages that now exist for fitting mixed models, including hierarchical linear models. For cross-sectional applications, perhaps the most frequently used package is lme4 (Bates et al., 2015). However, due to ambiguity in how to appropriately determine the degrees of freedom for \(t\)-tests, lme4 does not provide \(p\)-values for the fixed effects. The lmerTest package (Kuznetsova et al.

Estimating HLM Models Using R: Part 2 The Means-as-Outcomes Model After estimating the empty model, R&B develop a Means-as-Outcomes model in which a school-level variable, meanses, is added to the model for the intercept. This variable reflects the average student SES level in each school. Recall that, when fitting the empty model, we began with the following equation:
\[ Y_{ij} = \beta_{0j} + e_{ij} \]
Now the intercept can be modeled as a grand mean, \(\gamma_{00}\), plus the effect of the average SES score, \(\gamma_{01}\), plus a random error, \(u_{0j}\).

Estimating HLM Models Using R: Part 3 Random Coefficient Model Next, R&B present a model in which student-level SES is included instead of average SES, and they treat the slope of student SES as random. One complication is that R&B present results after group-mean centering student SES. Group-mean centering means that the average SES for each student’s school is subtracted from each student’s individual SES. The following creates a new, group mean centered SES variable.

Estimating HLM Models Using R: Part 4 Intercepts- and Slopes-as-Outcomes R&B present a final model that includes one further generalization of the random coefficients model. Start again with the level-1 model.
\[ Y_{ij} = \beta_{0j} + +\beta_{1j}(\text{SES}_{ij}) + e_{ij} \] Next, model the intercept, \(\beta_{0j}\), as a function of school-level characteristics mean SES and school type (public or private).
\[ \begin{aligned} \beta_{0j} &= \gamma_{00} + \gamma_{01}(\text{Mean SES}_j) + \gamma_{02}(\text{School Type}_j) + u_{0j} \\ \beta_{1j} &= \gamma_{10} + \gamma_{11}(\text{Mean SES}_j) + \gamma_{12}(\text{School Type}_j) + u_{1j} \end{aligned} \]

Conducting ANOVA in R In the previous section, we went over what ANOVA is and how to do it by hand. Now we will go over how to do it using r. We will be using a different dataset than the pervious example, which can be found here:
data <- read_excel("data/ANOVA Lab 1.xlsx") We want to study the effectiveness of different treatments on anxiety. We collect a sample of 75 subjects in the following categories:

One of the biggest benefits of using R is its flexibility in working with various types of data used by other statistical software. If you are collaborating with other researchers, they may be working with data produced by SAS (.sas7bdat), SPSS (.sav), or Stata (.dta). The haven package in R was developed specifically to import and export data in these formats. Similar to readr for rectangular text data, haven’s functions read files in these formats into a tibble object in R.