Skip to content
ImpactMojo ImpactMojo
Browse Membership
Back to Code Studio
Code Studio · Guided tool course

jamovi and JASP: free point-and-click statistics

Two free, open-source statistics programs with an SPSS-style layout, both built on R: install them, open a CSV, and run descriptives, t-tests, ANOVA, contingency tables, correlation and regression. Then see the R behind each click with jamovi's syntax mode and Rj, try JASP's Bayesian analyses, export your results, and learn when it is time to move to R.

jamovi and JASP are desktop programs (jamovi also runs in a browser on its own site). This page cannot run them, so it shows no jamovi or JASP output; each module gives the menu path and tells you what to look for. Every analysis also has an R cell that runs here on the same data, and since both programs run R underneath, your numbers should match. The first R run downloads the R engine once (about 7 MB).
Module 1 of 8

Two free statistics programs built on R

jamovi and JASP look like SPSS: a spreadsheet of data, menus of analyses, and tables of results that update as you tick options. Both are free, both are open source, and both run R underneath. For a district team, a small NGO or a university department without an SPSS licence, they cover most of the statistics a monitoring and evaluation report needs.

jamovi

JASP

Which one? Start with jamovi if you want an SPSS replacement with the R code visible and a browser option for Chromebooks and lab computers. Start with JASP if you want Bayes factors beside your p-values. They read each other's common formats (CSV, SPSS .sav, Stata .dta), so you can use both.
Exercise. Before you install anything, check how much memory your computer has. JASP's download page asks for at least 4 GB of RAM, recommends 8 GB, and needs about 4 GB of free disk space.
Module 2 of 8

Install, open a CSV and set variable types

Install

  1. jamovi: download from jamovi.org/download. On Windows, run the installer; jamovi's installation guide says a .zip version exists for computers where IT policy blocks installers. On macOS, open the .dmg and drag jamovi to Applications. On Linux and Chromebooks it comes from Flathub. To skip installing, use jamovi Cloud in a browser.
  2. JASP: download from jasp-stats.org/download. Windows users can choose the Microsoft Store (which updates itself) or an installer; macOS has separate downloads for Apple Silicon and Intel; Linux and ChromeOS use Flatpak. No internet connection is needed to run JASP once it is installed.

Open the course file

Download households.csv (240 households, 13 columns). Illustrative data, invented for teaching The district names are real places; every number is made up.

  1. jamovi: click the file menu (☰) at the top left, choose Open, then This PC, and pick households.csv. The data appear as a spreadsheet on the left; results will appear on the right.
  2. JASP: click the main menu (the three blue stripes), choose File, then Open, and browse to the file. JASP needs a header row naming each column, which this file has.

Check the variable types

Both programs guess a type for each column, and a wrong guess changes which analyses accept it. JASP's getting-started page lists three types (Nominal, Ordinal, Scale) and its rules: a numeric column with 3 to 10 distinct whole numbers becomes Ordinal. In our file hh_size runs from 1 to 8, so check whether it arrived as Ordinal and set it to Scale if you want its mean. In jamovi, double-click a column header (or press F3) to open the variable editor and set the measure type.

Exercise. In jamovi's variable editor, look at the levels of caste. You should see General, OBC, SC and ST. Change the order so General is first; jamovi uses the first level as the reference group in regression.
Module 3 of 8

Descriptives, split by group

  1. jamovi: Analyses > Exploration > Descriptives. Drag monthly_pc_exp into Variables and area into Split by. Open the Statistics section for more statistics and Plots for box plots and histograms.
  2. JASP: choose Descriptives on the ribbon, move monthly_pc_exp into the variables box and area into the split box.

The table should give N, mean, median, standard deviation, minimum and maximum for rural and urban households separately, with the two N values adding to 240. The R cell computes the same numbers:

In both groups the mean is above the median, which is the usual sign of a few large values pulling the mean up. A box plot from the Plots section will show them as points above the whisker.

Exercise. Change the split to caste in jamovi or JASP. In the R cell, change hh$area to hh$caste and run again. Which group has the lowest median?
Module 4 of 8

Compare means: t-tests and one-way ANOVA

Independent samples t-test

  1. jamovi: Analyses > T-Tests > Independent Samples T-Test. Put monthly_pc_exp in Dependent Variables and area in Grouping Variable. The grouping variable must have exactly two levels.
  2. JASP: T-Tests on the ribbon, then the classical Independent Samples T-Test, with the same two variables.

Read the t statistic, its degrees of freedom and the p-value. Tick Welch's as well: it does not assume the two groups have equal variances, and urban and rural expenditure rarely do. The R cell runs both:

On this file R gives t = −9.84 on 238 degrees of freedom for Student's test. jamovi should show the same size of t; its sign depends on which group jamovi lists first.

One-way ANOVA

  1. jamovi: Analyses > ANOVA > One-way ANOVA. Put monthly_pc_exp in Dependent Variable and caste in the grouping box, then choose equal or unequal variances. Tick Equality of variances for Levene's test.
  2. JASP: ANOVA on the ribbon, then the classical ANOVA.

R gives Welch's F = 7.84 (3 and 89.2 degrees of freedom) and Fisher's F = 4.63 (3 and 236). Check that jamovi's One-Way ANOVA table matches the version you chose.

The ANOVA asks whether mean expenditure differs across the four caste groups at all. It does not say which groups differ; for that, ask for post-hoc tests in the same dialog.

Exercise. Run the t-test with has_toilet as the grouping variable. In the R cell, change ~ area to ~ has_toilet in both lines and compare.
Module 5 of 8

Contingency tables, correlation and regression

