Purpose:

LikertMakeR should be useful for:

  • “Reproducing” rating-scale data for further analysis and visualisation when only summary statistics have been reported,

  • Teaching: creating synthetic data with known properties for classroom exercises

LikertMakeR synthesises and correlates Likert-scale and related rating-scale data.

You decide the mean and standard deviation, and the correlations among vectors, and the package will generate data with those properties, usually accurate to two decimal places.

The following panels show how to:

a. Generate Likert-scale items from Cronbach’s Alpha and predefined moments

b. Generate correlated multi-item scales

In both cases, this is a multi-step process

  1. establish a correlation matrix

  2. establish rating-scale properties

  3. generate the data

  4. validate the data

Step 1: Correlation matrix from Cronbach’s alpha

  1. In the Correlation Matrix tab,

Click on the “Generate from Cronbach’s alpha” button (the default)

  • Enter the Number of items in your scale
  • set the Target alpha value
  • for most purposes, leave “Variance” at the default (0.5)

When ready, hit the “Generate correlation matrix” button

You will see a correlation matrix that will deliver a dataframe with your desired alpha.

Step 2: Generate your data

  1. hit the Data Generation tab

Most users prefer “Manual entry”

  • Complete the online form to enter for each item:

    • Scale name,
    • Scale mean,
    • Scale standard deviation
    • Lower bound (e.g., 1 on a 1-5 scale)
    • Upper bound (e.g., 5 on a 1-5 scale)
    • nItems should remain at 1
  • Enter the Number of Observations

Hit the Generate my data button.

You should see a dataframe with columns to match your specifications.

Step 3: Validate your data

  1. Hit the Data Validation tab

A visual summary of your data will appear

Additional panels reveal data moments (means and standard deviations), calculated Cronbach’s alpha and more.

Step 1: Establish a correlation matrix

  1. In the Correlation Matrix tab,

Hit the Upload CSV file radio button

Upload a correlation matrix in CSV file format.

The correlation matrix must be a square matrix with the same dimensions as the number of scales (columns) you want in your dataframe.

A template can be downloaded.

Correlation matrix example :

Big 6 personality protocol (Milojev et al., 2013)1

var, Extraversion, Agreeableness, Conscientiousness, Neuroticism, Openness, Humility
Extraversion, 1, 0.213, 0.016, -0.088, 0.264, 0.106
Agreeableness, 0.213, 1, 0.14, -0.033, -0.233, 0.156
Conscientiousness, 0.016, 0.14, 1, -0.112, 0.0021, 0.072
Neuroticism, -0.088, -0.033, -0.112, 1, -0.01, -0.192
Openness, 0.264, -0.233, 0.0021, -0.01, 1, 0.018
Humility, 0.106, 0.156, 0.072, -0.192, 0.018, 1

Note: Technically, data points in a CSV file are separated with a “comma” only - no spaces - but I have separated them here for ease-of-reading. The program will quietly repair most deviations from strict CSV formatting.

Step 2: Establish scale properties

  1. hit the Data Generation tab

Either, complete the online form, or upload a CSV file

2a: Complete the online form:

Required parameters are:

  • n: number of observations. Acceptable range is ‘4’ to ‘1024’

  • mean: mean value of each variable. Default = ‘3’.

  • sd: standard deviation value of each variable. Default = ‘1’.

  • lowerbound: a value for the lower bound of each variable (e.g., ‘1’ in a 1 to 5 rating scale). Default = ‘1’.

  • upperbound: a value for the upper bound of each variable (e.g., ‘7’ in a 1 to 7 rating scale). Default = ‘5’.

  • nItems: number of items in the scale. Default = ‘1’.

Default, starter, values are given in the input array.

2b: Upload a CSV file:

The Comma-separated Values (CSV) file should have a single row with column names, followed by ‘k’ rows, where ‘k’ = the number of scales you want to produce.

Column names must be labelled:

  • scale (scale name)
  • mean (scale mean)
  • sd (scale standard deviation)
  • lower (scale lowerbound (e.g., ‘1’ in a 1-5 scale))
  • upper (scale upperbound (e.g., ‘5’ in a 1-5 scale))
  • nItems (number of items (questions) in the scale)
Example parameters CSV file

Six constructs, each measured with four 1-7 rating-scale items (Milojev et al., 2013)

