LikertMakeR 2.0.0 (March 2026)
This release introduces major improvements to the internal algorithms used to generate synthetic rating-scale data and correlation matrices.
Breaking changes
makeItemsScale()has been rewritten and one parameter has been removed. Existing code that used the removed argument,variance, will need to be updated.makeCorrAlpha()has been completely redesigned - previously flagged indevelopment version 1.5.0. Some parameters have changed, and the internal algorithm for generating correlation matrices has been replaced to guarantee an assumed underlying single-factor structure.
New features
Added
reliability(), a new function for computing reliability statistics for rating-scale data - previously flagged indevelopment version 1.5.0.Added
alpha_sensitivity(), a new function that computes how Cronbach’s alpha changes as a function of scale design parameters.
Improvements
makeCorrAlpha()is now substantially faster and more stable when generating correlation matrices that satisfy a target Cronbach’s alpha.alpha()has additional integrity checksImproved numerical stability and diagnostics in correlation-matrix generation.
Various documentation improvements and code cleanup.
LikertMakeR 1.5.0 (February 2026)
Improvements
Major Improvements to makeCorrAlpha()
New constructive correlation generator
makeCorrAlpha() has been completely re-engineered. The previous swap-based approach for achieving positive-definite correlation matrices has been replaced with a constructive one-factor generator.
The previous algorithm:
- was slow
- was unable to process large number of items (rare, but sometimes wanted)
- frequently gave results that were more consistent with multi-factor scales
- e.g., eigenvalues may give two or more values > 1,
The new algorithm:
- runs more than 150 times faster than the previous version (3000 times faster for large k).
- Guarantees positive definiteness without post-hoc repair.
- Produces stable behaviour across large numbers of items (tested up to k = 40).
- Maintains alpha accuracy within ±0.005 when
alpha_noise = 0. - Uses adaptive dispersion control to ensure feasibility at high variance levels.
This results in substantially improved numerical stability and smoother behaviour across the parameter space.
precision argument removed and replaced with alpha_noise argument
A new argument, alpha_noise, has been introduced to provide optional random variation around the requested Cronbach’s alpha.
By default (alpha_noise = 0), the function reproduces the specified alpha deterministically. When a small positive value is supplied, the function will generate slightly different reliability values across runs.
This is particularly useful in teaching and simulation contexts where you may wish to demonstrate natural variation rather than produce the exact same matrix each time. The noise is applied in a way that ensures the resulting alpha always remains within valid bounds.
LikertMakeR 1.4.0 (February 2026)
CRAN release: 2026-02-11
Improvements
-
New
reliability()function: Calculates various reliability statistics:Cronbach’s alpha ()
McDonald’s omega-total ()
Guttman’s lambda 6 ()
Zumbo’s ordinal alpha (Cronbach’s alpha from polychoric correlations)
ordinal-omega-total (McDonald’s omega total from polychoric correlations)
coefficient H
with bootstrapped Confidence Intervals for each as an option.
-
correlateScales() function runs 3 to 8 times faster
- due to some pre-calculation and vectorisation replacing “for loops”
LikertMakeR 1.3.0 (2025-11-24)
CRAN release: 2025-11-26
Improvements
-
New
makeScalesRegression()function: Generates synthetic rating-scale data that replicates reported regression results, and then returnsa data frame that provides the requested statistical properties and
a correlation matrix and summary moments of the data frame, plus
diagnostic statistics, including comparison of target values against achieved values.
-
makeScales()function replacesmakeItems()function:- I finally worked out how to turn a single value into a vector of length
k. - Embarrassingly straightforward.
- I finally worked out how to turn a single value into a vector of length
-
Updated version of
makeCorrAlpha()function produces a more “natural-looking” correlation matrix, plus diagnostics:- previous version sorted correlations in the correlation matrix to improve likelihood of extracting a positive-definite matrix. Fast, but unnatural results.
- I have applied a slightly faster algorithm for rearranging the correlations in a draft matrix to produce one that is positive-definite.
- Additional parameter
sort_cors = FALSE. IfTRUE, results are similar to the earlier version ofmakeCorrAlpha(). A little faster but not as “natural-looking”. - Additional parameter
diagnostics = FALSE. IfTRUE, returns a list containing the correlation matrix and a diagnostics list (target/achieved alpha, average inter-item correlation, eigenvalues, PD flag, and key arguments). IfFALSE(default), returns the correlation matrix only.
-
Updated version of
lfast()function- runs slightly faster
Maintenance
new vignette for the new function
makeScalesRegression().updated examples for
makeScales()function.updated badges in readme file.
LikertMakeR 1.2.0 (2025-10-10)
CRAN release: 2025-10-09
Improvements
-
New
makeRepeated()function : takes summary statistics that are reported in a typical repeated-measures ANOVA study, and then returnsa correlation matrix of the vectors of repeated measures and
a data frame based on the correlation matrix and summary moments, plus
diagnostic statistics, including possible F-statistics based on information provided.
#lfast_validation# vignette shows that #LikertMaker# does a remarkably good job of replicating real rating-scale data.
Maintenance
- Vignettes are too large with so many images, so CRAN files include only the #LikertMakeR_vignette# file. Two vignettes that validate
lfast()andmakeCorrLoadings()appear only in the package website.
LikertMakeR 1.1.0 (2025-05-26)
CRAN release: 2025-05-30
Improvements
new
makePaired()function: takes summary statistics from a paired-sample t-test and produces a data frame of rating-scale data that would deliver such summary statisticslcor()function rewrite: previous version used a very systematic swapping of values in each column to minimise the difference between data correlation and a target correlation matrix. This algorithm had the effect of causing extreme values in each column to be highly-correlated (or lowly correlated as applicable), and leaving middle-values relatively uncorrelated. This property was probably not noticeable in most cases but was apparent when the range of scale values was great.
LikertMakeR 1.0.1 (2025-04-07)
LikertMakeR 1.0.0 (2025-04-03)
CRAN release: 2025-04-04
makeCorrLoadings() function added
makeCorrLoadings() generates a correlation matrix of inter-item correlations based on item factor loadings as might be seen in Exploratory Factor Analysis (EFA) or a Structural Equation Model (SEM).
Such a correlation matrix can be applied to the function to generate synthetic data with those predefined factor structures.
LikertMakeR 0.1.9 (2024-02-11)
Added a new functions: makeCorrAlpha(), makeItems(), alpha(), eigenvalues()
makeCorrAlpha() constructs a random correlation matrix of given dimensions and predefined Cronbach’s Alpha.
makeItems() generates synthetic rating-scale data with predefined first and second moments and a predefined correlation matrix
alpha() calculate Cronbach’s Alpha from a given correlation matrix or a given dataframe
eigenvalues() calculates eigenvalues of a correlation matrix with an optional scree plot