Contingency tables

  1. jamovi: Analyses > Frequencies > Independent Samples (χ² test of association). Put caste in Rows and has_toilet in Columns. Under Cells, tick row percentages.
  2. JASP: Frequencies > Contingency Tables, with the same rows and columns.

Correlation

  1. jamovi: Analyses > Regression > Correlation Matrix. Move monthly_pc_exp, head_edu_years, hh_size and land_acres into the box. jamovi shows each coefficient once, below the diagonal, with stars for significance.
  2. JASP: Regression > Correlation.

Linear regression

  1. jamovi: Analyses > Regression > Linear Regression. Put monthly_pc_exp in Dependent Variable, head_edu_years in Covariates (continuous) and caste and area in Factors (categorical). jamovi makes the dummy variables for you.
  2. JASP: Regression > Linear Regression.

In the Model Coefficients table, each caste row is the difference from the reference level (General, if you set it first in module 2) for households with the same schooling and area. The R cell fits the same model; your estimates should match its Estimate column, and R² should match too.

Exercise. Add land_acres as a second covariate. In the R cell, add + land_acres to the formula. Does the schooling coefficient move much once land is in the model?
Module 6 of 8

jamovi syntax mode, Rj, and JASP's R button

Both programs run R to produce their tables, and both will show you the R. This is the bridge from clicking to coding.

jamovi syntax mode

  1. Click the application menu (⋮) at the top right of jamovi and tick Syntax mode.
  2. Every analysis now shows the R call that produces it, using the jmv R package. Right-click the syntax to copy it.
  3. Untick it to leave syntax mode.

The calls look like the lines below, which follow the examples in jamovi's jmv reference. They are code to read, written for our households file; the exact options jamovi writes depend on what you ticked.

R (jmv package): what syntax mode writes, in outline
jmv::descriptives(data = data, vars = vars(monthly_pc_exp), splitBy = "area")
jmv::ttestIS(formula = monthly_pc_exp ~ area, data = data)
jmv::anovaOneW(formula = monthly_pc_exp ~ caste, data = data)
jmv::contTables(data = data, rows = "caste", cols = "has_toilet", pcRow = TRUE)
jmv::corrMatrix(data = data, vars = vars(monthly_pc_exp, head_edu_years, hh_size))
jmv::linReg(data = data, dep = monthly_pc_exp, covs = vars(head_edu_years),
            factors = vars(caste, area),
            blocks = list(list("head_edu_years", "caste", "area")))

The syntax does not include the step that reads the data. In R you would read the CSV first, install jmv with install.packages("jmv"), and the same calls give the same tables.

Rj: write R inside jamovi

  1. Click Modules at the top right, choose jamovi library and install Rj.
  2. Choose Rj Editor from the new R icon in the Analyses ribbon.
  3. Your open dataset is available as a data frame called data. Type R code and run it with the green triangle, or Ctrl+Shift+Enter (⌘+Shift+Enter on a Mac). The results appear in the results panel like any other analysis.
jamovi's FAQ notes that analyses written with Rj contain R code, so when you open a file that has some, jamovi warns you and will not run it until you allow it. Allow code only from files you trust.

JASP's R button

From JASP 0.17, core analyses carry an R button. Click it after setting your options and JASP shows the R function call behind the analysis, with its settings. You can paste that code into another JASP to reproduce the analysis, or send it to a colleague so they can see exactly which options you used.

Exercise. Switch on jamovi's syntax mode, run the independent samples t-test from module 4, and copy the syntax into a text file. Compare it with the jmv::ttestIS line above: what did jamovi add?
Module 7 of 8

JASP's Bayesian analyses

JASP's features page lists Bayesian versions of the t-tests, ANOVA (including repeated measures and ANCOVA), correlation, linear and logistic regression, binomial and multinomial tests, contingency tables and log-linear regression. In each ribbon menu the Bayesian analyses sit beside the classical ones.

What a Bayes factor says

A p-value asks how surprising the data would be if there were no difference. A Bayes factor compares two hypotheses directly: BF10 is how many times better the data are predicted by the alternative (a difference) than by the null (no difference). BF10 = 5 means the data are five times as likely under the alternative; BF10 = 0.2 means five times as likely under the null. That second reading is something a p-value cannot give you: evidence for no difference, which matters when a programme report needs to say two districts did not differ.

  1. In JASP, open T-Tests and choose the Bayesian Independent Samples T-Test.
  2. Put monthly_pc_exp in the variable box and area as the grouping variable.
  3. Read BF10 in the results table, and note the prior shown in the options panel; the Bayes factor depends on it.
  4. Repeat with head_gender as the grouping variable and compare the two Bayes factors.
Report both. If you run classical and Bayesian tests on the same question, report both, and say which prior JASP used (it is shown in the options panel). Choosing whichever result looks better after the fact is the same problem as hunting for p-values.
Exercise. Run the Bayesian contingency table for caste by has_toilet, and the classical one from module 5. Write two sentences for a programme manager: what each result says about caste and toilet access in this (invented) sample.
Module 8 of 8

Save, export, and when to move to R

Save and share

When to move to R

jamovi and JASP are enough for a lot of evaluation work. Move to R (or Stata) when you meet one of these:

Exercise. Save your jamovi analyses as households.omv, close jamovi, reopen the file and check that every table is still there. Then copy one table into a Word or LibreOffice document.

Where next

→

R & Python for Development

The next step after jamovi: the same analyses as code, live in your browser.

→

SPSS Syntax for Development Data

If your organisation uses SPSS, the syntax behind its menus.

→

Stata Syntax for Development Data

Do-files, merges and svyset for NFHS-style surveys.

→

Statistics Without Code 101

The ideas behind t-tests, ANOVA and regression, without software.

→

Bivariate Analysis 101

Crosstabs, correlation and comparing means, explained.