scale,             mean,  sd,   lower, upper, nItems
Extraversion,      4,     1.16, 1,     7,     4
Agreeableness,     5.27,  0.98, 1,     7,     4
Conscientiousness, 5.17,  1.05, 1,     7,     4
Neuroticism,       3.39,  1.1,  1,     7,     4
Openness,          4.76,  1.12, 1,     7,     4
Humility,          5.15,  1.32, 1,     7,     4

Step 3: Generate the dataframe

When you are satisfied with the correlations and the scale properties, then:

  • Enter the desired sample size, and

  • hit the Generate my data button

Your new dataframe will appear a moment later.

(This may take time if you have many variables and a large sample size)

  • Hit the Download my data button to retrieve your data as a CSV file

Step 3: Data validation

  1. Hit the Data Validation tab

You should see summary statistics and a graphic summary of your dataframe.

  1. Milojev, P., D. Osborne, L.M. Greaves, F.K. Barlow, C.G. Sibley, (2013), “The Mini-IPIP6: Tiny yet highly stable markers of Big Six personality”, Journal of Research in Personality, 47/6:936-944. https://doi.org/10.1016/j.jrp.2013.09.004



                      
Loading...
Visual Summary
Loading...
Note: This treats all columns as items of one scale. Ignore if columns represent different constructs.
Eigenvalues of the data *correlation matrix*. Useful for checking near-singularity / factor structure hints.

                          

Try this recipe

In the Correlation Matris tab,

  • Set k = 3, alpha = .70, variance = 0

  • Then k = 10 with same alpha

Observe how mean r must change

Experiment with ‘Variance’ in the correlation matrix

Cronbach’s Alpha is a function of the mean of the paired correlations of a set of variables.

The variance parameter adjusts the variation around the mean while giving the desired Alpha value.

  • Setting the variance at ‘0’ produces a correlation matrix with all off-diagonal values at the desired mean correlation.

  • Setting variance at ‘0.25’ produces a matrix with a moderate amount of variation around the desired mean - what we might expect with a well-established scale where items are of similar value contributing to the scale.

  • The default value of ‘0.50’ produces a matrix with a range of correlation values typically ranging from high to near zero, or even a few negative values.

  • Setting variance at ‘1.0’ produces a matrix with a wide variation around the desired mean - typically with eigenvalues that would suggest a multidimensional scale.

  • Setting variance at higher values, risks creating a matrix that is non-positive-definite, and so not feasible.

Experiment with different values for alpha

Keep the same number of items and change the value for alpha.

Cronbach’s Alpha is a function of:

  • k, the number of items used to make the summated (or average) scale

  • , the mean of all pairwise correlations of the k items

and is given by the formula:

         Alpha is a function of the average paired correlations and the number of items

See how different values for alpha affect the resulting correlation matrix.

Experiment with different numbers of items

Keep the same value for alpha and change the number of items.

Different numbers of items in the scale affect values in the correlation matrix at the same alpha values.

  • Note that fewer items require higher correlations to achieve a desired Cronbach’s Alpha.

    • that is, if item correlations are low, then you can increase alpha by increasing the number of items.
    • Is that a good thing?

Relationship between α and at different number of items, k.

mean r to alpha relationship
To achieve the same _alpha_, mean correlation must increase when the scale has fewer items.

LikertMakeR online is an online implementation of three functions from the LikertMakeR package for the R statistical programming language.

Author: Hume Winzar

Date: February 2026

Details are available on the package GitHub site: winzarh.github.io/LikertMakeR

Motivation

I was prompted to write LikertMakeR after reviewing too many journal article submissions where authors presented questionnaire results with only means and standard deviations (often only the means), with no apparent understanding of distributions.

Hopefully, this tool will help researchers, teachers, and other reviewers, to better think about rating-scale distributions, and the effects of variance, boundaries and number of items in a scale.

Citation:

LikertMakeR_online:

Winzar, H. (2026). LikertMakeR_online. Shinyapps.io, https://winzar.shinyapps.io/likertMakeR_online/

LikertMakeR package documentation

Winzar, H. (2025). LikertMakeR: Synthesise and correlate rating-scale data, GitHub Pages, https://winzarh.github.io/LikertMakeR/index.html

LikertMakeR R package

Winzar, H. (2025). LikertMakeR: Synthesise and correlate rating-scale data with predefined first & second moments, The Comprehensive R Archive Network (CRAN), https://doi.org/10.32614/CRAN.package.LikertMakeR